DES311 #1: Fishy Business

Hello, I’m James and when grow I up I want to be a mechanics and gameplay designer. During my time at uni I’ve had the chance to take on a design role in a lot of cool projects – potential recruiters may I divert your attention to my portfolio. Of course mechanics design also requires a decent amount of programming ability, so this semester I’m taking on a project that will hopefully let me develop these skills.

Surviving Mars screenshot

If I were ever to rank my favourite games of all time, near the very top would no doubt be the simulators Tropico 4, Rimworld and Surviving Mars. I find simulations of people, cities and nature absolutely fascinating, because no matter how much I understand how they are programmed I always impart some emotional motivation on their actions. And so I want to programme a simulation of my own. Something complex enough that cool emergent behaviours develop but simple enough to build in a semester.

Seemingly complex but relatively simple. This, for whatever reason, reminded me of the beautiful patterns of flocking animals like the murmuration’s of starlings or bait balls of sardines. They may seem impossible without some sort of telekinetic powers or gestalt consciousness but are in reality quite simple. Each member of the flock or school simply has to follow three rules, move to avoid bumping into other members, try and follow other members to again minimise bumping and then try and get to the centre of the group to be more protected. These rules are the foundation of swarm intelligence as described by Craig Reynolds.

School of sardines in Finding Nemo

And just like that I had an idea. I’m going to simulate a school of fish that will follow these rules. I may try and gamify this simulation with the addition of more complex behaviours like obstacle avoidance or goal seeking and make it more visually interesting with animations and visuals, but the primary goal is the simulation. Thus I’ve broken the project goals down like this:

Must Contain

  • 2D simulation of fish
  • The fish in the simulation should follow Reynolds three rules of flock behaviour: separation, alignment, and cohesion.

Should Contain

  • Basic visuals
  • Basic sound
  • Goal seeking
  • Obstacle avoidance

Could Contain

  • Pretty visuals with animation
  • Simulation is in 3D

Over the course of the coming weeks I will aim to keep this blog updated with regular updates on the project and how it comes along. But for now I’m signing off and keepin’ it reel… sorry, I spent ten minutes thinking of that pun.