(NOTE:
Each chapter concludes with a Summary.)
Introduction. I. WINDOWS PROGRAMMING FOUNDATIONS.
1. Journey into the Abyss. A Little History. Designing Games. Types of Games. Brainstorming on Ideas. The Design Document and Storyboards. Making the Game Fun. The Components of a Game. General Game Programming Guidelines. Using Tools. Setting Up to Get Down-Using the Compiler. An Example: FreakOut.
2. The Windows Programming Model. The Genesis of Windows. Multitasking and Multithreading. Programming the Microsoft Way: Hungarian Notation. The World's Simplest Windows Program. Real-World Windows Applications (Without Puck). The Windows Class. Registering the Windows Class. Creating the Window. The Event Handler. The Main Event Loop. Making a Real-Time Event Loop. Opening More Windows.
3. Advanced Windows Programming. Using Resources. Working with Menus. Introduction to GDI (Graphics Device Interface). Handling Important Events. Sending Messages Yourself.
4. Windows GDI, Controls, and Last-Minute Gift Ideas. Advanced GDI Graphics. Points, Lines, Polygons, and Circles. More on Text and Fonts. Timing Is Everything. Playing with Controls. Getting Information. The T3D Game Console.
II. DIRECTX AND 2D FUNDAMENTALS.
5. DirectX Fundamentals and the Dreaded COM. DirectX Primer. COM: Is It the Work of Microsoft...or Demons? Working with DirectX COM Objects. The Future of COM.
6. First Contact: DirectDraw. The Interfaces of DirectDraw. Creating a DirectDraw Object. Cooperating with Windows. Getting into the Mode of Things. The Subtleties of Color. Building a Display Surface.
7. Advanced DirectDraw and Bitmapped Graphics. Working with High-Color Modes. Double Buffering. Surface Dynamics. Page Flipping. Using the Blitter. Clipper Fundamentals. Working with Bitmaps. Offscreen Surfaces. Bitmap Rotation and Scaling. Discrete Sampling Theory. Color Effects. Manual Color Transforms and Lookup Tables. The New DirectX Color and Gamma Controls Interface. Mixing GDI and DirectX. Getting the Lowdown on DirectDraw. Using DirectDraw in Windowed Modes.
8. Vector Rasterization and 2D Transformations. Drawing Lines. Basic 2D Clipping. Wireframe Polygons. Transformations in the 2D Plane. Introduction to Matrices. Translation. Scaling. Rotation. Solid Filled Polygons. Collision Detection with Polygons. More on Timing and Synchronization. Scrolling and Panning. Fake 3D Isometric Engines. The T3DLIB1 Library. The BOB (Blitter Object) Engine.
9. Uplinking with DirectInput and Force Feedback. The Input Loop Revisited. DirectInput Overture. Going Deeper with Force Feedback. Writing a Generalized Input System: T3DLIB2.CPP.
10. Sounding Off with DirectSound and DirectMusic. Sound Programming on the PC. And Then There Was Sound.... Digital Versus MIDI-Sounds Great, Less Filling. Sound Hardware. Digital Recording: Tools and Techniques. DirectSound on the Mic. Starting Up DirectSound. Primary and Secondary Sound Buffers. Rendering Sounds. Making DirectSound Talk Back. Reading Sounds from Disk. DirectMusic: The Great Experiment. DirectMusic Architecture. Starting Up DirectMusic. Loading a MIDI Segment. Manipulating MIDI Segments. The T3DLIB3 Sound and Music Library.
III. HARDCORE GAME PROGRAMMING.
11. Algorithms, Data Structures, Memory Management, and Multithreading. Data Structures. Algorithmic Analysis. Recursion. Trees. Optimization Theory. Making Demos. Strategies for Saving the Game. Implementing Multiple Players. Multithreaded Programming Techniques.
12. Making Silicon Think with Artificial Intelligence. Artificial Intelligence Primer. Deterministic AI Algorithms. Patterns and Basic Control Scripting. Modeling Behavioral State Systems. Modeling Memory and Learning with Software. Planning and Decision Trees. Pathfinding. Advanced AI Scripting. Artificial Neural Networks. Genetic Algorithms. Fuzzy Logic. Building Real AI for Games.
13. Playing God: Basic Physics Modeling. Fundamental Laws of Physics. The Physics of Linear Momentum: Conservation and Transfer. Modeling Gravity Effects. The Evil Head of Friction. Basic Ad Hoc Collision Response. Real 2D Object-to-Object Collision Response (Advanced). Resolving the n-t Coordinate System. Simple Kinematics. Particle Systems. Playing God: Constructing Physics Models for Games.
14. The Text Generation. What Is a Text Game? How Do Text Games Work? Getting Input from the Outside World. Language Analysis and Parsing. Putting All the Pieces Together. Implementing Sight, Sound, and Smell. Making It Real-Time. Error Handling. Creeping Around with Shadow Land. The Language of Shadow Land. Building and Playing Shadow Land.
15. Putting It All Together: You Got Game! The Initial Design of
Outpost. The Tools Used to Write the Game. The Game Universe: Scrolling in Space. The Player's Ship: The Wraith. The Asteroid Field. The Enemies. The Power-Ups. The HUDS. The Particle System. Playing the Game. Compiling
Outpost. Epilogue.
IV. APPENDIXES.
Appendix A. What's on the CD-ROMs. Appendix B. Installing DirectX and Using the C/C++ Compiler. Using the C/C++ Compiler.
Appendix C. Math and Trigonometry Review. Trigonometry. Vectors.
Appendix D. C++ Primer. What Is C++? The Minimum You Need to Know About C++. New Types, Keywords, and Conventions. Memory Management. Stream I/O. Classes. The Scope Resolution Operator. Function and Operator Overloading.
Appendix E. Game Programming Resources. Game Programming Sites. Download Points. 2D/3D Engines. Game Programming Books. Microsoft DirectX Multimedia Exposition. Usenet Newsgroups. Keeping Up with the Industry: Blues News. Game Development Magazines. Game Web Site Developers. Xtreme Games LLC.
Appendix F. ASCII Tables . 1001 Index.