Rating:  Summary: One big gripe... Review: Although the author, in his comment below, points out that correctly-running code is available at his web site, he neglects to note that this code will only work with Visual Studio .NET, the latest-greatest-and-most-expensive release from Microsoft. I would guess that most people who would be interested in this book would be more likely to own Visual Studio 6.0, but the source code won't compile under that product. The web site offers little more than a suggestion that the user without the megabucks to get the new Visual Studio should simply rewrite the source code to get it to run under 6.0...but I would suspect that, if you have the programming skills to do that, you probably don't need this book! To my mind, it borders on the unconscionable to release a book with code that only a few well-heeled readers will be able to afford to use, then shrug off that barrier by suggesting that the rest of us should simply "roll your own."
Rating:  Summary: Best intermediate - advanced game programming book I've read Review: An excellent and incredibly informative book. My copy appeared two days ago and I've already finished it (although I will certainly be going through the whole thing again to make some notes for my game project design). This covers a lot of the things that other texts refer to but never go into detail about such as scene graphs, effective debugging, resource loading and caching, and initialization technique. A must for those who want to make large professional games.
Rating:  Summary: Very insightful reading Review: As someone who just has about 3 years of programming experience and is finishing up high school this year, I found this book to very helpful. I got Tricks of the Win Game Programming Gurus one year for Christmas, and although the later chapters such as AI, multithreading, and physics modelling were pretty good primers, all the DirectX material were essentially rehashes of the SDK docs. Just about every other game programming book that focused on DirectX had the same kind of characteristic...most of the DX material could just as easily be found in the SDK docs. But when I came across Game Coding Complete, I saw it had a lot of good, practical information; I couldn't put it down.I really liked the 2D chapter because it provided some good pointers on surface management (such as when and when not to restore surface data), explained how alpha blending works (and provided a surface-surface copy function that utilizes alpha blending), and lays out some of the basic functionality of a sprite class. For a newcomer to game programming, I really found these practical examples very helpful in at least getting ideas churning in my head as to how I want design my game. Chapter 7 on the whole initialization, main loop, and shutdown procedures were real insightful in my opinion. Mr. Mike begins by discussing what he thinks is a good initialization process. One of the earlier reviewers might dismiss this as just another opinion of the author, backed up by no fact, but, at least to me, the author has some pretty sound reasoning for suggesting what he suggests. An example would the case he makes for doing initializations of certain objects: instead of relying on a user calling some Init method and using the return value from it to test for success or failure, he suggests doing all initializations from within the constructor and throw an exception if an error occurs. I agree with the author that the resulting code looks cleaner and a bit more elegant than testing the return value for multiple Init method calls (of course, this is also partly a matter of personal preference, but what have you). As with many other chapters, this chapter provides some pretty useful code for you to use, such as a function that will calculate the CPU speed, another example showing how to ensure that only one instance of your game is loaded, and a fairly solid cooperative process manager. Chapter 8, which covers resource management, was pretty informative and made a convincing argument as to why you ought to use resource files rather than relying on all your images/sounds/what have you as individual files. Even though resource packing may seem a little daunting at first for a beginning game programmer, but in the long haul it's rather rewarding to be able to store all your resources in a few packed resource files. Mr. Mike uses the iPac program as an example for a resource packer, and although it is not freely available (I'm unaware of any free resource packing tool), through images and bit of information the book provides, I've been able to create a resource packing tool that more-or-less models after iPac and that suits my needs. There are other chapters, especially the 3D math and 3D graphics chapters, which are pretty helpful, but again, as someone with no knowledge in 3D graphics, it kind of confusing. But I attribute that to my ignorance. This book is not without its shortcomings though. Some of the source code won't work if type straight from the book. Fortunately enough, many typos have been pointed out on the book's website, and the source code appears to be in working order. Also the GUI and user-input chapter didn't seem to have the same caliber as some of the other chapters had. The author did mention it would've been much longer, but just seems like it's lacking a bit in its current state. It's better than nothing though. Also, there isn't any mention to audio really (aside from his choice of Miles Sound System in the beginning of the book). In all fairness to Mr. Mike though, he does state in his introduction that he has a bit of a bias to Win32 and DirectX throughout the book. As such, you can't necessarily assume that ALL the concepts are applicable to every type of game programming (PC or console). I do think he makes a valiant effort in trying to cover certain topics relevant to console development. He does a very nice job of trying to cover a lot of material in a rather short book. Coupled with the source code that is available online, I found this to be one of the best books I've read on game programming. It's chock full of very useful information, much of which can be insightful for both the beginning and the professional game programmer. Has my definite recommendation.
Rating:  Summary: Very insightful reading Review: As someone who just has about 3 years of programming experience and is finishing up high school this year, I found this book to very helpful. I got Tricks of the Win Game Programming Gurus one year for Christmas, and although the later chapters such as AI, multithreading, and physics modelling were pretty good primers, all the DirectX material were essentially rehashes of the SDK docs. Just about every other game programming book that focused on DirectX had the same kind of characteristic...most of the DX material could just as easily be found in the SDK docs. But when I came across Game Coding Complete, I saw it had a lot of good, practical information; I couldn't put it down. I really liked the 2D chapter because it provided some good pointers on surface management (such as when and when not to restore surface data), explained how alpha blending works (and provided a surface-surface copy function that utilizes alpha blending), and lays out some of the basic functionality of a sprite class. For a newcomer to game programming, I really found these practical examples very helpful in at least getting ideas churning in my head as to how I want design my game. Chapter 7 on the whole initialization, main loop, and shutdown procedures were real insightful in my opinion. Mr. Mike begins by discussing what he thinks is a good initialization process. One of the earlier reviewers might dismiss this as just another opinion of the author, backed up by no fact, but, at least to me, the author has some pretty sound reasoning for suggesting what he suggests. An example would the case he makes for doing initializations of certain objects: instead of relying on a user calling some Init method and using the return value from it to test for success or failure, he suggests doing all initializations from within the constructor and throw an exception if an error occurs. I agree with the author that the resulting code looks cleaner and a bit more elegant than testing the return value for multiple Init method calls (of course, this is also partly a matter of personal preference, but what have you). As with many other chapters, this chapter provides some pretty useful code for you to use, such as a function that will calculate the CPU speed, another example showing how to ensure that only one instance of your game is loaded, and a fairly solid cooperative process manager. Chapter 8, which covers resource management, was pretty informative and made a convincing argument as to why you ought to use resource files rather than relying on all your images/sounds/what have you as individual files. Even though resource packing may seem a little daunting at first for a beginning game programmer, but in the long haul it's rather rewarding to be able to store all your resources in a few packed resource files. Mr. Mike uses the iPac program as an example for a resource packer, and although it is not freely available (I'm unaware of any free resource packing tool), through images and bit of information the book provides, I've been able to create a resource packing tool that more-or-less models after iPac and that suits my needs. There are other chapters, especially the 3D math and 3D graphics chapters, which are pretty helpful, but again, as someone with no knowledge in 3D graphics, it kind of confusing. But I attribute that to my ignorance. This book is not without its shortcomings though. Some of the source code won't work if type straight from the book. Fortunately enough, many typos have been pointed out on the book's website, and the source code appears to be in working order. Also the GUI and user-input chapter didn't seem to have the same caliber as some of the other chapters had. The author did mention it would've been much longer, but just seems like it's lacking a bit in its current state. It's better than nothing though. Also, there isn't any mention to audio really (aside from his choice of Miles Sound System in the beginning of the book). In all fairness to Mr. Mike though, he does state in his introduction that he has a bit of a bias to Win32 and DirectX throughout the book. As such, you can't necessarily assume that ALL the concepts are applicable to every type of game programming (PC or console). I do think he makes a valiant effort in trying to cover certain topics relevant to console development. He does a very nice job of trying to cover a lot of material in a rather short book. Coupled with the source code that is available online, I found this to be one of the best books I've read on game programming. It's chock full of very useful information, much of which can be insightful for both the beginning and the professional game programmer. Has my definite recommendation.
Rating:  Summary: One big gripe... Review: For a complete book it is heavily lacking in many areas... if you want something more complete check out the Introduction to 3D Game Programming with DirectX 9.0 book, its much better. This book is way too much theory and hype by the old Ultima online designers and their poor coding tales.
Rating:  Summary: Ouch Review: For a complete book it is heavily lacking in many areas... if you want something more complete check out the Introduction to 3D Game Programming with DirectX 9.0 book, its much better. This book is way too much theory and hype by the old Ultima online designers and their poor coding tales.
Rating:  Summary: This is the real thing! Review: His book is targeted towards people who know C++ who want to know where they go from where they currently are to be able to make games (college students, for example). Essentially, this book supplements your C++ abilities as well as adding to the 'game' part of your 'game programmer' education. It covers specific concepts ranging from the various game components that programmers will need to understand such as 2D/3D graphics, Interface/Input Code, the main loop, resource management, and DirectX/Win32 programming. There is a lot of specific technical information in the book, but it also covers some broad concepts such as scheduling, testing, and an introduction to some advanced programming concepts such as smart pointers and scripting languages. The basis of the book is from an angle of professional experience as opposed to the mere hobby game developer. I would recommend this book to any programmer who wants to supplement their education towards game development as a serious career.
Rating:  Summary: Excellent Complete Overview Review: I had the distinct pleasure of working at Origin Systems when Mike McShaffry was there. I took an excellent class in C++ from him, and since then I've always wished I could take another. This book is my second class. I've read many, many books on game programming and design. I've read some really good ones, but this one is simply the best, because it's a complete overview of game programming (or as complete as one book can be). If you've got some basic skills and are looking to progress but don't know exactly what you need to learn and focus on, this is your book - it will point you in exactly the right direction. Another great plus is the fact that every code sample in the book has actually been used in a shipping game - they're tried and true. Plus, the book is incredibly readable - Mike's writing is clever, it's not overly dry and also doesn't try too hard to be "cool". Summation: Best. Game. Programming. Book. Ever.
Rating:  Summary: Excellent Review: I have studied a lot of the "standard" game coding books recently. This is the first game book I have read that I was sorry when I got to the end because there wasn't any more. I had to read it again. It is full of relevant content, peppered with real insights from someone who has obviously been there and got the T-shirt. Because of its breadth of scope it has helped me fill in a lot of gaps left by some of the other texts. I have been programming in C++ for over 13 years and I still learned a few neat tricks. One of these was directly relevant to a program I am writing - thanks for the tip! The non-coding sections are just as interesting as the programming. I had not heard of some of the SCM products discussed, but I have started to evaluate one of the recommendations purely on the strength of the review. This book uses amusing asides labelled "Tales from the Pixel Mines" to show just why you shouldn't be stupid when it comes to basic software development disciplines. It discusses builds, project organisation and planning along with basic design and technology selection. These sections must strike a familiar chord with anyone who has been in the trenches. It ought to be prescibed reading for everyone who is tasked with developing software, not just games. While it doesn't contain as much coding as I would like, it does a fine job of painting the bigger picture. There is still enough detailed content in it to be immediately useful. (Just read more specific texts if you want in-depth details on topics like 3D graphics or AI.) I hope Volume 2 mantains the standard....
Rating:  Summary: Excellent Review: I have studied a lot of the "standard" game coding books recently. This is the first game book I have read that I was sorry when I got to the end because there wasn't any more. I had to read it again. It is full of relevant content, peppered with real insights from someone who has obviously been there and got the T-shirt. Because of its breadth of scope it has helped me fill in a lot of gaps left by some of the other texts. I have been programming in C++ for over 13 years and I still learned a few neat tricks. One of these was directly relevant to a program I am writing - thanks for the tip! The non-coding sections are just as interesting as the programming. I had not heard of some of the SCM products discussed, but I have started to evaluate one of the recommendations purely on the strength of the review. This book uses amusing asides labelled "Tales from the Pixel Mines" to show just why you shouldn't be stupid when it comes to basic software development disciplines. It discusses builds, project organisation and planning along with basic design and technology selection. These sections must strike a familiar chord with anyone who has been in the trenches. It ought to be prescibed reading for everyone who is tasked with developing software, not just games. While it doesn't contain as much coding as I would like, it does a fine job of painting the bigger picture. There is still enough detailed content in it to be immediately useful. (Just read more specific texts if you want in-depth details on topics like 3D graphics or AI.) I hope Volume 2 mantains the standard....
|