March 1st 2011
I encountered this book, and the title was very appealing. Unfortunately, there are a lot of bad comments on the book, so when I saw it last time on a shelf, I’ve decided to check for myself.
Content and opinions
The book is split in three parts: threads, a sequential game engine, and then the actual parallelization. In terms of coverage, the threads part uses one quarter of the book, the second part almost three, and the last one has only a few pages. This means that the core of the book is the description of the sequential game engine. Although it is far better in terms of C++ coding than other books of the same publisher, I would have liked the coverage of a complete game engine, not just the graphics part. And this can be found in other books, so the fact that so many pages are dedicated to this subject is a waste of place.
Let’s go over the first part. It covers four main libraries, Boost::threads (a good surprise), OpenMP, POSIX and finally Windows. Once more, it’s unfortunate that the author starts with a high level library and finishes with lower ones, and talks about what threads are only in the fourth chapter. I don’t even speak about mutexes and lockes, they are not completely explained, which is very sad.
Then, the last part has in fact only one chapter. It uses OpenMP, but only the for loops. No mention of critical sections, and even there is at one point two such loops that are imbricated, which is complitely useless, and has a negative impact on performances. As it is not a complete game engine, there is only one task to accomplish: update the position of the elements. This is very simple to do, so the complexity of a multi-threaded game engine cannot be explained and once more, the goal of the book is missed.
The bad comments are indeed well deserved. It’s too bad the author didn’t tackle the issues of parallelization, and spent three quarters of the pages in describing a sequential graphic engine when there are so many books on the subject.
So don’t buy the book.
Tags: Book review, Game architecture, Game engine, Game programming, Multithreaded applications
No Comments yet »