Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Multi-Threaded Game Engine Design Paperback – Aug 19 2010

See all 2 formats and editions Hide other formats and editions
Amazon Price
New from Used from
"Please retry"
CDN$ 46.46 CDN$ 60.93

Harry Potter and the Cursed Child
click to open popover

No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

Product Details

  • Paperback: 550 pages
  • Publisher: Course Technology PTR; 1 edition (Aug. 19 2010)
  • Language: English
  • ISBN-10: 1435454170
  • ISBN-13: 978-1435454170
  • Product Dimensions: 22.6 x 18.6 x 3.6 cm
  • Shipping Weight: 1.2 Kg
  • Average Customer Review: Be the first to review this item
  • Amazon Bestsellers Rank: #1,187,347 in Books (See Top 100 in Books)
  •  Would you like to update product info, give feedback on images, or tell us about a lower price?

  • See Complete Table of Contents

Product Description


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).

Customer Reviews

There are no customer reviews yet on Amazon.ca
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on Amazon.com (beta)

Amazon.com: HASH(0xa45f7bf4) out of 5 stars 11 reviews
21 of 25 people found the following review helpful
HASH(0xa41d53e4) out of 5 stars Disappointing book. Oct. 8 2010
By Avengre - Published on Amazon.com
Format: Paperback Verified Purchase
I bought this book expecting it to tell me how to effectively incorporate Multi-threading into a game engine, which is likely what anyone would think. I was very much mistaken by deciding to purchase this book. The title leads you to think it would have been a great resource for this fashion, but alas its not.

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.

Reader Beware.
13 of 15 people found the following review helpful
HASH(0xa41bc3fc) out of 5 stars Definetly don't judge by it's cover or title Nov. 3 2010
By Goscho86 - Published on Amazon.com
Format: Paperback Verified Purchase
When I first saw the title of this book I was really excited and thought that it was exactly what I needed to be able to convert my current game into a multithreaded game.

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
6 of 7 people found the following review helpful
HASH(0xa41bc42c) out of 5 stars Like an old-school programming book Jan. 1 2011
By Amazon Customer - Published on Amazon.com
Format: Paperback Verified Purchase
I agree with the other reviewers. This is like a game programming book from the 90s. It spends 20-30 pages actually talking about threads and then the rest of the book is a tutorial on writing a DirectX engine.... and a poor one at that. If you're looking for a step by step guide to assemble a small game engine, then I guess this book helps, but if you're looking for ideas and workarounds to building a multi-threaded game engine forget it.
8 of 12 people found the following review helpful
HASH(0xa65fe138) out of 5 stars Title doesn't match the content Oct. 13 2010
By Ryan McDougall - Published on Amazon.com
Format: Paperback
There is some merit to this book if you're looking at making a toy D3D-based game engine, and want a book to follow along; but there is absolutely *NO* excuse for titling this book as if the core purpose was to teach how to add threading to a modern game engine design. That's being false with your customers, and really inexcusable.

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.
HASH(0xa4f3bffc) out of 5 stars Got boost? June 9 2015
By Sean P. Richards - Published on Amazon.com
Format: Kindle Edition Verified Purchase
I have read a great many of this guys books. I am not all that impressed with the author especially for being a teacher himself. However, let me give you the good and bad of this book.

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.