I had been playing the Ultima series of games by Richard Garriott since I was in high school, and I was a die-hard fan. Every game he published, I played all the way through, from Ultima I on the Apple ][ to Ultima V on the IBM PC. Ultima VI came out right as I graduated from college, and I noticed that the contact information for Origin Systems was in Austin, Texas. I was living in Houston at the time, and my wife and I were ready for a change. On a whim, I sent my resume and a letter to Richard Garriott. Weeks went by. I heard nothing.
I finally called Origin and asked the receptionist about it. When she found out that I‘d sent my resume to Richard, she laughed and said that was the last thing I should have done. She gave me the name of Dallas Snell, Origin‘s Vice President of Product Development. I sent him my resume via Federal Express and hoped for the best. I got a call two days later, and Dallas asked me how soon I could get to Austin for an interview. I asked him if tomorrow was too soon! He told me he‘d see me for the interview at 2 p.m. I was terrified. I wore a tie, but my wife smartly told me to take it off before I entered the building. It was a good thing because Dallas was dressed in shorts, flip-flops, and a Hawaiian shirt.
I didn‘t have a shred of game programming experience, and during my interview I was asked by a panel of Origin upper crust how I knew I could cut it at Origin. I looked around the table and saw the likes of Richard Garriott, aka Lord British, Warren Spector, Chris Roberts of Wing Commander fame, and six other folks. I tried not to panic. After all, I didn‘t know if I could cut it, did I? If I‘d never actually programmed a real game before, I couldn‘t stand before industry luminaries and just be arrogant.
Instead, I came right out and told them that I didn‘t know if I could cut it. I told them that programming games was a dream I had since I could reach up and tap a keyboard. I promised them that if they hired me, and I sucked, that I‘d leave Origin and not return until I earned my place there. I wanted to be a game programmer, and I‘d do anything to make that dream come true. I guess they liked my answer because I got a job offer the following Monday. That was October, 1990.
I‘ve spent the following years doing some programming but also some project management. I‘ve worked on fantasy role-playing games, MMO‘s, kid‘s games, casual games, action stealth games, military training simulations, and platformers. I‘ve worked on the PC, Xbox, and the Wii.
The first edition of this book was published in the summer of 2003, just as I was making some big transitions of my own. The first edition gave me a chance to stand back and show programmers what really goes on in the world of game development. Writing the book was a challenge but the rewards were many. I heard from programmers all around the world who enjoyed the book and found the stories, insight, and programming tips to be helpful. The second edition was almost a complete rewrite. The book went from around 700 pages to 1,110, and was more popular than the first edition.
As big as the second edition was, it didn‘t cover some really important topics, such as AI, multiprogramming, working with scripting languages like Lua, and how to write C# tools like your level editor. In 2008, Charles River and I and four of my friends and colleagues agreed to tackle the third edition.
What you hold in your hands is the result.
Welcome to "Game Coding Complete, Third Edition," the newest edition of the essential, hands-on guide to developing commercial-quality games. Written by a veteran game programmer, the book examines the entire game development process and all the unique challenges associated with creating a game. An excellent introduction to game architecture, you'll explore all the major subsystems of modern game engines and learn professional techniques used in actual games. This third edition features expanded content and coverage of the latest and most exciting new game programming techniques including AI, multiprogramming, working with scripting languages such as Lua, and writing C# tools like your level editor. All the code and examples presented have been tested and used in commercial video games, and the book is full of invaluable best practices, professional tips and tricks, and cautionary advice.