GDC Tuesday Morning

It began with a session that I wasn’t planning on going to, but because it was brought from the end of the day to the beginning of the day I ended up in it anyway. That turned out to be a good thing because it was much better than I thought it would be.

The topic was the speakers personal quest to create a physically based virtual version of the game Go. Go is an ancient and incredibly complex board game. The talk centred around creating a mathematical model for the playing pieces in the game (called stones) and then building a model that could perform physics on those stones.Concepts we introduced one by one, linear motion, collision detection, rotation, frictione etc. The session was quite lightweight, but it was a good way to start the day. If you want to know more about this project go to http://www.gafferongames.com

Next came an indepth look at collision detection using the separating axis test. This is a test which detects collisions between convex solids by trying to determine if there is any axis which separates the two objects. That basically means that if you can fit a cigarette paper between them then they’re not colliding. A series of familiar concepts were covered, such as Minkowski sum and Minkowski difference, which can be used to two convex objects to a single convex object and a point.

If the point is inside the convex object then we’ve had a collision. The next question is where did that collision happen. We need to know where the collision happened because we want to push one object back out of the other object before we calculate an appropriate response.

So far so good, but next I learnt something new and pretty cool using something called a Gauss Map. The technique reduced the all the planes on the convex object to points on a sphere (in the direction of the normal vectors). Edges of the object are then represented as arcs on the sphere. The outcome is that collisions can only occur on edges where the arcs cross, which drastically reduces the number of canditates for collision points.

The last talk of the morning was an education talk about teaching a stand alone games class. It offered some nice ideas and practices that could be added to the Games Development Studies module.