Animal Race
Interactive 3D-Animation is a main field of study at the University of Ulm.

Making Of

Gametest-Movie (21 MB)
People at Work

Introduction

[Pic of people] Animal Race is the result of the Interactive 3D-Animation course from summer term 04 to summer term 05. The first half of the 1.5 years 4 hours a week were spent on learning the necessary techniques for game developement like modelling, animating, skinning, OpenGL usage and so on.

[Pic ant rts] Then a phase of brainstorming and concepting followed: severeal interesting game ideas were developed and discussed. Finally we decided on a very simple game that could be finished in reasonable time. More complex ideas like an action-real-time-strategy game with insects or an soccer-like game would probably be more fun to play but also much more difficult to finish.

[Pic of people] In spring 05 the active work on the project started. Officially at least 4 hours a week should be spent on this, but all of us put a lot more work into it. Some nearly spent their full time on it while others had to attend their chosen lectures and got into full work in summer break. The team of 14 students was split into artists and programmers. Both groups were about the same size, a few of us chose to help out in both groups.

Phase 1

[Pic with different steps] While the programmers worked on the basics of the ONEngine, the artists started their work on the characters and random props.
So ... how to make an animated game character ?
The first step is a sketch. Then you use this sketch to get your digital 3D-model done. Add a skeleton, bind it and animate it. Paint a texture and talk to your programmers to get an appropriate material shader implemented. Export all data to the right file format.

[Pic with logos] Meanwhile ... The programmers decided to use the G3D, ODE, AngelScript and Animadead libraries as the base for the ONEngine. G3D because it provides a nice set on basic functionality, ODE for free physics, AngelScript for game play scripting and Animadead for skeletal animation because of its small amount of source code. Animadead was very young and we ended up rewriting most routines but at least it was a starting point.
[Pic of plan] Apart from simple scene management functionality and the integration of the chosen libraries a basic GUI framework and an external level editor were planned. Unfortunately the team lacked an appointed software engineer to continously plan and control the structure of the engine and thus some tasks were solved in quite other ways than the more seasoned programmers had planned.
Engine (pdf) EntityCore (pdf) SceneCore (pdf) Network (pdf)

Phase 2

[Pic of first level] [Pic Hotrod] When basic functionality was reached the modellers also had their first character ready and so first playable test games emerged.

At this point a project leader of sorts had emerged keeping track of the progress and assigning the most urgent tasks. Little time later it was necessary to appoint an artist taskmaster to organize this part of the work properly.

[Pic of first level] [Pic Hotrod] The artists continued to finish their characters, create props and level meshes and the programmers worked to get the level editor, networking and gui framework ready. The existing parts were augmented, changed and fixed again and again. After all... there were quite some rookie programmers among us and none of us had ever finished an complete game engine with networking, physics, scripting...

[Pic Hotrod] At the same time quite some modellers struggled with the quirks of the modelling tool (Maya5) and scaling. The lack of an easy means to test their models in-game further hampered their efforts.
Quite some time went in to the tweaking of the player character physics and steerage scripts. Sometimes it looked more like an car race but finally we achieved decent player character steering.

Phase 3

By the next step the level editor was useable and the GUI framework was put into real use for the game menus.

[Pic old game] [Pic old menu] [Pic Editor]

More content-rich levels were built by the artists and our angelscripter developed the necessary gameplay scripts. Some artists got outside on a sunny day to create lightprobes for the skyboxes or recorded sound effects. Apart from the usual work with augmenting and fixing the programmers created more visual effects and got the networking right.

[Pic sound] [Pic skybox] [Gametest Movie 21Mb]

Finish

When not quite everything was running smoothly and the final deadline neared everybody put a lot of work (quite some night shifts) into the project during the final dash. Shaders were written, textures refined, network prediction improved, menu screens cleaned up, lighting and fog were fine tuned, scripts corrected, bugs fixed, and so on. The whole game got a more and more polished look while the code quality suffered ...

[Pic of people] [Pic final menu] [Pic final game]

- Manuel Kugelmann - project leader of sorts ;)