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- See PathTracer Learning for full path tracing deep dive.
-
-
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
-
Graphics APIs
- Vulkan — Low-level GPU API. Maximum control and performance.
- OpenGL — Classic cross-platform GPU API. Good for learning.
- DirectX 12 — Windows/Xbox GPU API.
- Metal — Apple GPU API (macOS/iOS).
- WebGPU — Modern GPU API for the web.
-
Math Libraries
-
Physics Libraries
- Bullet Physics — Open source 3D physics (used in Blender, Godot 3).
- PhysX (NVIDIA) — Used in Unity, Unreal.
- Box2D — 2D physics. Used in many indie games.
- Jolt Physics — Modern C++ physics (used in Godot 4).
-
Learning Resources
- Game Programming Patterns — Free book on game design patterns.
- Real-Time Rendering — The definitive rendering textbook.
- LearnOpenGL — OpenGL + graphics fundamentals.
- Vulkan Tutorial — Step-by-step Vulkan guide.
- The Cherno (YouTube) — Game engine from scratch in C++.
-
Related Pages
- Godot — Godot engine deep dive
- PathTracer Learning — GPU path tracing, Vulkan RT, rendering research
- C++ — C++ for game/engine development
- Binary Space Partitioning — Spatial data structure for rendering
- Bevy — Rust ECS game engine
- Unity — Unity engine reference
- Unreal Engine — Unreal Engine reference
-