4 ms·
Game Programming Patterns (2014)
- jsmo 4y agoMore info on the author can be found at http://stuffwithstuff.com/ http://stuffwithstuff.com/
- seibelj 4y agoThis is a solid book. It isn’t even really about game programming, it’s more about data structures and code organization IMO. Someday I need to post my Ultimate Programming Book list - this will be on it.
- scruple 4y agoI love this book and it's inspired me at least twice that I recall to find a different way to approach solving a difficult problem. Highly, highly recommended, as well.
- slmjkdbtl 4y agoHe makes amazing books, Crafting Interpreter is also very very good
- wokwokwok 4y agoUnchanged afaik since it's release in 2014, and also previously discussed in: - https://news.ycombinator.com/item?id=23203699 https://news.ycombinator.com/item?id=23203699 - https://news.ycombinator.com/item?id=14475489 https://news.ycombinator.com/item?id=14475489 - https://news.ycombinator.com/item?id=6004885 https://news.ycombinator.com/item?id=6004885 - https://news.ycombinator.com/item?id=24233229 https://news.ycombinator.com/item?id=24233229 - https://news.ycombinator.com/item?id=17845334 https://news.ycombinator.com/item?id=17845334 - https://news.ycombinator.com/item?id=7543158 https://news.ycombinator.com/item?id=7543158 - https://news.ycombinator.com/item?id=7634734 https://news.ycombinator.com/item?id=7634734 ... Can we at least get (2014) put in the title when this gets reposted again?
- seibelj 4y agoThis book is timeless, it is abstract and the topics apply to Java or the latest fad language. One good thing about HN is quality material can be reposted. The rules say once per year the same topic can be discussed. Given the absolutely dismal state of higher education and how shittily it prepares students for the workforce, posting books like this regularly for the next generation is very helpful.
- wokwokwok 4y agoYou’ll find this in the other discussions, but: - the content is covered more succinctly by the Wikipedia page on programming patterns. - the content is out of date and doesn’t apply to most modern game engines (yes, it really doesn’t; yes, if you’re implementing flyweight or component yourself you’re writing a game engine not a game). - it doesn’t cover actual game programming patterns like gpu kernels or blackboards (see for example Ai for Games by Ian Millington for a comparison of a book that gives actually useful advice). Yes, it’s free. Yes, it covers basic trivial programming patterns. I think people can make their own minds up if they think it’s worth their time… …but, regardless, I think it’s pretty fair to put 2014 into the title. It’s old, and the advice in it is out of date.
- pajko 4y agoYep, it's full of raw pointers. Smart pointers were already available in 2014.
- pjmlp 4y agoTo be more precise, they were already part of C++ libraries when C++98 was still in progress, e.g. ComPtr in MFC.
- 1f60c 4y agoThe author explains why in the first chapter^: > The goal of this book is not to teach you C++. The samples are kept as simple as possible and don’t represent good C++ style or usage. Read the code samples for the idea being expressed, not the code expressing it. > > In particular, the code is not written in “modern” — C++11 or newer — style. It does not use the standard library and rarely uses templates. This makes for “bad” C++ code, but I hope that by keeping it stripped down, it will be more approachable to people coming from C, Objective-C, Java, and other languages. ^ https://gameprogrammingpatterns.com/introduction.html#about-the-sample-code https://gameprogrammingpatterns.com/introduction.html#about-...
- Apocryphon 4y agoHe works on Flutter these days. Wonder if he's made any games using that framework.
- nmfisher 4y agoIs he on the Flutter team, or just working on Flutter-based things independently? Had a quick scroll through his website/Twitter feed and couldn't find anything specific - I work with Flutter pretty closely too so I'm keen to follow people who are also down in the weeds.
- Apocryphon 4y agoHe is on the actual Dart team at Google. https://medium.com/dartlang/making-dart-a-better-language-for-ui-f1ccaf9f546c https://medium.com/dartlang/making-dart-a-better-language-fo... https://itsallwidgets.com/podcast/episodes/41/bob-nystrom https://itsallwidgets.com/podcast/episodes/41/bob-nystrom https://www.se-radio.net/2021/11/episode-486-bob-nystrom-on-dart/ https://www.se-radio.net/2021/11/episode-486-bob-nystrom-on-...
- atan2 4y agoI really like this author. Most content created by Bob is solid.
- shepherdjerred 4y agoFantastic book! I wrote a game engine for my capstone project in college, and this book was invaluable for many of the design decisions I had to make.
- chris_wot 4y agoI used the Command pattern in LibreOffice to create a “filter” for animations and bitmaps. I created a BitmapFilter class [1] it just has an execute abstract function which you override to create your own objects. For convenience I created a static Filter function that takes a command object and then executes it to return a bitmap. It means I never have to modify the Bitmap or BitmapEx classes to implement functions that modify the bitmap. Just derive from BitmapFilter’s class and you are up and running! 1. https://opengrok.libreoffice.org/xref/core/include/vcl/BitmapFilter.hxx?r=3aef606f https://opengrok.libreoffice.org/xref/core/include/vcl/Bitma...
- ajuc 4y agoThis is the standard way to implement Undo in editors. You have operations that are put onto stack and applied one after another on the original data. You can cache intermediate results for optimization. And when you undo - you just pop the last operation from the stack.
- oneeyedpigeon 4y agoYou can tell a book is good when, at various points you stop and think 'but what about...?', only for the author to answer the exact question in the next paragraph. Brilliant stuff.