User:PaperPrototype/sandbox

A GameObject System is a software architectural pattern used commonly in video game development. GameObjects are a single piece of data, with a container of "components" that add functionality to the GameObject. A component self contains the data and code necessary for mutating the game objects data. The behavior and capability's of a game object can be easily altered by user made "components" or scripts. Each component can depend on another component. Usually every GameObject has by default a "transform" component that controls position rotation and scale.

The Unity game engine is the most popularized use of a GameObject system for representing data and behavior for game entity's.

A Game Object System is often confused with an Entity Component System. The name "Entity Component" describes a GameObject quite well, although the distinction between the two names came later when Unity released their Data Oriented Tech Stack (often shortened to "DOTS"), which used a more database styled data layout where components of the same type are in separate columns, while their previous GameObject system used more of a "container of components for each GameObject".