Home > Store

Game Programming Algorithms and Techniques: A Platform-Agnostic Approach, Rough Cuts

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Description

  • Copyright 2014
  • Dimensions: 7" x 9"
  • Pages: 352
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-13-346325-7
  • ISBN-13: 978-0-13-346325-5

This is the Rough Cut version of the printed book.

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 topology

Sample Content

Table of Contents

Preface     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&n

Updates

Submit Errata

More Information