Developer postOriginal post (opens in a new tab)

Milestone 1 / 4 in the creation of the new version 1.3 is achieved.

To make the waiting for the version 1.3 easier I thought it would be a good idea to present you our milesstones:

1. Basic Client / Server Animation System (finished)
2. Advanced parts of the Animation System (Retargeting, Inverse Kinematik, Rag Doll Animation)
3. Updating the enemy AI
4. Debugging

Despite this we follow a lot of minor projects which also make good progress. These are of course the creation of good animation for our enemies. And we want to introduce fluent water and a system which will help you to find the resources in the next release.

Basic Client / Server Animation System

As mentioned above the basic animation system has been implemented. On the server side we use a state machine to control the client side animations. In the last announcement we talked about problems regarding our motion blending system. We added now several methods to blend our animations:

- kth best animations
- all animations which influence the behavior above a certain threshold
- delaunay triangulation (which is very cool because it gives the best performance)

Imagine for example the running animation has a speed of 6 m/s and the walk animation has a speed of 3 m/s. If the player is then moving forward with a speed of 4 m/s then motion blending is used by taking the best fitting animations into account.

Models

And we also made progress regarding our models. To our main character we added a lot of motion capture data: different kinds of walk, jump and turn animations. She can now even make a workout in a gym (but we do not know if we really need this, but it looks so cool).

Then we optimised our meshes by removing invisible polygons and by creating low poly version of them. We also created a male model which we call guard. The only problem with this is that we planned to recycle all the animations from our main character Lisa for the guard. But as Lisa is female and the guard is male he has a different kind of skelet. This means that we cannot simply copy our animation. They have to be retarged. This can be done in Blender but it would be nice if our engine could do this because it would save memory if we would only have one set of animation loaded at runtime.

Water

We finished our special water update algorithm. With this I do not mean the algorithm which calculates the water movement. I mean the algorithm which updates the actual water mesh which is send to the GPU. In our first experiments we used for this the standard world updating algorithm. But this approach was to slow.

Editor

And we started with the development of an ingame editor. This editor is first meant only to be used intern but later we plan to release it to the public so that everyone can use it to create mods for the game.

We first experimented with Qt but we did not liked the result. And it did looked a lot like the unity game editor. As this wasn't our goal we did abandoned this project.

Reflection

Ok this is perhaps interesting for all of you who can program in C++. We want to be abled to analyse the structure of the classes at runtime. This is especially important for the new editor. This is called reflection. In Java and in C# it is directly supported by the language. In C++ this isn't the case. So we started with the developmemt of our own reflection api.

Delaunay Triangulation

As mentioned above we used this kind of data structure in our animation system. This was really hard to implement but it will allow us to smoothly blend between different kind of animation states.

Bear
And finally the bear has a walk, run and attack animation!