From: mickwest@aol.com (Mickwest) Newsgroups: rec.games.programmer Subject: Review of "Tricks of the Game Programming Gurus" Date: 20 Aug 1994 19:53:03 -0400 Review of "Tricks of the Game Programming Gurus". LaMothe, Ratcliff, Seminatore & Tyler. Pub. SAMS Publishing (Macmillan), ISBN 0-672-30507-0. It's amazing what they put on the back of books these days. You truely cannot judge a book by its cover anymore. The blurb on this book states "Create your own exciting, action packed, award-winning interactive games", "Master advanced bitmap graphics, artificial intelligence, 3-D graphics, I/O basics, high-speed 3-D sprites, and character animation", "Develop dazzling art, ...", and, most misleadingly, "Gain a solid understanding of the programming techniques used for 3-D games such as Doom". All a bit of an exaggeration., this book covers a wide range of subjects, mostly not at a level accessible to an absolute beginner, and mostly at a level that does not really reach that of a professional prgrammer, let alone that of a "Game Programming Guru", and certainly not the level of the authors of "award-winning interactive games". However, false advertising aside, this is a very useful book for someone starting out in the field of PC games programming, someone who has some experience of programming in C and assembly, and a vauge understanding of the terminology. The book plunges you in at the deep end with an introduction to Assembly language, and the first few chapters all deal with technical PC related topics that provide a good grounding in the subject, providing you already know something about it. The book names four authors, but all but two of the nineteen chapters are written by Andre LaMothe, and I find his style to be rather off the cuff, with lots of glib little remarks. It seems almost as if he wrote the book in one sweep, off the top of his head with little thought to how the readers will view what he has written. What he writes will make perfect sense to him, it mostly makes perfect sense to me, but then I've been programming games for ten years. But to someone who knows little about the subject, I feel that this book will be very dificult to get into. LaMothe unconciously assumes a certain level of understanding that is not going to be there. Take the explanation of double buffering: (Page 150) "Method one is double buffering. The entire screen is draw on an off-screen buffer, then the entire screen is blasted to the video buffer at once. This minimizes messing with all the small sections of the video buffer, and does its job in one big movement of data." He then shows a graphical example, with the size of the buffer incorrectly show as 14,000 bytes (A typo, sure, but a very obvious one). Sure, you can understand the explanation, if you already know what it means. But what if you have never heard of double buffering before? The explantion does not make it clear that it is the contents of the off-screen buffer that are "blasted" to the video buffer. It reads like: "Draw the screen off screen, then blast the screen into the video buffer". The whole book is ladened with good intentions, but this lack of understanding prevents them from coming through. As well as being confusing the style can be annoying at times, take page 718 "I feel as if I've left you out to dry by not putting sprites into the world. I'm sorry, but I really want you to do this yourself. It will build your character. I will give you some hints though." BUILD MY CHARACTER! Heck Andre, I bought the book to learn about video games, if I want to build my character I would have have gone to the "Personal Growth" section of the bookstore. Still, I suppose he could be joking, it's difficult to tell. The most misleading thing on the back of the book is the claim that it will tell you how to program games like Doom. This is a WILD exaggeration. All it does is provide you with a VERY simple ray-casting engine of the type used in Wolfenstein. Doom is a whole order of magnitide more complex than this, even if we only look at rendering the walls and floors. All the game logic and frightfully complex data structures in Doom are not even touched on in the book. This failure of this book to deliver what it claims just makes me realize the sheer immensity of the task. What is explained in the book is usually explained very well. However it is the middle of the explanation, missing out the basics needed for understanding, and stopping short of the level required for commercial games. If the book were to go into the kind of detail required to fulfill its claims, it would be around five thousand pages long. In the 744 pages it has now it performs a useful task. With my stated reservations in mind, the chapters on algorithms and synthetic inteligence are quite good. The explanation of finite-state machines is very good, considering FSMs are an important concept in advanced games programming. Andre is not a Game Programming Guru. He seems to write about things that he has never even tried before. Take his explanation of recording a demo mode on page 453. He basicly says you should sample the state of the joystick every 1/10th of a second and record this to be played back later. Anyone who has ever done a demo mode can tell you that this approach will simply not work. If the recorded joystick inputs do not match exactly with the actual inputs for EVERY game loop, then they will swiftly get out of sync. Even an error of one frame, or as little as 1/70th of a second will swiftly accumalate and cause the demo to go wrong. Andre actually admits that this approach does not work, on page 717 "... none of the techniques I used took into consideration the temporal aspects of the game and its lack of synchronous timing". It seems Andre has never written a demo mode before. Looking at his profile, it also seems he has never worked in the games industry before. Is the book worth buying. Well, you have to weigh several factors. It costs $45, though you get a CD with that. It does not really do what it claims to do. But it does give an excellent (for all its faults) introduction to the art of programming PC games. It assumes a certain level of knowledge and is not suitible for the total beginner in games programming. The title is misleading, and I'm sure it is only like that as a follow up to "Tricks of the Graphics Gurus". The text on the back of the book is misleading, and there is no excuse for that. It's a nice reference book to have on the shelf, but don't rely on it alone to teach you what you need to know. Like any aspect of programming, you learn by example and experimentation. This book is a very useful source of examples and basic knowledge. But does not live up to its claims. Mick West. (Mickwest@aol.com) From: Lee Lorenz Newsgroups: rec.games.programmer Subject: Re: Review of "Tricks of the Game Programming Gurus" Date: Sat, 20 Aug 94 22:20:53 -0500 That was a pretty good review of the book, except I have to disagree with you on the conclusion that a total beginner might be lost... this book is a pretty good introduction to the basic concepts, and I think it would be well served to be followed by books on specific subjects, like Raycasting engines (The book promises a DOOM-like engine, but it is actually more Wolfenstein-like; that is no ceilings or floors). Like Flights of Fancy, any book attempting to explain Game Programming from scratch can't possibly cover advanced subjects. To SAMS credit on the user-level, the back clearly states "Intermediate-Advanced I think this is a good starting point for a more advanced series by SAMS, and I would like to suggest the following titles: Puzzle Type Scrolling Shoot-em ups Raycasting Engines Flight Simulators Adventure Games (RPG) War Games Also, I would like to have seen more reference to 32-bit C compilers. Oh well. Lee From: rompel@bilge.water.ca.gov (David Rompel) Newsgroups: rec.games.programmer Subject: Re: Review of "Tricks of the Game Programming Gurus" Date: 21 Aug 1994 07:22:59 GMT **************************************************************** Inserted later in reply to request for permission ot include my usenet post in the review: Please excuse any offensive/stupid remarks in the following. I was rather frustrated with the lack of depth of the material. As it turns out I did not return the book as I originally planned but gave to to a friend who it would be more appropriate for. Except for the emotional harping my opinion still stands... It lacks the depth to be of much use except as a introduction to game programming... In basic I completely concure with the formal review by mickwest@aol.com Please send all flames to /dev/null as I don't need or want them and to the Author & Publisher sorry but these are my opinions as a consumer and competant programmer ( though poor speller ). These these opions are mine and do not reflect those of this site or my employer!T ***************************************************************** I must concure with the basic review, TOTALLY MISLEADING CLAIMS of being a way to learn how to develop leading edge programs. This book has value to those who want to understand the basics but never really do anything with them. OOPS I'm flaming..... I was happy with it as an intro to many subjects, but feel it lacks ANY depth at all. It would be one thing to brush on the sujects and then have the really knarly code only available on the disk, but this and several other books I won't mention have left me with the feeling that they was cranked out ASAP as a means for income not for the more pure reason of actually giving people a useful/strong background and lots of examples of code to really do great things. The major problem, is this is not a simple subject. To do anything really cool you have to learn the basics (this book shows many of them) Then really bang something of consequence out. The idea that any 1 book could show you how to develop leading edge games is hard to believe, if the claims are big there's should be a requirement to deliver. For anyone out there writing/delivering a book someday on the same Please deliver whats advertised. If your delivering a CD, FILL IT with the stuff off x2ftp.oulu.fi and ftp.uwp.edu. These are my favorite resources next to Foley's book (essentially the bible of graphics programming & algorythms) The files off the net are the kinds of resources that people really can use and it's an injustise to not redistribute everything that is available, and if you have time/space review or reference it. All of this stuff is freely redistributable and difficult to obtain to all but the maddest FTP'ers ( ~ 75Megs ) Let me finish this note off by saying that I did find a few informative portions and I am no sloch of a programmer (spelling maybe) This book will be of value to novice game programmers, but has little value to anyone who has plans to write bleading edge games.. I was jsut a little offended by the lack of hard details and a completed program in any of the many types covered. There were interesting starting points but no real depth. The idea that such an incomplete book be advertised as anything but basic game programming is....... Sorry if I've offended the author, but my oppions needed to be voiced.