Tutorial Review #2: Game Programming Patterns

Introduction

In this blog post, I am going to review Game Programming Patterns. One of the bestseller books about video game programming out there.

As the title of the book pretty much explains by itself. This book focuses on teaching their readers about different video game programming patterns, 19 in total. Basically, it is a collection of common patterns in video games that make code cleaner, easier to understand, and faster.

Even though the book advertises itself as educating about video game programming patterns. That is not technically the truth and the book acknowledges that at the very beginning of it. Surprisingly, all, if not most, of the patterns explained in the book are actually software design patterns. Those patterns have simply been adapted to fit into the video game industry standard. There is nothing wrong with that but I wanted to clear any possible future missunderstandings. As I mentioned before, the book confirms so and reminds the reader throughout the book several times about that. Therefore, what you are going to learn in this book can be easily transferred and applied to other programming areas.

Now that I have cleared up everything. Let’s take a look at what exactly is a software design pattern. In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem. A design pattern is not code. It is instead a description or template on how to tackle a problem and design a solution. If you want to learn more about this topic, here there is a very cool website for it. That website even has listed some of the design patterns that this book teaches. Not really that unexpected though.

Software design patterns

Technical datasheet

The technical datasheet includes basic information of the book Game Programming Patterns. Additionally, there may be other extra information which I have demeed relevant for this tutorial review.
  • Title: Game Programming Patterns
  • Author: Robert Nystrom
  • Release: 2014/11/02
  • Edition: First edition
  • Publisher: Genever Benning
  • ISBN: 978-0-99-058290-8
  • Language: English
  • Pages: 354
  • Price:
    • Physical book (paperback) = 31,48€
    • Digital book (ebook) = 22,77€
    • Digital book (PDF) = 27,45€
    • Online book (web) = 0€
  • Others:
Game Programming Patterns

Key points

Let’s check and analyze the different key points of Game Programming Patterns.

Up-to-date

4.5/5

Game Programming Patterns is all about teaching software design patterns adapted to video games. One of the book’s biggest influences is another popular book called Design Patterns: Elements of Reusable Object-Oriented Software. Both books are still relevant by today standards and are still going to be in a few years. The reason behind that is due to what the definition of a software design pattern entitles. This was already explained in the introduction section of this blog post. However, I am going to repeat again the important part.

A design pattern is not code. It is instead a description or template on how to tackle a problem and design a solution. Basically, desing patterns are not restricted to any software but code on the other hand is software dependant. For example, Unity works with C#, Unreal Engine works with C++, Ren’Py works with Python… you get the idea. The advantage and utilities that design patterns bring is that they are universal. You only need to learn a pattern and you can apply it to any software. That is definitely (and unfortunately) not the case with programming languages and coding. For those reasons, this is why design patterns are very likely not going to change in a long time. Obviously, new design patterns will be created at some point, but the current ones are not going to change.

Quality

4/5

Overall, I enjoyed most aspects of Game Programming Patterns. I am a big fan of the book’s back cover image. To understand the majority of this book, you are going to need to have good coding basics.

The book is roughly 350 pages long so you can read it in one week. Additionally, the book is written and designed in a clever way as to not make you tired while reading it. However, reading the book can occasionaly be tedious due to its technicisms and complexity, specially in some chapters.

One of the best additions to the book, for me, are the author’s comments. They are great and improve the reading experience a lot by acting as ice breakers. Sometimes, the comments are completely unrelated to the current topic and explain a funny fact or anecdote. Meanwhile other times they provide extra interesting information.

In comparison, my main complaint is that there are too many patterns (officialy 19 + some unmentioned and unlisted ones). Moreover, some of those patterns are way too similar. Whilst I was reading the book, I partially forgot what certain patterns were about or how to differentiate them. I found myself often reading past book sections and that sometimes did not even clear my doubts. It is hard to say whose fault is it since it could be the book’s fault, the pattern’s fault or my fault (inability). The patterns are the patterns and the book cannot change too much how they are explained. Therefore, I am not going to judge this too heavily. Basically, if you are one of those person that hates rereading stuff, you may not like this book. You definitely need to reread the whole book, at least one time, to be able to understand everything.

Price

5/5

The Tutorial Review guidelines state it very clearly. If a tutorial is completely free, then it deserves a maximum score without exceptions. Remember that you can check all the tutorial formats along with their prices in the Technical datasheet section. The listed prices have been extracted from the tutorial’s official website which is also where you can read it online. 

Just keep in mind that this free online version it is not going to be available forever. It is guaranteed to one day disappear. Therefore, my personal suggestion to you if you are planning to read this tutorial, is to start reading it now. Do not leave it for later if you can start right now. The tutorial is not that long and you should be able to read it in one week as mentioned earlier.

Supposedly, there are no noticeable differences between the tutorial formats. In my case, I made this tutorial review with the physical book format. Moreover, all of the different tutorial releases have a reasonable price. Specially, the free online version which is such a nice gift by the author. Having an online free version of the book is incredible and I definetely support it since it helps everyone. Obviously, the physical book variation is the most expensive out of the different options as it requires the most resources.

Score table

Here we have the different scores for Game Programming Patterns.

Area

Score

Justification

Up-to-date

4.5/5

4.5 (Excellent)

Software design patterns rarely change so it is almost perfectly up-to-date and it will likely stay that way.

Quality

4/5

4 (Great)

Has lots of features to make the reading more enjoyable and easier but can still be annoying and tedious.

Price

5/5

5 (Fantastic)

The online version is completely free and accessible for everyone. Other formats have a reasonable price.

Final score

4/5

4 (Great)

Very valuable tutorial for any programmer as its contents can be applied to any software development sector.

Finally, to close out this second entry for the Tutorial Review series. I wanted to mention a lesser but still important closing remark. I believe that at the end of the book, there should have been some kind of pattern overview. This section would have focused on reviewing and summarizing all 19 patterns in like 1-2 pages for each one. Such thing would have been extremely helpful to have for how dense and theory-based this tutorial really is.

There is no right answer, just different flavours of wrong.
Robert Nystrom - Game Programming Patterns author
Robert Nystrom
Game Programming Patterns author
Attention

This website has updated its Privacy Policy in compliance with changes to European Union data protection law, for all members globally. We’ve also updated our Privacy Policy to give you more information about your rights and responsibilities with respect to your privacy and personal information. Please read this to review the updates about which cookies we use and what information we collect on our site. By continuing to use this site, you are agreeing to our updated Privacy Policy, Terms of Use and DMCA.

All the legal documents mentioned can be found here.