Skip to content

Latest commit

 

History

History
100 lines (84 loc) · 22.9 KB

File metadata and controls

100 lines (84 loc) · 22.9 KB

Game Dev Roadmap

A game developer builds the interactive systems behind games, gameplay mechanics, physics, AI, rendering, and tools, almost always inside an engine such as Unity, Unreal, or Godot. In 2026 the route in is engine-and-portfolio first: hiring managers weigh shipped, playable projects and demonstrable engine fluency far above degrees, and the two dominant commercial engines are Unity and Unreal (on Steam, Unity powered roughly half of 2024 releases and Unreal a bit over a quarter, with Unreal leading revenue at the AAA end). Programming roles overwhelmingly want C++ and/or C# plus real hands-on time in a major engine. The sensible order is: get genuinely fluent in ONE language, commit to ONE engine, learn the narrow slice of math that actually shows up daily (vectors, a little trig, transforms), then learn to architect gameplay code (the game loop, state, components) instead of merely following script tutorials. After that you choose a specialization, gameplay, graphics/rendering, AI, or networking/multiplayer, and the whole journey is paced by repeatedly finishing and publishing small games (itch.io, game jams); a portfolio of three to five polished, completed projects is the real job ticket. AI tooling speeds up boilerplate and asset chores, but the durable, hireable skills are scoping, debugging, and shipping working systems.

See where you stand on this path →   Atlas maps your resume to this roadmap, shows what you already evidence, and names your priority gaps.

5 stages · 22 skills · 41 hand-picked resources


1. Programming Foundations

