This post is a list of sites, books, and talks I’ve found useful working in games.
I’ll try to update this page over time with more things!
Gameplay
3Cs
Character, camera, controls. How to make a game feel good.
General | ||
The Game Developer’s Spring-Roll-Call | Deep-dive into the use of springs for gamedev, with mathematical derivations, animated examples, and code snippets. | Website |
Character | ||
Celeste Game-Feel | Examples of how Celeste makes platforming feel good. | |
Code vs Data Driven Displacement | Overview of the tradeoffs between animation and code-driven locomotion for a character. | Website |
GDC: Take ‘Control’ of Animation | More on the motion-matching approach to gameplay animation, from the game Control. | YouTube |
GDC: Player Traversal Mechanics in the Vast World of Horizon Zero Dawn | Examples of player locomotion, start-and-stop animation, vaulting, jumping, etc, in a third-person open world game. | YouTube |
Camera | ||
GDC: Juicing Your Cameras With Math | Camera shake, framing, and smoothing, with demos for a 2D game. | YouTube |
GDC: The Cameras of Uncharted 3 | Implementation of a camera system for a third-person game. | GDC Vault (public) |
GDC: 50 Game Camera Mistakes | Game camera lessons from the game Journey. | YouTube |
Controls | ||
GDC: Techniques for Building Aim Assist in Console Shooters | How to handle analog sticks, deadzones, input acceleration, and aim assist, for a first-person shooter. | GDC Vault (public) |
Replication
Gameplay programming for online multiplayer.
GDC: Overwatch Gameplay Architecture and Netcode | Examples of gameplay networking, as well as an introduction to Entity Component System programming. | YouTube |
GDC: Networking the Gameplay of Halo: Reach | Practical examples of replicating gameplay features, including what happens when it’s done wrong. | YouTube |
General programming
Advice and mindset for programming in games.
Game Programming Patterns | An accessible introduction to common ways of solving problems in games. | Website/book |
Simplicity: Not Just For Beginners | What it means to write simple code. | YouTube |
Data-Oriented Design and C++ | A good introduction to the ideas of data-oriented design, as an alternative to object-oriented programming. | YouTube |
Data oriented design in practice | More hands-on examples of data-oriented design and its impacts. | YouTube |
Game engines
The architecture of games and their key systems.
Game Engine Architecture | A high level view of what game engines are and how they work. | Book |
How to Write Your Own C++ Game Engine | Some lessons learned from game engine development, particularly around serialization/reflection. | Website |
GDC: Valve’s Physics for Game Programmers | Examples of using serialization and reflection to aid debugging, with the use case of a physics engine. | YouTube |
Graphics
Rendering, procedural generation, and putting pretty things on the screen.
Inigo Quilez | Lots of resources for graphics, shaders and procedural generation. Many topics such as signed distance fields can come in useful in unexpected places unrelated to graphics as well. | Website |
SIGGRAPH: Future of Real-Time Transparency | An overview of transparency in real time graphics and potential future approaches. | YouTube |