Game Programming Patterns

Hey, Game Developer!

  • Do you struggle to make your code hang together into a cohesive whole?
  • Find it harder to make changes as your codebase grows?
  • Feel like your game is a giant hairball where everything is intertwined with everything else?
  • Wonder if and how design patterns apply to games?
  • Hear things like “cache coherency” and “object pools”, but don’t know how to use them to make your game faster?

I’m here to help! Game Programming Patterns is a collection of patterns I found in games that make code cleaner, easier to understand, and faster.

This is the book I wish I had when I started making games, and now I want you to have it. It’s available in four formats:

Nope! Each format has every chapter in full, every illustration, and all of the asides you know and love. Even the free web version.

Which version pays you the most?

First of all, thank you for caring about this! Since I self-published, I set the prices so that the royalties are about the same for each format. (I also get the lion’s share of the money since there’s no publisher taking a cut.)

Buy the format you want and I’ll get paid pretty much the same either way. If you want to give me money, but don’t actually want a physical book, consider giving it to a friend or your local library. I get money, you feel good, and someone gets a free book!

If I buy the print edition, can I get the eBook cheaper?

Yes, mostly. I have MatchBook enabled on the Kindle edition. If you buy the print copy, you can get the Kindle version for just $3.00. I don’t have a way to set up anything similar for the other eBook formats, unfortunately.

I am a poor student. How can I get your book cheaply?

I had you in mind when I decided to put the entire contents of the book on the web for free. I put more than five years of my life into this book, and I want as many people to have access to it as possible. The web version is also a great starting point to see if you like the book before you plunk down cash.

Do the digital editions use DRM?

Heck no! If you have been kind enough to pay for the book, I want to give you the most flexibility I can. You should be able to freely transfer it to all of your devices, archive it, etc.

I’m in Canada. How can I get the print edition?

CreateSpace does not directly ship to Canada which is why you don’t see it on Instead, a kind reader tells me that you can get it from Book Depository. If that doesn’t work, you may be able to buy it from or and get it shipped from the US.

“If you’re a game dev programmer you need to add this site to your list of resources.”

Ryan Leonski

“I can’t overstate how completely brilliantly written Game Programming Patterns is. And I’m only on chapter 2. Hats off.”

Mark Richards

“This is going to be the #1 book I recommend to new (and some old) game programmers.”

Alistair Doulin

I’m Bob Nystrom. I started writing this book while working at Electronic Arts. In my eight years there, I saw a lot of beautiful code, and a lot of not-so-beautiful code. My hope was that I could take what I learned from the good stuff, write it down here, and then teach it to the people writing the awful stuff.

If you want to get in touch with me, you can email bob at this site or just ask me (@munificentbob) on twitter. If you just can’t get enough of my writing, I also have a blog. If you like the book, you’ll probably like it too.

Part of the magic of writing a book online is that it’s easy to change. If you find mistakes or have suggestions, please don’t hesitate to file a bug or send me a pull request.

I’d love to be able to contact you too. If you put your email address in the little box, I’ll let you know about updates to the book. I post less than once a month, so don’t worry about me spamming you.