To be an ordinary programmer is one thing: You need only learn how to interact with the computer on its own terms, creating buttons and combo boxes that have no significance away from the screen. To be a game programmer--particularly one that writes games with environments that appear three-dimensional to their players--is something else entirely. Such work requires that the flat screen simulate the real world, complete with light, shading, texture, gravity, and momentum. It's all quite complicated. Tricks of the 3D Game Programming Gurus helps its readers make great progress in creating 3D worlds and the action that goes on in them.
That this large, dense book manages to explain how to design and implement a 3D game while neither glossing over too many details nor swamping the reader with trivia is a credit to author André LaMothe. He opens by showing (and explaining) the C++ source code of a simple but full-fledged 3D spaceflight shooter game--a real boost to the reader's confidence. From there, he explains the complicated geometric concepts and mathematics that underlie realistic games (always with an eye toward software algorithms) and shows how to use the many APIs and libraries (including Microsoft DirectX 9.0) that make the world-builder's job easier. Make no mistake: Designing and building convincing games with 3D visuals and behaviors that convincingly approximate real-world physics is hard work. In this book, LaMothe helps you get it done and enjoy the process. --David Wall
Topics covered: How to design and build 3D worlds and the goings-on within them. Aside from mathematics and geometry, this book focuses on wireframe models, shading, rendering, and animation. Microsoft DirectX 9.0 gets special attention.
Book Description
Today is the greatest time in history to be in the game business. We now have the technology to create games that look real! Sony's Playstation II, XBOX, and Game Cube are cool! But, all this technology isn't easy or trivial to understand - it takes really hard work and lots of Red Bull. The difficulty level of game programming has definitely been cranked up these days in relation to the skill set needed to make games. Andre LaMothe's follow-up book to Tricks of the Windows Game Programming Gurus is the one to read for the latest in 3D game programming. When readers are finished with Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization, they will be able to create a full 3D texture-mapped, lit video game for the PC with a software rasterizer they can write themselves. Moreover, they will understand the underlying principles of 3D graphics and be able to better understand and utilize 3D hardware today and in the future.
From the Back Cover
Today is the greatest time in history to be in the game business. We now have the technology to create games that look real! Sony's Playstation II, XBOX, and Game Cube are cool! But, all this technology isn't easy or trivial to understand - it takes really hard work and lots of Red Bull. The difficulty level of game programming has definitely been cranked up these days in relation to the skill set needed to make games. Andre LaMothe's follow-up book to Tricks of the Windows Game Programming Gurus is the one to read for the latest in 3D game programming. When readers are finished with Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization, they will be able to create a full 3D texture-mapped, lit video game for the PC with a software rasterizer they can write themselves. Moreover, they will understand the underlying principles of 3D graphics and be able to better understand and utilize 3D hardware today and in the future.
About the Author
Andri LaMothe has been involved in the computing industry and technology for more than a quarter century. He holds degrees in mathematics, computer science, and electrical engineering, and is one of the rare individuals that actually did work at NASA at the age of 20 doing research. His early teens and twenties were filled with consulting for numerous Silicon Valley companies, where he learned the realities of running a business and worked on his multidisciplinary background in fields such as telecommunications, virtual reality, robotics, compiler design, 3D engines, artificial intelligence, and other areas of computing and engineering. His company Xtreme Games LLC was one of the first and last true "indie" publishers with a soul. Later he founded the Xtreme Games Developer Conference (XGDC) to give game developers a low-cost alternative to the GDC. Lately he has been working on a number of projects, including eGamezone Networks, an online distribution system for games that's fair, fun, and has zero ads. Last but not least, he founded a new company, Nurve Networks LLC, to create handheld video game systems for value-minded consumers and hobbyists alike. Finally, he is the series editor for the world's largest game development series. On a personal level, he likes everything extreme, from weightlifting, motorcycles, jet skis, and hotrods to "railing" on his blades. He has even trained extensively with the Shamrock Submission Fighting Team under the tutelage of Crazy Bob Cook, Frank Shamrock, and Javier Mendez. You probably don't want to get in an argument with him over DirectX or OpenGL—right or wrong, he will probably make you say uncle!
Tricks of the 3D Game Programming Gurus: Advanced 3D Graphics and Rasterization FROM OUR EDITORS
The Barnes & Noble Review
This may be the most thorough, useful, sophisticated advanced guide to real-time 3D game programming ever. Just what youᄑd expect from Andrᄑ LaMothe.
Weᄑre talking about implementing 3D software rasterizers in code, not just writing to 3D hardware. Says LaMothe, ᄑA real game programmer can write a 3D engine from scratch with blood pouring out of his eyes, on fire, and with needles in his eardrums.ᄑ Master this stuff, and itᄑs almost trivial to nail new 3D APIs. Meantime, you can write games that run on older hardware, including ᄑvalue softwareᄑ games. (Makes it easier to break in.)
Youᄑll start by learning 3D game programming on a virtual computer, sparing you low-level Win32/DirectX details until youᄑre ready (thereᄑs plenty of DirectX later on). Then, itᄑs on to the math: trig, vectors, matrices, quaternions. Donᄑt worry if you missed this stuff in college. LaMothe will teach you, in his own inimitable style.
Youᄑll build a complete math engine, master 3D coordinate systems, data structures, and wireframe worlds. LaMothe then turns to rendering, from basic lighting and solids through texture mapping, clipping, depth buffering, and visibility. Heᄑs just getting started. There are 150-plus pages of advanced texturing techniques, from perspective-correct texturing and 1/z buffering to trilinear texture filtering. Thereᄑs extensive coverage of spatial partitioning and visual surface determination, which help you cull away parts of a scene, focusing processing on visible polygons. Last but not least: physics and optimization.
Be warned: Youᄑll need a solid grounding in C. A little C++ wouldnᄑt hurt, either. But if youᄑve got that, this book will help you create serious magic. Bill Camarda
Bill Camarda is a consultant, writer, and web/multimedia content developer. His 15 books include Special Edition Using Word 2000 and Upgrading & Fixing Networks for Dummies, Second Edition.
FROM THE PUBLISHER
Today is the greatest time in history to be in the game business. We now have the technology to create games that look real! Sony's Playstation II, XBOX, and Game Cube are cool! But, all this technology isn't easy or trivial to understand - it takes really hard work and lots of Red Bull. The difficulty level of game programming has definitely been cranked up these days in relation to the skill set needed to make games. Andre LaMothe's follow-up book to Tricks of the Windows Game Programming Gurus is the one to read for the latest in 3D game programming. When readers are finished with Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization, they will be able to create a full 3D texture-mapped, lit video game for the PC with a software rasterizer they can write themselves. Moreover, they will understand the underlying principles of 3D graphics and be able to better understand and utilize 3D hardware today and in the future.