💾 Archived View for epi.benthic.zone › library › Nystrom_GameProgrammingPatterns.gmi captured on 2021-11-30 at 20:18:30. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
2021-08-08
I have more thoughts about why exactly I picked up this book and what I got out of it, and I think I'll write about that in a separate post. Nystrom positions the book as a kind of updated /Design Patterns/ for game programmers, which in practice means that it emphasives certain patterns that are particularly important to the real-time, interactive nature of games (like the Game Loop or the Update Method) and that the examples are all focused on hypothetical game engine features.
I really like the idea of a Pattern Language, but one thing that is really challenging with a book like this is threading the needle between general theory that is too vague to be useful and examples that are too specific to generalize. I came to this book mainly because I wanted some insight on software architecture. There is definitely some useful information there, but it is tied up with a lot of details that probably are more meaningfunl for a game programmer or at least for someone who regularly uses object-oriented programming. The Bytecode chapter was the worst offender in this regard. The design pattern there is basically "provide a domain-specific language with which users can generate content." But the chapter focused on how you would implement a stack machine to interpret your DSL, and there was relatively little about how to actually construct a good DSL for your users.
In the end, the larger-scale insights about software architecture from this book are really about modularity and specifying interfaces. It seems to me that those insights are the bread and butter of object-oriented programming, and you may not really need this book to figure that out. It is a fun read, though, and not too long. Plus the book is freely available online