Game Programming Patterns by Robert Nystrom – my thoughts

  • November 13, 2017
  • Paul Sokk
  • 2 min read

Game Programming Patterns by Robert Nystrom was the first book of the 15 I’m planning to read while building a prototype of my FPS game in Unity.

Fun fact: Since one of the most painful classes I took at the university, I thought I would never learn, nor need, Finite State Machines again. This book proved me wrong. Turns out state machines are actually a genius way to turn that ugly looking row of if-statements into well-organized switch cases. The book describes that it is a common way of defining artificial intelligent’s (eg citizens, zombies etc) behavior in games.

I chose to study this book in hopes to learn best practices for game programming. To put it bluntly, I was disappointed. I went in with the hopes that I will get loads of knowledge on how to engineer and optimize my game better in Unity Game Engine. Instead, I understood this book is more geared towards those who are building their own game engine from scratch.

Why I didn’t like it:
It focused very heavily on memory management (pointers), something that is meant for you to manipulate when you are developing in Unity Game Engine. That is because Unity uses C# programming language, which by default does not use memory pointers. Also, much of what was recommended is already solved by Unity Game Engine by its core features eg. the Update() loop.

Why I liked it:
To be fair, there was still a lot of valuable information. Understanding the core logic of a game engine can’t hurt, especially if you are planning to build a fairly large computer game in it. And that was not all, Robert Nystrom still touched on some pretty important Object-Oriented Programming (OOP) best practices, that needed refining in my head.

Overall I think this book wasn’t a waste of my time. There are parts of it that I might revisit later for reference and understanding of the engine’s behavior.

Now I can proceed to read less technical books. All of the other 14 books I’ve picked out are more focused on theoretical knowledge. I plan to learn more programming tips from YouTube tutorials and online articles along the way.