Game Programming Algorithms and Techniques: A Platform-Agnostic Approach : 9780321940155

Game Programming Algorithms and Techniques: A Platform-Agnostic Approach

Published by
Pearson Higher Ed USA
Out of stock
Title type
Title type
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

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 topology
Table of contents
  • 1 Game Programming Overview 
  • 2 2D Graphics
  • 3 Linear Algebra for Games
  • 4 3D Graphics
  • 5 Input 
  • 6 Sound  
  • 7 Physics  
  • 8 Cameras
  • 9 Artificial Intelligence   
  • 10 User Interfaces
  • 11 Scripting Languages and Data Formats
  • 12 Networked Games
  • 13 Sample Game: Side-Scroller for iOS
  • 14 Sample Game: Tower Defense for PC/Mac 
  • A Answers to Review Questions 
  • B Useful Tools for Programmers 
  • Index
Features & benefits
  • The advantages of this book are that it covers all the basics, and it won’t date quickly when the next version of DirectX/Unity/OpenGL ES ships.
  • Not many books cover both real-world applications and academic needs in one. The book is carefully designed to straddle the line between academic and real-world.
  • The author has identified a gaping hole in the available curriculum, with the general approach and proposed use of pseudo-code.Teachers use different tools for teaching these areas (Corona SDK, Unity 3D), but the proposed book can still be of use to them and their students.
  • There is coverage of both 2D and 3D game programming. 3D game programmers will benefit greatly from the coverage of: rendering, physics, AI, cameras, etc.
  • The review questions at the end of each chapter will help the reader confirm they understand the concepts before moving on.
  • Ancillaries include: source code listings for the full-game implementations in Section III of the book.
  • Instructor resources: one Powerpoint presentation per chapter in Sections I and II, as an aid for faculty who wish to adopt the book for their course. Also, lesson plans for a sample course developed around the material in the book.
Author biography

Sanjay Madhav is a lecturer at the University of Southern California, where he teaches several courses about and related to video game programming. Prior to joining USC full time, he worked as a programmer at several video game developers, including Electronic Arts, Neversoft, and Pandemic Studios. Although he has experience programming a wide range of systems, his primary interest is in gameplay mechanics. Some of his credited games include Medal of Honor: Pacific Assault, Tony Hawk’s Project 8 , Lord of the Rings: Conquest , and The Saboteur .


In 2008, Sanjay began teaching part-time at USC while still working full time in the game industry. After Pandemic Studios was shuttered at the end of 2009, he decided to refocus his efforts on teaching up-and-coming game programmers. His flagship course is an undergraduate-level game programming course that he has taught for more than ten consecutive semesters.

Student supplements
Sample Pages