Game Programming Algorithms and Techniques
Sanjay Madhav
Game Programming Algorithms and Techniques
Sanjay Madhav
- Producent: Addison Wesley Publishing Company
- Rok produkcji: 2013
- ISBN: 9780321940155
- Ilość stron: 352
- Oprawa: Miękka
Niedostępna
Opis: Game Programming Algorithms and Techniques - Sanjay Madhav
Game Programming Algorithms and Techniques is a detailed overview of many of the important algorithms and techniques used in video game programming today. Designed for programmers who are familiar with object-oriented programming and basic data structures, this book focuses on practical concepts that see actual use in the game industry. Sanjay Madhav takes a unique platform- and framework-agnostic approach that will help develop virtually any game, in any genre, with any language or framework. He presents the fundamental techniques for working with 2D and 3D graphics, physics, artificial intelligence, cameras, and much more. Each concept is illuminated with pseudocode that will be intuitive to any C#, Java, or C++ programmer, and has been refined and proven in Madhav's game programming courses at the University of Southern California. Review questions after each chapter help solidify the most important concepts before moving on. Madhav concludes with a detailed analysis of two complete games: a 2D iOS side-scroller (written in Objective-Cusing cocos2d) and a 3D PC/Mac/Linux tower defense game (written in C# using XNA/ MonoGame). These games illustrate many of the algorithms and techniques covered in the earlier chapters, and the full source code is available at gamealgorithms.net. Coverage includes * Game time management, speed control, and ensuring consistency on diverse hardware * Essential 2D graphics techniques for modern mobile gaming * Vectors, matrices, and linear algebra for 3D games * 3D graphics including coordinate spaces, lighting and shading, z-buffering, and quaternions * Handling today's wide array of digital and analog inputs * Sound systems including sound events, 3D audio, and digital signal processing * Fundamentals of game physics, including collision detection and numeric integration * Cameras: first-person, follow, spline, and more * Artificial intelligence: pathfinding, state-based behaviors, and strategy/planning * User interfaces including menu systems and heads-up displays * Scripting and text-based data files: when, how, and where to use them * Basics of networked games including protocols and network topologyPreface xv 1 Game Programming Overview 1 Evolution of Video Game Programming 2 The Game Loop 5 Time and Games 9 Game Objects 13 Summary 15 Review Questions 16 Additional References 16 2 2D Graphics 19 2D Rendering Foundations 20 Sprites 22 Scrolling 30 Tile Maps 35 Summary 39 Review Questions 39 Additional References 39 3 Linear Algebra for Games 41 Vectors 42 Matrices 58 Summary 62 Review Questions 62 Additional References 63 4 3D Graphics 65 Basics 66 Coordinate Spaces 67 Lighting and Shading 76 Visibility 85 World Transform, Revisited 88 Summary 91 Review Questions 92 Additional References 92 5 Input 93 Input Devices 94 Event-Based Input Systems 99 Mobile Input 105 Summary 108 Review Questions 108 Additional References 109 6 Sound 111 Basic Sound 112 3D Sound 115 Digital Signal Processing 119 Other Sound Topics 122 Summary 124 Review Questions 125 Additional References 125 7 Physics 127 Planes, Rays, and Line Segments 128 Collision Geometry 130 Collision Detection 134 Physics-Based Movement 148 Physics Middleware 153 Summary 154 Review Questions 154 Additional References 155 8 Cameras 157 Types of Cameras 158 Perspective Projections 161 Camera Implementations 164 Camera Support Algorithms 175 Summary 178 Review Questions 178 Additional References 178 9 Artificial Intelligence 179 "Real" AI versus Game AI 180 Pathfinding 180 State-Based Behaviors 192 Strategy and Planning 198 Summary 200 Review Questions 200 Additional References 202 10 User Interfaces 203 Menu Systems 204 HUD Elements 207 Other UI Considerations 217 Summary 221 Review Questions 222 Additional References 222 11 Scripting Languages and Data Formats 223 Scripting Languages 224 Implementing a Scripting Language 229 Data Formats 235 Case Study: UI Mods in World of Warcraft 239 Summary 241 Review Questions 241 Additional References 242 12 Networked Games 243 Protocols 244 Network Topology 250 Cheating 255 Summary 257 Review Questions 257 Additional References 258 13 Sample Game: Side-Scroller for iOS 259 Overview 260 Code Analysis 262 Exercises 267 Summary 268 14 Sample Game: Tower Defense for PC/Mac 269 Overview 270 Code Analysis 273 Exercises 284 Summary 285 A Answers to Review Questions 287 Chapter 1: Game Programming Overview 288 Chapter 2: 2D Graphics 289 Chapter 3: Linear Algebra for Games 290 Chapter 4: 3D Graphics 291 Chapter 5: Input 292 Chapter 6: Sound 294 Chapter 7: Physics 295 Chapter 8: Cameras 295 Chapter 9: Artificial Intelligence 296 Chapter 10: User Interfaces 298 Chapter 11: Scripting Languages and Data Formats 299 Chapter 12: Networked Games 300 B Useful Tools for Programmers 303 Debugger 304 Source Control 309 Diff and Merging Tools 312 Issue Tracking 313 Index 315
Szczegóły: Game Programming Algorithms and Techniques - Sanjay Madhav
Tytuł: Game Programming Algorithms and Techniques
Autor: Sanjay Madhav
Producent: Addison Wesley Publishing Company
ISBN: 9780321940155
Rok produkcji: 2013
Ilość stron: 352
Oprawa: Miękka
Waga: 0.65 kg