Swedish Coding

Book Review: Game Engine Architecture

December 21st, 2009 by swedishcoding_1ggc23 — ReviewsNo Comments

Cover of the Game Engine Architecture book by Jason Gregory

Is this yet another ‘Game Programming’ book?

No, not at all. Game engines nowadays are so large, complex and filled with so many subsystems that old-school engine design will fall apart on modern hardware. This book brings an up-to-date explanation of what goes into a modern game engine and why.? For people looking for a book where they can copy-and-paste code until they have a somewhat working game engine then this is not the book for them. This is a book about game engine architecture and not of specific implementation details of the various subsystems. This means that once a concept has been described and the design has been explained then the low-level implementation (the code) is in most cases left as an exercise to the reader. The implementation is usually something boring anyways but in the few instances where it matters he does go into detail and show code examples. The book does assume a good understanding of C++ as it is the programming language used in almost all game engines together with some type of scripting language.

The topics in the book range from the basic but very important vector math to various methods of character animation blending and rendering. Making a game engine today is such a huge topic that no one book can capture it all. What this book does is explai
n a few of the important parts of each subsystem and why that particular design was chosen. If the reader then want to get more specific about any particular subsystem there are other books or tutorials out there on the internet.

Audience

I would not say that this book is a for newcomers that want to write their first game engine, but rather programmers with some experience. In my opinion intermediate skilled programmers are the perfect reader for this book, but even a seasoned game programmer can and should read this book. There are many concepts explained in this book that should be known by all game programmers but unfortunately many do not know them. They get too focused on their area of expertise and don’t actually know the overall design of the engine they are working on. This book will help them get a better understanding of how all the pieces fit together. Beginners can use this book, as it is university course material, but some concepts can not be fully appreciated until the reader have more experience under their belt and can appreciate the finer design details and the benefits thereof.

Through the test of fire

What makes the content of this book worth the reading is the relevance of the content. The contents is not out-dated, academic or dumbed-down… quite the contrary. The concepts in this book are greatly influenced by the very engine we were using for Uncharted 1 and 2.? Making a game engine for today’s computers is complicated and there are many design decisions made during the development of a game/engine that is made with performance bottlenecks in mind, whether it is memory allocations, animation blending or the use of multi-processor/multi-thread architectures. What also feels fresh when I read this book is that Jason does not just present one way to solve a problem, for example the design chosen for game objects. He talks about different approaches and why some paradigms you might have learned in your introductory Java/C++ class is not a good design decision for a large-scale high-performance game engine.

If you read this book at you find yourself knowing everything already you should contact us at Naughty Dog for a job. 😉

0 responses

You must log in to post a comment.