
Although the repeated games used in the field of game theory are relatively trivial, they do allow for strategy analysis, comparison and optimization within a well-defined framework. This article reviews existing learning strategies like Q-learning and leader strategies like Godfather and Bully, extends the latter to improve on their weaknessess, and presents detailed tournament results.

To be able to see SIRDS images of moveable 3D objects (like those from the Magic Eye books), I developed an interactive and customizable SIRDS viewer, capable of generating rotatable SIRDS of 3D models at high frame rates. If you’re interested in how they work, how the viewer was implemented, or just want to try it out, read on!

CamBall is a virtual ball simulation that uses a cheap webcam, simple 2D physics, the OpenCV library and some creativity to augment a webcam’s images with a virtual ball you can grab and throw around in real-time. Read about the used computer vision and physics techniques, see the video, or simply try it out yourself!

Large flocks of birds are mesmerizing to look at. With this project, I tried to capture these collective patterns using large numbers of individual virtual birds, called boids, that think independently but act like one. Based on Craig Reynolds work, I implemented and extended his model to generate flocks of 1000+ boids in real-time. Learn how.

One way to simulate physics constraints and collisions is to use springs. It might not be the most stable solution for all applications, but it can be stable and fast enough for a lot of them. Like my (abstract looking) quad vehicle, for example, of which its traction and skidding behaviour are implicit consequences of the simulated springs in the soft-body tires.

Creating mobile real-time multiplayer racing games for GPRS/UMTS networks can be extremely difficult due to the network’s large latencies. Read the CGAMES 2005 paper “Behavioral Assumption-Based Prediction for High-Latency Hiding in Mobile Games” by me and R. Bidarra, and learn how position predictions and corrections can be used to cope with this problem.

Mobile devices don’t always come with native support for fractional or real numbers and matching math functions. During the development of Razor, I found myself in need of a small, fast and reliable math library and created FPMath, a 16.16 fixed point math library for the J2ME (Java) platform. This library has now been released and can be downloaded freely.