Portfolio Item: Special Techniques for Graphics and Animation (MSc Games Software Development)

This module is designed to look at advanced topics in graphics and animation with a particular focus on either ray tracing, shadow mapping, hierarchical character motion and flocking. The assignment for this module is to research and report on one of these topics. I chose flocking as I have an interest in Artificial Intelligence and saw this as an opportunity to see how it can be used in a gaming scenario.

By using Steven Woodcock's examples in Game Programming Gems (1 and 2) which are based on Craig Reynolds' boids my intention was to manipulate and observe different flocking behaviours on the fly as it were and see if any conclusions can be drawn from it. I decided to use DirectX for the graphics framework for this project and based my applications from Steven Woodcock's example in Game Programming Gems 1 (Flocking: A Simple Technique for Simulating Group Behavior).In the end I wrote two applications: one to observe the boids behaviour that was fully customizable and another to represent a predator-prey situation but fixed in terms of the rules governing the world.  The rules I could manipulate included the following:

  • Alignment
  • Cohesion
  • Separation
  • Avoidance
  • Cruising
  • Pitch control
  • the number of flocks present
  • warping or bounding box world

Results

You can download the full report but below is a quick summary of my discoveries:

  1. I was succesfull in implementing both Craig Reynolds' and Steven Woodcocks models.
  2. I was able to introduce obstacles and the predator-prey situation successfully.
  3. I discovered two new flocking behaviours (swarms and schools) simply by trying out different combinations of rules
In my conclusions I proposed a series of improvements and possible research topics that could be made to create additional realistic behaviours. You can also see a video of my results.

Images

Boid Original Version Original (Customisable)