Author: Duane Irvin
Instructor: Zoë Wood
Course: CPE 471
University: California Polytechnic State University, San Luis Obispo, USA
Bird Haressment is a graphical implementation of boids, using OpenGL and C++. It simulates the moving patterns of a flock of birds based on the three rules: Seperation, Cohesion and Alignment. A bullet can be shot towards the birds, wheras they will avoid the bullet and break their flying pattern.
Clone the repository and cd into it:
git clone https://github.com/irvin93d/BirdHaressment.git
cd BirdHaressment
Create and cd into build folder:
mkdir build
cd build
Compile project:
cmake ..
make -j4
Run program:
./program ../resources
Note that GLM, GLFW and and GLEW variables must be set up for program to run.
- W/S - Move forward/backwar
- A/D - Strafe left/right
- E/Q - Fly up/down
- LMouse - Shoot
- P - Stop/Run birds
- ESC - Quit
- Birds shall be built on hierarchical modeling.
- Birds shall move within their own model, such as having wing movement.
- Birds shall use boids to create their moving patterns in a somewhat realistic way.
- Birds shall fly in their own pointing direction, i.e. birds shall not strafe or fly backwards.
- There shall be some way to interrupt the birds’ flying path.
- A sun shall represent the light source.
- Acceleration properties shall be implemented for the moving birds to give them a more realistic speed differentiation.
- Environment shall contain hierarchical modelled trees in different sizes.
- Shadows shall exist from all objects, correctly adjusted to sun.
- The sun shall move while time passes by.
- Sky shall be gradient in relationship to the sky.
- Trees shall be growing using fractals as time passes by.
- Terrain generated by fractals should exist, preferably different on every program start.
- Implement markov chains to give birds and/or different probabilities of their behavior, such as new moving direction for birds and different ways of growing for trees.
- Birds shall “eat” other birds when colliding, causes them to grow. New birds shall appear to keep the number somewhat consistent.
- Blood shall be spilled from cannibalism.
- Boids example in 2-dimensions, a lot of this source code have been rewritten to C++: Flocking - Processing.org