Game Development for Dummies - The Ultimate Guide

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.


Creating a Game

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.


Choosing an 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.


Asset Creation

Creating assets makes up about 50% of the work in game development. For example:

  • 2D Games: Tools like Photoshop are used to create visuals.
  • Sound Design: Applications like Audacity or FL Studio handle audio editing.
  • 3D Models: Blender is a popular choice for 3D modeling.
  • Scripts: Coding is done in environments like Visual Studio.

Assets are stored in an "assets folder" and dragged into the game engine’s scene—a blank level—where scripts control their behavior.


Components and Game Objects

Assets in Unity are organized into "game objects," which can hold various components such as:

  • Sprite Renderer: Determines how an asset appears.
  • Collider: Allows interaction with the game world.
  • Rigid Body: Enables gravity-based interactions.
  • Audio Sources: Play sounds within the game.

Game objects can be parented, forming hierarchical relationships. This structure helps manage levels, enemies, or objects efficiently.


Camera and Perspective

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 and Behavior

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:

  • Start Function: Executes commands once when the game begins (e.g., playing a sound).
  • Update Function: Continuously loops commands, such as moving an object across the screen.

Variables in Scripting

Variables are fundamental in scripting, representing properties like:

  • Booleans: True/False conditions (e.g., dead = false).
  • Strings: Text values (e.g., "eyeColor = blue").
  • Integers: Whole numbers (e.g., age = 28).
  • Floats: Decimal numbers (e.g., height = 5.1).

Variables define conditions and behaviors, such as a character's starting position, health, or animations triggered by player actions.


Efficient Development

Here’s the secret: seasoned developers rarely create everything from scratch. Assets—including art, music, and even scripts—can be purchased from platforms like:

  • Unity Asset Store
  • TurboSquid
  • CraftPix
  • Epidemic Sound

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.


Conclusion

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.