Game Engine Architecture by Jason Gregory

This is the book I’ve been wanting to read for a long time. With close to 1000 pages of pure content, you get a heavily condensed compendium on good, bad and typical practices in game engine design. What’s great about this book is that even though it reads like something straight out of a university library, all the information is based on the author’s practical experience. This means that there’s relatively very little “dry” theory in favor of analysis of real life applications and how each component may perform on current gaming hardware. The latter was something I found especially interesting, since there’s very few articles out there that give you a decent comparison of the XBox or PS4 hardware against a desktop PC. If you never worked in AAA gamedev, you will definitely learn a lot. That said, the book is clearly aimed at people with various programming or industry experience. If you already shipped a title, you may find some parts of the book rather obvious. Nevertheless even having prior knowledge of the covered topics didn’t prevent me from catching some interesting quirks, making going through the entire thing worthwhile.

The two major chapters of the book are focused on rendering and animations which are usually the most complex. However other elements are not neglected in any way – coverage of memory allocators, debug tools, profilers, gameplay design and HID gives the reader a perfect picture of how extensive and complex piece of software a game engine truly is. Comparison of internal software used by major game developers was pretty informative and should give you an insight on how to properly design tools of your own. One thing that should be noted is that there are no straight code solutions in any chapter – the whole book should be treated primarily as an introduction to each topic. Supplementary literature is provided, so this makes a perfect starting point no matter what you want to focus on in your programming career.

If you want to start out in the game industry this is definitely the book you want. If you’re already experienced you may not benefit as much but you might still learn a new thing or two. However if you already own the first edition of the book you might as well hold out. The audio chapter and slightly updated information on gaming consoles, while informative, are not good enough a reason to spend another $60.

Tweet about this on TwitterShare on RedditShare on LinkedInShare on FacebookShare on Google+Share on Tumblr

Effective Modern C++ by Scott Meyers

If you’ve been on the C++ bandwagon for a while you probably heard about Scott Meyers and his “Effective…” book series. While I haven’t read every single one of them, the ones I did check out always came packed with highly compressed information on how to become a more productive C++ programmer. “Effective Modern C++” is, thankfully, no exception.

Each of the 42 tips embedded in the book comes with a practical example and concise explanation of the techniques used in the code. The title does mention C++14 but most of the content is focused primarily on C++11 (with respective and often simplified C++14 examples if applicable). A positive notion while reading the book is that you don’t necessarily have to be (too) familiarized with language constructs introduced by C++11/14, since every chapter gives an extensive explanation on how each one of them works in detail (and why it’s a better/worse solution in particular cases). That being said, it’s difficult not to notice the author’s love for templates – almost all code samples use them. Personally, I have nothing against that but depending on which industry branch you’re working in you might find the tips more/less useful (in case of game development many senior devs will tell you how much they loathe templates!). Nevertheless, going through all 300 pages of “Effective Modern C++” was an educating experience, so if you’re serious about moving to C++11 I highly recommend getting it!

Tweet about this on TwitterShare on RedditShare on LinkedInShare on FacebookShare on Google+Share on Tumblr