Get genuinely fluent in ONE language (C# for Unity/2D, or C++ for engine/AAA) so you can write, run, and debug real programs without copying tutorials line by line.

  • Commit to one language: C# or C++ essential — C# is a statically typed, garbage-collected language developed by Microsoft and used as the primary scripting language in Unity and Godot. C++ is a high-performance systems language that underpins Unreal Engine and most AAA engine internals. Both languages support object-oriented and generic programming, but differ significantly in memory management, compile model, and runtime overhead.
    Why it matters: Every major engine is driven by one of these, and deep fluency in one beats shallow exposure to both; choose C# for fast results (Unity/Godot) or C++ if you are aiming at AAA/engine work.
    📚 Foundational C# certification (freeCodeCamp x Microsoft) · C# fundamentals for absolute beginners (Microsoft Learn) · LearnCpp, a complete modern C++ tutorial (through C++20/23)
  • Core programming concepts essential — Core programming concepts encompass variables, data types, control flow (conditionals and loops), functions, and object-oriented principles such as classes, inheritance, and polymorphism. They also include how values and references behave in memory. These fundamentals form the shared vocabulary across all game engines and programming languages.
    Why it matters: Variables, control flow, functions, classes and inheritance, and how references/memory behave are the vocabulary of all gameplay code; without them, every engine tutorial is just transcription.
    📚 The C# language guide and concepts (Microsoft) · Write your first code using C# (Microsoft Learn path)
  • Data structures and algorithms (working knowledge) recommended — Data structures are organized formats for storing and accessing data, including arrays, linked lists, dictionaries (hash maps), queues, and stacks. Algorithms are step-by-step procedures for solving computational problems, often evaluated by Big-O complexity. Working knowledge of both is required to write efficient gameplay logic and tools code.
    Why it matters: Arrays, lists, dictionaries/maps, and a feel for Big-O recur constantly in gameplay and tools code, and they show up explicitly in postings and interviews.
    📚 Data structures, easy to advanced, full course (freeCodeCamp) · Collections in C# (List, Dictionary, and more), Microsoft docs
  • Command-line and debugging basics recommended — The command line is a text-based interface for running programs, navigating file systems, and invoking build tools. Debugging is the process of locating and fixing errors in code using techniques such as reading stack traces, setting breakpoints, and stepping through execution in an IDE debugger. These skills are foundational for diagnosing runtime failures in any development environment.
    Why it matters: Reading a stack trace, setting breakpoints, and stepping through code is what separates people who finish games from people who get stuck; debugging fluency is assumed in nearly every team.
    📚 Implement the Visual Studio Code debugging tools for C# (Microsoft Learn)

2. Game Math and Core Concepts

Internalize the small, high-leverage math behind movement, collisions, and 3D space, and understand how a game runs under the hood (the loop, delta time, frames).

  • Vectors, dot/cross product, basic trig essential — A vector is a mathematical object with magnitude and direction, used in games to represent positions, velocities, and orientations in 2D or 3D space. The dot product measures the angle between two vectors, and the cross product produces a vector perpendicular to both, enabling calculations for facing direction, surface normals, and line-of-sight. Basic trigonometry (sine, cosine, tangent) provides the tools for circular motion, angle conversion, and spatial reasoning.
    Why it matters: Vectors encode position, direction, and velocity, while dot and cross products power aiming, facing, line-of-sight, and surface normals, this is the math you reach for every day.
    📚 Vector math explained (Godot docs, engine-agnostic) · 3D Math Primer for Graphics and Game Development, Vectors chapter · Fundamental math for game developers (Pikuma)
  • Matrices and transforms (translate / rotate / scale) recommended — A matrix is a rectangular array of numbers used in 3D graphics to represent spatial transformations. Translation, rotation, and scale operations are encoded as matrices and combined by multiplication to produce a single transform that describes an object's position and orientation in world space. Understanding matrices is essential for working with cameras, hierarchical scene graphs, and coordinate space conversions.
    Why it matters: Every object's position and orientation is a transform; grasping matrices demystifies cameras, parenting, and why rotations behave the way they do.
    📚 Essence of Linear Algebra (3Blue1Brown, visual intuition) · Linear algebra for game developers (Wolfire blog)
  • The game loop, frames, and delta time essential — The game loop is the central execution cycle of a game, repeatedly processing input, updating game state, and rendering each frame. A frame is one complete pass through this cycle, and frame rate measures how many pass per second. Delta time is the elapsed duration of the previous frame, used to scale movement and physics so behavior remains consistent regardless of frame rate.
    Why it matters: Understanding the update/render cycle and frame-rate-independent movement (scale by delta time) is the concept beginners most often get wrong, producing physics that breaks on faster machines.
    📚 Game Programming Patterns, the Game Loop chapter (free book) · Fix Your Timestep! (Gaffer On Games)
  • Basic game physics and collision detection recommended — Game physics simulates real-world forces such as velocity, acceleration, and gravity to produce believable object motion. Collision detection determines when two objects occupy overlapping space, using techniques such as axis-aligned bounding boxes (AABB) and raycasts. Most engines provide built-in physics solvers, but understanding the underlying concepts is necessary to configure and extend them correctly.
    Why it matters: Velocity, acceleration, gravity, and AABB/raycast collisions underpin almost every genre; you will lean on the engine's physics but must understand what it is doing.
    📚 CS50's Introduction to Game Development (Harvard, free to audit)

3. Pick and Learn One Engine

Reach real productivity in a single engine: move around the editor, script behavior, wire up scenes, handle input, build UI, and run a project end to end. Resist engine-hopping.

  • Unity 6 (C#), strongest market for generalists essential — Unity is a cross-platform game engine that uses C# for scripting and supports 2D, 3D, AR, VR, and mobile targets. Unity 6 introduced improved rendering pipelines, better multiplayer tooling, and a more stable version of the Entity Component System (ECS/DOTS). It is widely used for indie, mobile, and mid-tier commercial projects, and its asset store and learning resources make it accessible for new developers.
    Why it matters: Unity has the deepest pool of junior openings and the most beginner-friendly free curriculum, and its Junior Programmer pathway is built specifically to take you to job-ready.
    📚 Unity Learn, Unity Essentials pathway (official, free) · Unity Learn, Junior Programmer pathway (zero to job-ready) · Game development for total beginners, 7-hour Unity course (freeCodeCamp)
  • Unreal Engine 5 (C++ plus Blueprints), AAA / high-fidelity track recommended — Unreal Engine 5 is a high-fidelity game engine developed by Epic Games, primarily written in and extended through C++. Blueprints is its visual scripting system, allowing logic to be authored as node graphs without writing C++ directly. UE5 features include Nanite virtualized geometry, Lumen global illumination, and a robust toolset for large-scale AAA and cinematic productions.
    Why it matters: Unreal dominates AAA and high-fidelity studios, and pairing visual Blueprints with C++ mirrors how real UE teams work, opening the door to the highest-paying roles.
    📚 Unreal Engine, Getting Started (Epic Developer Community) · Free professional Unreal Engine courses (Epic, official)
  • Godot 4 (GDScript / C#), indie, 2D, fully open-source optional — Godot 4 is an open-source, MIT-licensed game engine that supports both 2D and 3D game development. It offers GDScript, a Python-like language designed for the engine, alongside official C# support and GDExtension for C++ bindings. Godot uses a node-and-scene architecture and is well suited for indie developers and small teams due to its lightweight footprint and lack of licensing fees.
    Why it matters: Lightweight, free, and ideal for 2D and solo work; a fast path to actually finishing games, though it carries fewer corporate listings than Unity or Unreal.
    📚 Godot, Step by step (official getting-started docs) · Learn to code with GDScript (official Godot docs)
  • Input, scenes, prefabs/nodes, and UI essential — Input systems in game engines map hardware events (keyboard, mouse, gamepad) to named actions that gameplay code responds to. A scene is a discrete, saved collection of objects that forms a level, menu, or reusable asset. Prefabs (Unity) and packed scenes or nodes (Godot) are reusable object templates, while UI systems provide tools for building heads-up displays, menus, and interactive overlays.
    Why it matters: Wiring player input, composing scenes from reusable objects, and building menus and a HUD are the day-one mechanics of any game, where engine knowledge becomes real output.
    📚 Unity Learn, full course catalog (input, scenes, UI; free)

4. Gameplay Architecture and Production Skills

Move from 'I can script a tutorial' to 'I can structure a maintainable game.' Learn the patterns, tooling, and workflow that keep a project alive past the prototype stage.

  • Game programming patterns (state, component, observer, object pool) essential — Game programming patterns are reusable solutions to recurring structural problems in game code. The state pattern manages objects that shift between distinct modes (idle, running, attacking). The component pattern composes behavior from small, independent modules. The observer pattern decouples event producers from listeners, and the object pool reuses pre-allocated instances to avoid frequent memory allocation at runtime.
    Why it matters: These patterns are the line between spaghetti scripts and extendable code; the state-machine and component patterns alone resolve most beginner architecture pain.
    📚 Game Programming Patterns, the full book online (Nystrom)
  • Entity Component System (ECS) and data-oriented design recommended — Entity Component System (ECS) is an architectural pattern that separates identity (entities), data (components), and logic (systems), replacing class hierarchies with composition. Data-oriented design arranges component data contiguously in memory so that systems can process large arrays of homogeneous data efficiently, reducing cache misses. Unity's DOTS (Data-Oriented Technology Stack) and custom engines such as Bevy use ECS as their primary runtime model.
    Why it matters: Modern engines (Unity's ECS/DOTS, custom engines) lean on ECS for performance at scale, and composition-over-inheritance is increasingly expected for systems roles.
    📚 The Component pattern (Game Programming Patterns) · Unity Entities (ECS), official package manual
  • Version control: Git with Git LFS (plus awareness of Perforce) essential — Git is a distributed version control system that tracks changes to source code and enables branching and merging across teams. Git Large File Storage (LFS) extends Git to handle binary assets such as textures, audio, and 3D models efficiently by storing them outside the main repository history. Perforce Helix Core is a centralized version control system widely used in AAA game studios for managing large binary asset repositories.
    Why it matters: Non-negotiable on every team and named explicitly in postings; use Git plus LFS for binary assets when solo, and know that many studios, especially Unreal shops, run Perforce/Helix Core.
    📚 About Git and the basics (GitHub docs) · Working with large binary game assets using Git LFS (Microsoft)
  • Profiling, optimization, and in-engine debugging recommended — Profiling is the process of measuring where a running program spends its CPU and GPU time, memory, and other resources. Game engines provide built-in profilers that show frame timing, draw call counts, garbage collection events, and per-system costs. Optimization uses profiling data to identify and resolve bottlenecks so the game consistently meets its target frame budget.
    Why it matters: Games have to hold a frame budget, and reading the profiler to hunt CPU/GPU/garbage-collection spikes is a core professional skill that pure tutorial-followers never build.
    📚 The Unity Profiler and performance work (official manual)
  • Asset pipeline basics (Blender import, sprites, audio) optional — An asset pipeline is the workflow for creating, processing, and importing raw media files (meshes, textures, sprites, audio clips) into a game engine in a form it can use at runtime. Blender is an open-source 3D application used to author and export meshes and animations in formats such as FBX or glTF. Understanding import settings, texture compression, and audio format trade-offs allows developers to control asset quality and build size.
    Why it matters: Even programmers must import and wire up art and audio, so light Blender and 2D-asset literacy makes you self-sufficient on prototypes and jams.
    📚 Blender, official tutorials and manual (free, open-source)

5. Specialize, Ship, and Build a Portfolio

Finish and publish several small games, then go deep in ONE specialization (gameplay, graphics, AI, or networking). A portfolio of three to five completed, polished projects is the actual job ticket, far more persuasive than any credential.

  • Finish and publish small games (scope management) essential — Scope management in game development is the discipline of defining and constraining a project's features to a set that can realistically be completed and polished within available time and resources. Finishing a game requires iterating toward a shippable state: cutting features, fixing bugs, and releasing publicly through platforms such as itch.io or the app stores. Completed, playable projects serve as concrete demonstrations of a developer's end-to-end skills.
    Why it matters: Teams trust shipped, playable work over credentials; finishing tiny games trains scoping, the most make-or-break habit in this field, and builds a public portfolio.
    📚 Your first itch.io page (official creator docs) · Game jams on itch.io (build under a deadline)
  • Gameplay programming (mechanics, systems, controllers) recommended — Gameplay programming is the discipline of implementing the rules, interactions, and feedback systems that define how a game is played. It covers character controllers (movement, jumping, collision response), core mechanics (combat, inventory, dialogue), and the systems that connect them. Gameplay programmers work closely with designers to translate design intent into responsive, bug-free runtime behavior.
    Why it matters: The most common junior specialization: implementing the moment-to-moment mechanics, character controllers, and systems that decide how a game feels to play.
    📚 Unity Learn, Create with Code (build complete gameplay projects) · Game development for total beginners, full Unity build (freeCodeCamp)
  • Graphics / rendering and shaders optional — Graphics programming involves writing code that controls how geometry, lighting, and post-processing effects are rendered to the screen using GPU hardware. Shaders are small programs written in languages such as HLSL (DirectX) or GLSL (OpenGL/Vulkan) that run on the GPU to determine the color and appearance of surfaces. Rendering engineers work with rasterization pipelines, ray tracing, physically based rendering (PBR) materials, and engine-level graphics abstractions.
    Why it matters: A high-value, hard-to-fill specialization; learning the GPU pipeline and writing shaders (HLSL/GLSL) is the road to graphics and engine-programmer roles.
    📚 LearnOpenGL, modern graphics programming, full tutorial · The Book of Shaders (interactive)
  • Game AI (pathfinding, state machines, behavior trees) optional — Game AI refers to the algorithms and systems that govern non-player character decision-making and movement. Pathfinding algorithms such as A* compute optimal routes through a navigation mesh (navmesh) to move agents around obstacles. Finite state machines and behavior trees are hierarchical structures used to model complex NPC logic, allowing characters to transition between goals and actions in response to game state.
    Why it matters: Enemy behavior, navmesh pathfinding (A*), and decision systems form a distinct, in-demand niche that postings list under 'AI'.
    📚 Introduction to A* pathfinding (Red Blob Games, interactive) · The State pattern for game AI (Game Programming Patterns)
  • Multiplayer / networking optional — Multiplayer game networking involves synchronizing game state across multiple clients connected over a network, typically through a client-server or peer-to-peer architecture. Core techniques include client-side prediction (applying input locally before server confirmation), lag compensation (correcting for network latency when resolving hit detection), and state interpolation. Developers use dedicated transport layers, relay services, and engine-provided networking frameworks such as Unity Netcode or Unreal's Online Subsystem.
    Why it matters: A specialized, well-paid track; client-server architecture, client-side prediction, and lag compensation are the canonical techniques behind responsive online play.
    📚 Fast-Paced Multiplayer series (Gabriel Gambetta) · Game networking articles (Gaffer On Games)

Get this roadmap mapped to your resume →


← All roadmaps · Built by ResuMax