History

  • How: Game development evolved from simple 2D arcade games (1970s) to complex 3D real-time simulations powered by GPUs, physics engines, and networked multiplayer.

  • Who: Pioneered by companies like Atari, id Software (Doom, Quake), Epic Games (Unreal), and Valve — whose engines became the foundation of modern game dev.

  • Why: To create interactive real-time experiences — combining graphics, physics, audio, AI, and networking into a cohesive system.

  • Introduction

    • Game development is the discipline of building interactive real-time software. It spans multiple domains: rendering, physics, audio, AI, networking, and tooling. Understanding the core concepts applies to any engine — Unity, Unreal, Godot, or custom.
    • Core Domains

      • Rendering — Drawing pixels: rasterization, ray tracing, shaders, lighting.
      • Physics — Simulating the physical world: collision, rigid bodies, constraints.
      • Input — Handling keyboard, mouse, gamepad, touch.
      • Audio — Spatial sound, mixing, DSP effects.
      • AI — Pathfinding, state machines, behavior trees.
      • Networking — Multiplayer, synchronization, lag compensation.
      • Tools — Editors, asset pipelines, build systems.
  • The Game Loop

    • Core Concept

      collapsed:: true
      • The game loop is the heartbeat of every game — it runs continuously, processing input, updating state, and rendering frames.
    • Fixed vs Variable Timestep

      collapsed:: true
    • Frame Rate & VSync

      collapsed:: true
  • Entity Component System (ECS)

    • Concept

      collapsed:: true
      • ECS is a data-oriented architecture that separates data (components) from behavior (systems).
    • Why ECS?

      collapsed:: true
    • ECS in Practice

      collapsed:: true
      • Engines using ECS: Bevy (pure ECS), Unity DOTS, Flecs (C++ ECS library).
  • Rendering Pipeline

    • Rasterization Pipeline (Traditional GPU)

      collapsed:: true
    • Coordinate Spaces

      collapsed:: true
    • Rendering Techniques

      collapsed:: true
    • Ray Tracing vs Rasterization

      collapsed:: true
  • Lighting & Shading

    • Light Types

      collapsed:: true
    • Lighting Models

      collapsed:: true
    • Shadows

      collapsed:: true
    • Global Illumination (GI)

      collapsed:: true
  • Physics Engine

    • Core Concepts

      collapsed:: true
    • Collision Detection

      collapsed:: true
    • Physics Integration

      collapsed:: true
    • Constraints & Joints

      collapsed:: true
  • Game AI

    • Finite State Machine (FSM)

      collapsed:: true
    • Behavior Trees

      collapsed:: true
    • Pathfinding

      collapsed:: true
    • Perception Systems

      collapsed:: true
  • Game Math

    • Vectors

      collapsed:: true
    • Matrices

      collapsed:: true
    • Quaternions

      collapsed:: true
    • Common Math Functions

      collapsed:: true
  • Shaders

    • What is a Shader?

      collapsed:: true
    • GLSL Basics

      collapsed:: true
    • Shader Effects

      collapsed:: true
  • Multiplayer & Networking

    • Network Architectures

      collapsed:: true
    • Lag Compensation Techniques

      collapsed:: true
    • Protocols

      collapsed:: true
  • Audio in Games

    • Audio Concepts

      collapsed:: true
    • Spatial Audio (3D Sound)

      collapsed:: true
    • Audio Middleware

      collapsed:: true
  • Asset Pipeline

    • 3D Asset Workflow

      collapsed:: true
    • Texture Formats & Compression

      collapsed:: true
    • File Formats

      collapsed:: true
  • Game Design Patterns

    • Common Patterns

      collapsed:: true
    • Object Pooling Example

      collapsed:: true
  • Performance & Optimization

    • CPU Optimization

      collapsed:: true
    • GPU Optimization

      collapsed:: true
    • Level of Detail (LOD)

      collapsed:: true
  • Advanced Rendering Topics

    • Post-Processing Effects

      collapsed:: true
    • Anti-Aliasing Techniques

      collapsed:: true
    • Upscaling & Reconstruction

      collapsed:: true
    • Procedural Generation

      collapsed:: true
  • Game Engines Overview

    • Engine Comparison

      collapsed:: true
    • When to Use What

      collapsed:: true
  • Libs, Tools & Resources