Final
Deliverable Report
Everything pretty much was completed as expected, in addition to some other cool looking features. OpenGL is an amazing API and is a lot of fun to work with. It has tons of different features while still allowing flexibility if desired. Writing the code in C++ with logical class objects (such as Boid, Terrain or Renderer) made the project easier to manage. It also made sharing the code among partners easier.
Although not initially expected, shadows were added to the final deliverable. They have a few flaws with their level of depth, and they do not properly scale in size as birds fly closer or further away. However, the still look pretty neat even if they aren't quite realistic.
The bird AI came out pretty good. I was scared that they would be completely stupid and unmanagable, but that wasn't the case. They use standard Boids AI (cohesion, alignment, separation) while gently flying towards a random mappoint location. When a bird reaches that location, they pick a new mappoint and fly there.
The automatic bird-following viewpoint is pretty neat. It gets the average direction that all of the birds are currently looking, and then steps back a little bit. This lets you see the flock behavior as a single unit.
We never ended up adding clouds. They just never seemed to excite us much, and fog looks better anyways.
If we had more time to work on this project, there's some other fun things we could have added. I was interested in making birds blow up or dive-bomb or fly loops, but it proved to be a little more complicated than initially expected. The water is a little flat looking, and adding true 3D waves would be much-needed. Also, more research into fractal terrain generation methods would yield some more interesting landscapes. Optimizing terrain generation more would allow for a finer terrain mesh.
That's it... Enjoy!