Game Coding Complete

Game Coding Complete

Paperback(Second Edition)



Mike McShaffry's first edition of Game Coding complete rapidly became one of the top-selling game programming books and was widely praised by readers around the world. The best description of the first edition comes from two Amazon reviewers; the first proclaiming, "I got the same feeling of enlightenment when reading this one as I did all those years ago when I read the classic book "Code Complete" and the second stating "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."

For Game Coding Complete, Second Edition, McShaffry returns with many more of his highly popular, shoot-from the hips war stories and expert game programming insight that only a real insider could provide. McShaffry uses his experience as a leading programmer for Origin Systems, Microsoft, and Ion Storm a division of Eidos, to illustrate real-world techniques and solutions, including examples from his recent work on the major game, Thief Deadly Shadows. Game Coding Complete, Second Edition takes programmers through the complete process of developing a professional quality game using hundreds of insider tricks and techniques developed and perfect by the author from over a decade of game development experience. It covers a range of topics that will appeal to the most discriminating programmers such as key "gotcha" issues that could trip up even veteran programmers. The new edition features expanded coverage of 3D programming, several new chapters on game interface design, game audio, game scripting, game engine technology, code optimization, production and scheduling, plus it now includes a CD-ROM packed with valuable source code and game development tools. The appendix offers solid advice on starting your own game company. The C++ language is used to explain specific programming concepts with added discussion of development with C# and Managed DirectX programming.

Product Details

ISBN-13: 9781932111910
Publisher: Paraglyph Press, Inc.
Publication date: 02/11/2005
Edition description: Second Edition
Pages: 928
Product dimensions: 7.10(w) x 9.14(h) x 2.20(d)

About the Author

Mike McShaffry, a.k.a. aMr. Mike,a started programming games as soon as he could tap a keyboard. After graduating from the University of Houston, he worked for Warren Spector and Richard Garriott, a.k.a. aLord British,a at Origin Systems on Martian Dreams, Ultima VII:The Black Gate, Ultima VIII: Pagan, Ultima IX: Ascension, and Ultima Online. Seven years later he formed his first company, Tornado Alley. Mike later accepted a position at Glass Eye Entertainment, working for his friend Monty Kerr, where he produced Microsoft Casino. Ten months later, Monty asked Mike and his newly assembled team to start their own company called Compulsive Development, which would work exclusively with Microsoft on casual casino and card games. Mike served as the Head of Studio, and together with the rest of the Compulsive folks, produced three more casual titles for Microsoft until August 2002. Compulsive was acquired by Glass Eye Entertainment to continue work on Glass Eyeas growing online casual games business. Mike was later recruited to start an Austin studio for Maryland-based Breakaway Games. Mike is currently self-employed, helping teams build a positive, creative and energetic environment so they can do what they do best - make great games.

Table of Contents

Chapter 1The Unique World of Game Programming1
The Good2
The Bad9
The Ugly13
It's All Worth It, Right?17
Chapter 2What's in a Game?19
Game Architecture20
Applying the Game Architecture22
Application Layer24
Game Logic29
Game View for the Human Player34
Game Views for AI Agents39
Networked Game Architecture40
Do I Have to Use DirectX?42
Other Bits and Pieces47
Chapter 3Coding Tidbits and Style That Saved My Butt49
Smart Design Practices50
Smart Pointers and Naked Pointers58
Using Memory Correctly63
Mike's Grab Bag of Useful Stuff76
Developing the Style That's Right for You90
Chapter 4Building Your Game91
A Little Motivation91
Creating a Project92
Source Code Repositories and Version Control100
Building the Game: A Black Art?108
Creating Build Scripts111
Multiple Projects and Shared Code115
Chapter 5Game Initialization119
Initialization 101120
Some C++ Initialization Pitfalls120
The Game's Application Layer126
Stick the Landing: A Nice Clean Exit148
Getting In and Getting Out156
Chapter 6Controlling the Main Loop159
Inside the Main Loop159
A Base Class for Game Logic181
Can I Make a Game Yet?183
Chapter 7Loading and Caching Game Data185
Game Resources: Formats and Storage Requirements186
Resource Files198
The Resource Cache212
World Design and Cache Prediction223
I'm Out of Cache227
Chapter 8Programming Input Devices229
Getting the Device State229
A Few Safety Tips235
Working with the Mouse (and Joystick)238
Working with a Game Controller244
Working with the Keyboard251
What, No Dance Pad?256
Chapter 9User Interface Programming259
The Human's Game View260
More Control Properties286
Some Final User Interface Tips287
Chapter 10Programming Sprites and Fonts289
The Art of 2D Drawing with DirectX289
2D Drawing Under DirectDraw296
2D Drawing in a 3D World with DirectX 9312
Graphics Files Formats337
Chapter 11Game Events and Scripting Languages341
Game Events342
Game Scripting Languages372
Chapter 12Game Audio385
How Sound Works385
Game Sound System Architecture391
Other Technical Hurdles424
Some Random Notes429
The Last Dance434
3D Graphics Pipeline435
Chapter 133D Basics435
3D Math 101436
Enough Math-Please Stop458
3D Graphics-It's Just the Beginning476
Chapter 143D Scenes477
C++ Math Classes477
Scene Graph Basics490
What's Missing?533
3D Engines That the Games Industry Uses534
Still Hungry?538
Chapter 15Collision and Simple Physics539
Mathematics for Physics Refresher540
Choosing a Physics SDK547
Object Properties549
Collision Hulls550
Using a Collision System556
Integrating a Physics SDK558
But Wait, There's So Much More581
Chapter 16Network Programming for Multiplayer Games583
How the Internet Works583
Making a Multiplayer Game with Sockets603
Gosh, If It's That Easy636
Chapter 17Special Consideration for Developing Windows Games637
What About Microsoft Foundation Classes (MFC)?639
What About C#?642
Windowed Mode and Full-Screen Mode643
Operating System Specific Stuff657
"Designed for Windows XP" Logo Program660
Chapter 18Debugging Your Game689
The Art of Handling Failure690
Debugging Basics692
Debugging Techniques707
Different Kinds of Bugs723
Parting Thoughts734
Chapter 19A Game of Teapot Wars!735
Game Actors737
Game Events740
The Game Logic745
The Game View for a Human Player756
The AI View and Listener770
The Rest Is Up to You774
Chapter 20The Art of Scheduling775
Good Schedules, Bad Schedules776
The Key to All Schedules: Milestones777
Things to Know Before Scheduling Begins790
Creating the Schedule796
Getting It Right809
Chapter 21Everything (You Hate) to Know About Testing811
Why Are Games Buggy?811
Test Plans814
Scheduling Testing825
Automated Testing826
The Bug Database835
Which Bugs Get Fixed?846
Statistical Analysis of Your Bug Database851
The Testing Team854
The Public Beta855
A Final Word857
Chapter 22Driving to the Finish859
Finishing Issues860
Dealing with Big Trouble869
The Light-It's Not a Train After All880

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews