Resources for games programming

Posted on 2020-03-03

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. Twitter
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
Posted on 2020-03-03