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.
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
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
