Last weekend I was working on the “Baker Animation Series” from http://cgcookie.com/blender/series/baker-animation-series/ to get some more insight how to do animations with blender. I worked through through parts 1 – 5 when I got distracted of making an animation myself. But see for yourself:
The basic idea for the “plot” was to have someone flying around until he realizes that someone is watching. He then stops flying and pretends as if nothing had happened.
The last two gamejams definitely convinced me that Lua is a very elegant, fast and easy to learn scripting language. Combined with the amazing LÖVE engine reallycool things can happen.
When I created on my simple skeletal animation tool MeshUp, I thought that using JSON as a fileformat would be way better than XML as it is not as verbose and therefore easier to read. Also there is a nice C++ library for reading and writing JSON files.
However the syntax of JSON is actually fairly similar to Lua so I thought it would be a nice thing to have scripting powers in the model description files as it empowers you to even … script repetitive tasks!!!
The only problem was that the interface to get values from Lua into C can be a little counter intuitive as one has to interact with Lua through its stack. I do have to not here that the Lua stack is – just as the language itself – a very elegant way for passing data in and out of Lua’s virtual machine. But as said before it is not as intuitive when one wants to do simple things.
For this I hacked together a small set of functions, called luatables, that should simplify using Lua as a fileformat. There are of course various libraries already available, but I wanted a) get to know Lua a bit better and b) have a lightweight solution that does not add bloat or dependencies.
I published it under the (very permissive) zlib open-source license. You can grab it from:
It’s been already about two weeks that the Ludum Dare 23 Game Jam is over and it is therefore also about two weeks that our game Spaceship In The Sky With Colors is finished. It is about a spaceship in the sky with colors.
It was created by michi and me and we are very happy with it. We have been wanting to make a game together for more than 15 years and we finally got something done.
Last weekend, I participated in the Global Game Jam 2012. Together with Jonathan Wehrle, Tilmann Hars I made this game within 48 hours. We are very happy with our submission and you should definitely have a look at it. Also, feel free to vote for our game at http://globalgamejam.org/2012/i-hate-myself
We used LÖVE a super awesome 2D game engine that lets you make games extremely easy. It was wonderful to work with it.
Last week I started working on a small, yet powerful visualization tool for animations or more generally spoken for any multi-body simulations. It is based on skeletal animation and magic and is called MeshUp!.
The frames for the skeleton are defined in a JSON file (thanks to jsoncpp this was relatively easy to implement). In the same file meshes can be attached to the frames (e.g. some random monkey head to the “Head” frame, etc.) and are then moved with the head bone.
The meshes themselves are Wavefront OBJ files that can be exported by nearly every 3d content creation package. I wrote the importer in about 2 hours which surprised me. I feared that to be a lot more of a hassle.
Furthermore it finally made me play around with Quaternions a bit more. Turns out that they are not as hard and are actually quite efficient. Before that I used some matrix calculations for the rotations but with the Quaternions I basically have the same usage but about 10% performance gain (not that it would matter, but it surprised me a little). The biggest problems I had, was that in my computer animation reference book a formula for a conversion had a typo. Thanks to test driven development this was easy to debug and will not occur in the future! Yay!
Oh, also it is coordinate system agnostic. Meaning you can use whatever angle convention you like! ZYX Euler? Sure! YZX Euler? Why not? Just define the proper coordinate system and rotation order in the model file and that’s it!
I published MeshUp! at bitbucket account. You can download the source at: