- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Multi-Threaded Game Engine Design Paperback – Aug 19 2010
Special Offers and Product Promotions
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
1. An Introduction to Symmetric Multiprocessing. 2. Working with Threads. 3. Working with OpenMP. 4. Creating The Engine Core. 5. Rendering I: Setting Up The Pipeline. 6. Rendering II: Mesh Objects and Scenes. 7. Threading The Engine for Performance. 8. Threading The Renderer and Entity Manager. 9. Creating The Test Environment (Simulation/Game). 10. Optimizing The Threaded Engine. Appendix A: Configuring Your C++ Compiler . Appendix B: Additional Resources Related to Multi-Processing. Appendix C: References/Bibliography.
About the Author
Jonathan S. Harbour is an associate professor at the University of Advancing Technology (Tempe, AZ). His web site at www.jharbour.com includes an online forum and blog for book support. His most recent game projects are Starflight - The Lost Colony (www.starflightgame.com) and Aquaphobia: Mutant Brain Sponge Madness (www.aquaphobiagame.com).
Inside This Book(Learn More)
Most Helpful Customer Reviews on Amazon.com (beta)
The book starts off by telling you what its not, which mostly includes, "Not a good resource for advanced engine techniques, or building an efficient engine". Not exactly the strongest start, but proceeding on it has a very bright outlook when it discusses the first few chapters on multi threading. Unfortunately, it mearly tells you that there are a few options for multi threading (Windows Threads, Boost::Threads, OpenMP, POSIX), and gives a few lines of code (perhaps 3-5 lines of code specific to each Threading API). No explanation of even what the different arguments really pertain to for any of the function calls. It mentions mutex's only briefly, and says its out of the scope of this book. [Which I found to be rather odd, as mutex's are an EXTREMELY important aspect of Multi threading]. It then proceeds to spend the next 430 pages (out of 564 text pages) discussing how to implement DirectX and a few misc features of an engine. The kicker is, there is basically no explanation of why certain functions or classes are being used. Many many many pages, probably almost 1/2 are nothing but source code cut and pastes. Considering the cost of the book, at best highlights could have been included instead of pumping the page count up by using over-sized font sizes on cut and pasted code blocks. Additionally there are numbers of spots in the book where large sections of text are taken up by a single picture or two. The most glaring example is the section on Matrices, when an entire page was dedicated to two, 4x4 matrix pictures.
the only section which references "Multi-threading agme engine design" is the last chapter. In which the only API used is OpenMP. And surprise again, its large sections of code pasted with a single line or two of OpenMP #pragmas.
What this book is good for:
Now I have to be fair and provide some positives from this book. If you're looking for a 1000ft view of game engine creation, this is probably a good book. It touches on all the fairly interesting sections, short of networking and sound. It gives some examples of how to implement .X mesh loading, and entity management. It provides a very quick primer on the multi-threading API's available.
Unfortunately, my take on the book, was that it is a fairly poorly written book lacking Actual information. The font is rather large for a "text book" style Programming Text, uses over sized pictures, code blocks, and numerous 'bullet points' to expand the page count. So as such, I can't suggest anything more than two stars.
But as most of the other reviewrs has also written that's not the case. I have never written a bad review but this book leaves me no choice and I feel I have a right to save others from the same.
The book spends one way too general chapter on what Multi-threading is and what options you have for your game engine. The rest of the book is then spent building a simple serial game engine, which in my opinion is not as good as many other engines built in books eg. the Luna series.
Then the last chapter shows you how to add OpenMP lines to loops in that engine with no explanation of why the sections are chosen or what the gains are now that its "multi-threaded"
The book should be renamed "Adding OpenMP to the loops of a simple serial Game Engine". If you have already got some game programming experience under your belt don't waste your money, you'll learn just as much from your average OpenMP tutorial online. And if you are completely new try one of the Frank Luna books instead
The portions of the book actually dedicated to parallelization/multi-threading are just a few chapters slapped on the beginning that show you how to create threads, and a final chapter that slaps a few OpenMP pragmas on the toy engine built in the second half of the book. The chapters feel thrown on in order to avoid making the title a blatant lie.
What's worse, portions of the text contain noticeable layout errors and bad C++ style (such as checking for null before deleting -- a redundant operation) which cast doubt about the fidelity and quality of the text.
Buying a book online without being able to read through the whole thing always involves an element of trust. I feel my trust was abused, and I hope this review keeps you from falling into the same trap.
This book will give you a great look at some beginning C++ / OOP style programming. It uses the boost library to reduce some of the complications of threading / multitasking.
The book will lead you to a trapped corner fairly quickly in its implantation of the beginner engnine. The first several chapters are nothing but talking about the windows programming and threading and threading theory. After that you get into building the game engine. Threading is not used int he engine till almost the end of the book.
I purchased this book for school and a lot of students had issues with this book. So if you purchase it remember you may need to google some of the answer and the author does tend to be grumpy with new students.