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. These links might be helpful for you too if you’re looking to get into the industry, or if you’re there already. Programmers working in other contexts may get some use out of it, but no guarantees 🙃.

I’ll try to update this page over time with more things!

Game Programming Patterns - Robert Nystrom

Useful for: An introduction to common ways of solving problems in games.
Assuming: You’re somewhat familiar with any C-like language.

An over-reliance on Design Patterns as a “silver bullet” for engineering problems is bad, but rather than prescribed solutions, this book presents examples of useful approaches to problems which turn up a lot in games. I’ve definitely seen (and used) these in the engines I’ve worked in.

It’s very accessible to beginners. I recommend the getting the paperback if you can, but the author provides the whole book online for free.

Data-Oriented Design and C++ - Mike Acton

Useful for: Unlearn what you have learned (about object-oriented programming).
Assuming: You have some C++ knowledge.

This talk is a good introduction to the ideas of data-oriented design, specifically, why caring about the layout of your data in memory is very important for writing software with good performance.

Simplicity: Not Just For Beginners - Kate Gregory

Useful for: How to think about your code.
Assuming: You have some C++ knowledge.

Kate Gregory has a lot of great C++ talks, but this is a good one about the mindset we have when writing code. Writing simple code can be hard, but it’s important.

Computer Graphics - Inigo Quilez

Useful for: Lots of resources for graphics, shaders and procedural generation.
Assuming: You’ve used any shader language before.

This site is filled with all sorts of great snippets related to graphics programming, especially techniques for ray-marching and procedural noise. (I even cited it in my dissertation 🙂)

The author also co-created ShaderToy, and worked at Pixar.

Overwatch Gameplay Architecture and Netcode - Timothy Ford

Useful for: Learn about ECS and networking all in one hour!
Assuming: You have some C++ knowledge.

Of course there are dozens of great GDC talks for programmers, but as far as engine architecture goes, this one is great. It’s a good introduction to the Entity Component System model, and to gameplay networking, in the context of a triple A game.

Game Engine Architecture - Jason Gregory

Useful for: A high level view of what game engines are and how they work, with a few specifics.
Assuming: You’re familiar with any C-like language.

This is the canonical text for game engine architecture, and it covers a lot. Personally I found a little too broad in scope when I first read it, but for an overview of what game engines do and to get started in most areas, this is a great reference.

Posted on 2020-03-03