Game Coding Complete by ed. Mike McShaffry

Game Coding Complete by ed. Mike McShaffry
Third Edition

Course Technology, Cengage Learning | 2009 | ISBN: 1598636962 | 755 pages | PDF | 7 Mb
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.
Today, there are plenty of books out there that can teach you the typing part of programming. There are even some books that go a bit further and teach you what makes game coding different from coding a word processing program or a billing system for your local health care providers (or, as we used to call ‘em, ―doctors‖). But even now, there just aren‘t many books that combine hard-core game programming advice with equally hardcore development processes, debugging, and team-building information.
Table of Contents
Contributor Acknowledgments
About the Author
Welcome to the Third Edition
How This Book Is Organized
STL and Boost C++
Part I: Game Programming Fundamentals
Chapter 1. What Is Game Programming Really Like?
The Good
The Bad
The Ugly
It‘s All Worth It, Right?
Chapter 2. What’s in a Game?
Game Architecture
Applying the Game Architecture
Application Layer
Game Logic
Game View for the Human Player
Game Views for AI Agents
Networked Game Architecture
Do I Have to Use DirectX?
Other Bits and Pieces
Further Reading
Chapter 3. Coding Tidbits and Style That Will Save You
Smart Design Practices
Smart Pointers and Naked Pointers
Using Memory Correctly
Mike‘s Grab Bag of Useful Stuff
Developing the Style That‘s Right for You
Further Reading
Chapter 4. Building Your Game
A Little Motivation
Creating a Project
Source Code Repositories and Version Control
Building the Game: A Black Art?
Creating Build Scripts
Multiple Projects and Shared Code
Some Parting Advice
Part II: Get Your Game Running
Chapter 5. Game Initialization and Shutdown
Initialization 101
Some C++ Initialization Pitfalls
The Game‘s Application Layer
Stick the Landing: A Nice Clean Exit
Getting In and Getting Out
Chapter 6. Controlling the Main Loop
Inside the Main Loop
A Base Class for Game Actors and Game Logic
Can I Make a Game Yet?
Chapter 7. Loading and Caching Game Data
Game Resources: Formats and Storage Requirements
Resource Files
The Resource Cache
I‘m Out of Cache
Chapter 8. Programming Input Devices
Getting the Device State
Using DirectInput
A Few Safety Tips
Working with the Mouse (and Joystick)
Working with a Game Controller
Working with the Keyboard
What, No Dance Pad?
Chapter 9. User Interface Programming
The Human‘s Game View
A WASD Movement Controller
Screen Elements
A Custom MessageBox Dialog
Modal Dialog Boxes
Control Identification
Hit Testing and Focus Order
Control State
More Control Properties
Some Final User Interface Tips
Part III: Core Game Technologies
Chapter 10. Game Event Management
Game Events
What Game Events Are Important?
Distinguishing Events from Processes
Further Reading
Chapter 11. Scripting with Lua by James Clarendon
What Is Scripting?
Common Scripting Paradigms
Introducing Lua
Getting Started with a Lua Wrapper—LuaPlus
Mind the Gap!
Wanna Buy a Bridge?
I‘m Totally Wired
Do You Hear What I Hear?
Let‘s Get OOP-Able!
Debugging Script
Introducing Decoda
Famous Last Words: ―An Exercise for the Reader‖
Chapter 12. Game Audio
How Sound Works
Game Sound System Architecture
Other Technical Hurdles
Some Random Notes
The Last Dance
Chapter 13. 3D Basics
3D Graphics Pipeline
3D Math 101
C++ Math Classes
Enough Math—Please Stop
3D Graphics—It‘s Just the Beginning
Chapter 14. 3D Scenes
The Plane Class
The Frustum Class
Scene Graph Basics
Special Scene Graph Nodes
What About Shaders?
What‘s Missing?
Still Hungry?
Further Reading
Chapter 15. Collision and Simple Physics
Mathematics for Physics Refresher
Choosing a Physics SDK
Object Properties
Collision Hulls
Using a Collision System
Integrating a Physics SDK
But Wait, There‘s So Much More
Chapter 16. Network Programming Primer
How the Internet Works
Sockets API
Making a Multiplayer Game with Sockets
Core Client-Side Classes
Core Server-Side Classes
Wiring Sockets into the Event System
Gosh, if It‘s That Easy
Part IV: Advanced Topics and Bringing IT All Together
Chapter 17. An Introduction to Game AI by David ―Rez‖ Graham
Intro to AI concepts
Path Finding
Simple Decision Making
Advanced Decision Making
Types of Game AI
Further Reading
Chapter 18. Introduction to Multiprogramming
What Multiprogramming Does
Creating Threads
Process Synchronization
Interesting Threading Problems
Thread Safety
Multithreading Classes
Background Decompression of a ZIP File
Further Work
About the Hardware
About the Future
Chapter 19. A Game of Teapot Wars!
Game Actors
Game Events
The Application Layer
The Game Logic
The Game View for a Human Player
The AI View and Listener
More Teapot Wars, if You Are Willing
Chapter 20. A Simple Game Editor in C# by Quoc Tran
What Should a Level Editor Do?
The Editor Architecture
Creating the DLL
The C# Editor Application
Getting Information About Actors in the Level
Creating, Changing, and Removing Actors
Saving and Loading Levels
Future Work
Special Thanks
Further Reading
Chapter 21. Debugging Your Game
The Art of Handling Failure
Debugging Basics
Debugging Techniques
Different Kinds of Bugs
Parting Thoughts
Further Reading
Chapter 22. Driving to the Finish
Finishing Issues
Dealing with Big Trouble
The Light—It‘s Not a Train After All
with TOC BookMarkLinks