×

Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

Game Programming Algorithms and Techniques: A Platform-Agnostic Approach / Edition 1
     

Game Programming Algorithms and Techniques: A Platform-Agnostic Approach / Edition 1

by Sanjay Madhav
 

See All Formats & Editions

ISBN-10: 0321940156

ISBN-13: 9780321940155

Pub. Date: 01/02/2014

Publisher: Addison-Wesley

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

Overview

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

Product Details

ISBN-13:
9780321940155
Publisher:
Addison-Wesley
Publication date:
01/02/2014
Edition description:
New Edition
Pages:
352
Sales rank:
866,889
Product dimensions:
6.90(w) x 8.90(h) x 0.80(d)

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

Customer Reviews

Average Review:

Post to your social network

     

Most Helpful Customer Reviews

See all customer reviews