Mallard Masacer


Introduction:
Mallard Masacer is a 3d omage to the original duck hunt that came out for the NES so many years ago. This program uses "boid flocking" behavoiral simulation for the duck's AI. This allows the ducks to react to their envoirment and each other in a dynamic and realistic fassion. This game is designed with no consideration of good hunting practices or "fairness". The user is given a gatteling gun with unlimited ammuntion and put in a world full of targets. While not too challenging it brings a certain satisfaction especially after finding bird droppings on your nice clean car. Mallard Masacer is written by Wilson Saunders in Visual C++. All 3d and 2d art is also the product of Wilson Saunders. The game will be released as open source upon its completion. A small portion of code was coppied from the NeHe.com tutorials. The coppied code is used to load textures and run the OpenGL in full screen.

Controls:
'w' move forward
'a' move left
's' move backward
'd' move right
'r' move up
'f' move down
Mouse
X axis
look left/right
Mouse
Y axis
look up/down
'i' set to normal mouse Y axis
'o' set to inverted mouse Y axis (default)
F1 go to first person view
F2 go to duck chase camera view
ESC quit program


Implimented Concepts:

Boid Flocking AI:
Used to give the ducks an interesting flight pattern. Each duck examines the area arround it. If there are other ducks that are too close the duck alters it's direction to fly away from the average locaiton of the neighboring ducks. If there are other ducks that are too far away the duck alters it's course to fly towards the other ducks. If the distance is just right the duck sets it's course to fly in about the same direction as the other ducks. More on boid flocking can be found at:

3d Models with UV Textureing:
A special 3d modeling tool was created for this program. The duck models were created in that program and saved into text files. These textfiles are then read in at program start up to crete the 3d duck models seen in the program. Each pannel of the model has a 'u' and 'v' value associated with it. These values are used to map parts of a 2d texture file on to the appropriate parts of the duck.

POV interpolation
Smooth transition between first person point of view to duck chase point of view is accomplished by weighted averages between two POV locaiton values.

Line to Triangle Collision Detection:
Used to determine if a bullet hits an object like a duck or the ground. By using the dot product and a great deal of tringonomitry this program can detect where in a 3d line intersects a 3d plane.

Grid Based Collision Detection:
Used to avoid slow run time calculaions for Collision Detection all ducks regester their location on a 2d grid. This way a duck need only check its grid location and the ajoining grid locations to find if it is about run into another duck.

Tiled Ground:
In order to give the impression of a realistic landscape the ground is composed of a grass and dirt texture. The textures repeat its self such that no visible break from one tile to another can be seen. In addion Linking textures allow for dirt to flow into grass without causing visual breaks.

Abstract Ground Texture:
Rendering every patch of ground in the world would cause the game to slow to an unplayable speed. Thus only the ground tiles that are close to the Point of view are renderd in full detail. The rest are renderd in 1/8 detail, that is for every 3x3 section of tiles only one tile is draw. Special linking tiles are rendered to keep the ground continous.

Lumpy Ground:
To give the impression of a natural landscape each tile corner is assigned a height from a file. A special level deigner tool was created to assist in the creation of this file. Also the angle of the pannel adjusts the shade of that pannel to give the impression of light and shadow on the landscape.
Bouncy Ducks:
When a dead duck hits the ground it bounces in a direction based on the ganle of the ground it hit. Also the rebound velocity is dampened to accuratly reflect realworld physics.

Concepts that will be added:
Forward kinimatic model animation
Choice of weapons
A huting dog that will laugh at the user
Sound
A scoring system
Female duck texture
More camera views
Dowload Mallard Masacre

[an error occurred while processing this directive]