FIT3094 : AI for Gaming
Assignment 2: Fly Stop
cooperative, physically-based non-player character controlSemester 1, 2009
Assignment specification changed: from 3D to 2D and extra bonus section added for advanced students (28 April).Task: Design and implement physically-based, cooperative controllers for mobile non-player characters in the context of a simple computer game, Fly Stop.
Non-player characters: a swarm of flies, Arf the dog.
Player character: a cat Fuzz
Environment: The game is played in a large 2D room. Squeak has moved out of the house which is now infested by a swarm of teasing flies that love to bite Fuzz's tail.
Arf and Fuzz still live inside the room. They still don't get along very well. Fuzz must try to avoid Arf who enjoys chasing her around the room, threatening to lick her face. The swarm of flies is an easy target for Fuzz... as long as she is facing them and they fly low enough for her to catch them. If they approach from behind she will be bitten on the tail. If she faces the flies head on and they approach low she can knock one or two of them from the air.
Aim: The player must control Fuzz's movements to catch the flies, avoid being bitten on the tail by them and avoid being licked in the face by Arf.
Specification:
- Complete the design of this 2D game so that it will be fun to play (5%)
- Implement this game using C++, and OpenGL/GLUT to run on a Unix-based platform*:
- Implement physically-based motion for Arf. Combine it with the assignment 1 controller to catch Fuzz (30%)
- Implement physically-based motion for Fuzz acting under player control (10%)
- Implement a physically-based flocking algorithm for the flies that allows them to approach Fuzz from behind but flee when they sense that she is moving towards them. (50%)
- Allow Fuzz to knock a fly or two out of the air if she catches them head on (5%)
- Advanced (optional) : Add a few appropriate pieces of furniture to the room to act as obstacles for Fuzz, Arf and the flies.
Consult the assignment submission details for information on how to complete you work.
*Assignments that do not employ OpenGL/ GLUT or build and run correctly under UNIX will receive a mark of zero!