My Journey to Learning Game Development with Unity

{{BLOG_TITLE image}}

Choosing a Game Engine

The first step was to pick a game engine. A game engine is software that simplifies game development by handling complex tasks such as rendering graphics, interfacing with controllers, and performing physics calculations. Popular game engines include Unity, Unreal Engine, Godot, Pico-8, Game Maker, and Construct. There are also specialized engines like Twine, RPG Maker, and Adventure Game Studio, as well as ecosystem-specific engines such as Game Builder Garage, Dreams, and Roblox.

Ultimately, I chose Unity because:

  • It balances power with ease of learning.
  • It supports both 2D and 3D game development.
  • It is compatible with nearly all platforms.
  • Its popularity means abundant resources, tutorials, and community support.
    Unity is behind iconic games like Hollow Knight, Cuphead, and Fall Guys.

Learning Unity: The Challenges

With the engine chosen, the next step was learning how to use it. Initially, I relied on YouTube tutorials, meticulously following along. While this approach helped me create a working game, I realized later that I hadn’t retained anything. When I opened a blank Unity project, I struggled even to make a basic character move. This demoralizing experience made me question whether I was suited for game development.


A New Learning Approach

Reflecting on how I learned Adobe Premiere helped me devise a more effective approach. My process with Premiere involved:

  1. Learning the Basics: Understanding core functions like importing clips and basic editing.
  2. Repetition: Reinforcing knowledge by creating multiple simple projects.
  3. Experimentation: Gradually learning advanced features through trial, error, and curiosity.

Applying this three-step method to Unity seemed promising:

  1. Basics: Understanding Unity's UI and fundamental concepts like GameObjects. A GameObject is an invisible container with properties like position, rotation, and scale. Components such as sprite renderers, rigidbodies, colliders, and scripts make them functional.
  2. Familiarization: Practicing essential tasks like GameObject interactions, spawning and deleting objects, and handling collisions.
  3. Experimentation: Exploring UI, sound effects, animations, levels, and other features by experimenting and solving problems as they arise.

Conclusion

Game development is complex and unpredictable, with endless possibilities and challenges. However, building familiarity with tools and approaching learning in manageable steps can make the journey achievable. By applying my three-step formula—basics, familiarization, and experimentation—I aim to master Unity and realize my goal of creating my own video game.