By the end of this write-up, you'll have a full understanding of how exactly video games are made. I'll even share a secret that took me ten years to figure out, making my career as a game developer much easier.
While there are various engines to create games, such as Unity, Unreal, and Godot, video games are generally made in similar ways regardless of the engine being used.
To create a game, you start with assets—digital files such as PNGs, JPEGs, 3D models, MP3 files, or wave files. These assets are then combined with scripts, which are like magical spells that define how the assets behave in the world, or what we call the "scene." For instance, a PNG image can be programmed to move left or right based on the player’s keyboard inputs.
Experienced developers usually work with at least three applications simultaneously: one for asset creation, another for game creation, and one for coding. This setup enables continuous back-and-forth adjustments to ensure the assets integrate seamlessly into the game engine.
Game engines like Unity, Unreal, and Godot each have their advantages. Unity is particularly beginner-friendly and versatile for indie and AA game development. Unreal, on the other hand, is better suited for large-scale AAA projects.
Creating assets makes up about 50% of the work in game development. For example:
Assets are stored in an "assets folder" and dragged into the game engine’s scene—a blank level—where scripts control their behavior.
Assets in Unity are organized into "game objects," which can hold various components such as:
Game objects can be parented, forming hierarchical relationships. This structure helps manage levels, enemies, or objects efficiently.
Cameras in game engines define how the player views the game. They can follow players smoothly in 2D games, remain stationary as in Resident Evil, or offer first-person perspectives. Tools like Unity’s Cinemachine simplify camera setup and control.
Scripts are essential for giving game objects behavior. They are coded instructions written in languages like C# (Unity) or C++ (Unreal). Developers can also use visual scripting tools for ease.
Scripts function through:
Variables are fundamental in scripting, representing properties like:
dead = false
)."eyeColor = blue"
).age = 28
).height = 5.1
).Variables define conditions and behaviors, such as a character's starting position, health, or animations triggered by player actions.
Here’s the secret: seasoned developers rarely create everything from scratch. Assets—including art, music, and even scripts—can be purchased from platforms like:
These pre-made assets save time, but they must be tweaked and integrated cohesively to fit the game’s tone and style. Great developers excel at customizing and repurposing assets to create unique experiences.
Ultimately, game development combines assets and scripts into cohesive game objects, driven by player inputs and conditions. By leveraging pre-made assets and focusing on creative customization, developers can save time and create amazing games.