Book Image

Game Physics Cookbook

By : Gabor Szauer
Book Image

Game Physics Cookbook

By: Gabor Szauer

Overview of this book

Physics is really important for game programmers who want to add realism and functionality to their games. Collision detection in particular is a problem that affects all game developers, regardless of the platform, engine, or toolkit they use. This book will teach you the concepts and formulas behind collision detection. You will also be taught how to build a simple physics engine, where Rigid Body physics is the main focus, and learn about intersection algorithms for primitive shapes. You’ll begin by building a strong foundation in mathematics that will be used throughout the book. We’ll guide you through implementing 2D and 3D primitives and show you how to perform effective collision tests for them. We then pivot to one of the harder areas of game development—collision detection and resolution. Further on, you will learn what a Physics engine is, how to set up a game window, and how to implement rendering. We’ll explore advanced physics topics such as constraint solving. You’ll also find out how to implement a rudimentary physics engine, which you can use to build an Angry Birds type of game or a more advanced game. By the end of the book, you will have implemented all primitive and some advanced collision tests, and you will be able to read on geometry and linear Algebra formulas to take forward to your own games!
Table of Contents (27 chapters)
Game Physics Cookbook
Credits
About the Author
Acknowledgements
About the Reviewer
Acknowledgements
www.PacktPub.com
Customer Feedback
Preface
Index

Operations on the scene


We now have a Scene object that keeps track of models for us. This means we no longer have to perform operations such as raycasts on individual models. Rather, we can perform a raycast against the entire scene. There are two operations that we can perform on a scene to speed up collision testing. They are raycasting and querying the scene. We covered ray casting in Chapter 10, 3D Line Intersections.

When we query the scene we ask for a small subset of objects that potentially occupy the provided space. This is called broad-phase collision. For example, to check for collision against a player we don't have to compare the player to all objects in the world. We only have to compare the player against a small subset of objects near the player. The Query function takes a space and returns all objects that intersect the space.

Getting ready

In this section, we will implement three functions. First, the Raycast function will cast a ray into the scene and return the closest...