Rob Galanakis
Technical Artist

Aldo's thoughts on Blood and Iron

(The following was posted by Aldo Fanelli, the lead programmer for Blood and Iron, on the weblog before it was taken down)

Good Game :)

It is a typical expression to indicate that the participants of an event had good time but it is now over.

I used this expression many times after a good Xwing vs Tie fighter game played with friends in a LAN or over the internet between the 1997 and the 2000.

Since when I was a kid I have been always wishing to develop a videogame, also with my Commodore 64 I tried to do a car racing game using the native Basic language.

This project started, for me, on august 2006 but actually I already had developed a small engine for a 3d graphic adventure (another "indie developer" project) that started on october 2005. When I first started that project I didn't know anything about the real time, the graphic engine, the physics simulator, the scripting and so forth. When I decided to start studying some Directx or videogame related technologies I was working as a tech support for a consulting company getting a lot bored. Before this job I was working as a programmer in a ICT company but I decided to change job when this big company offered me a very good contract which I accepted.

Well, I made a mistake since I had not realized yet how much frustrating a "non programming" job is for a programmer.

So, I decided to stop it and do what I like even if unpaid: developing a videogame. But working full time does not make enough room for studying and developing a difficult and big project such as a videogame is.
So I changed job going to work for the company I worked before. I just asked them to work at reduce schedule. After some discussion they accepted, paying me a reduced salary, of course.

So I started living two lives (it sound like matrix actually, but it is true :) ), sleeping less and slowly loosing money at a controlled rate, since the reduced salary is barely sufficient to survive. I had a strong determination to accomplish to have a game engine with some flexibility and a good physics included.

I had everything planned in order this to last no longer than 2 years.

Now the two years are almost over so I have decided to go back to "normality", but now my personality and my aspirations have definitely changed: once you work with people such as Rob (the Blood and Iron game designer and lead artist) you notice that the passion is still an asset as well as the commitment and, moreover, now that I have become aware of the satisfaction that comes by crating something which moves and interact with a simulated environment it is very difficult and maybe impossible to go back to the "normality".

The project has arrived at a point that is good enough as a tech demo that shows that we have the potential to do good things, but, of course, in order to do even a demo of a game funds are needed. It is impossible to proceed working only during the spare time, also because my spare time is now less than before since I have to start working more to stop loosing money.

We achieved to have an engine that quite fairly controls the animation blending (using the cross faded blending technique), the collision detection, the characters' movement and we also achieved to have a good set of shaders that Rob personally developed without being a developer (this was one of the most amazing things I saw during this project) and eventually we achieved to implement the physical death sequence by using the so called "rag-doll" physics for the characters.

Well the rag-doll is still a bit unstable :-P but it makes me proud when I see the rag-doll simulated character falling down physically!

We actually had a big weakness: the lack of an actual editor. We used some good open source stuff that allowed us to export assets from 3dstudio to our rendering engine library (Ogre3d www.ogre3d.org) but we lacked completely a good data format definition for the physics properties and most importantly we lacked a graphic editor that would allow to define the physics properties of the objects.

The physics library we used (opal opal.sourceforge.net) help us a bit with their xml physics blueprint files, but I was forced to edit the rag-doll XML file model manually which was painful!

However eventually that worked and now we packed it along with the other demos that include an interesting cut scene system that uses a powerful open source scripting engine (AngelScript http://www.angelcode.com/angelscript/). I wrapped it quite cleanly and it was a lot helpful to create nice cutscenes.

Actually I made Rob suffer a bit on level editing since he had to edit many files manually that lead many times to error which nobody could understand since the error logging system was a bit...how can I put this ... somewhat incomplete :-P

However, one way or another we achieved something which is decent thanks to our strong determination, which is the only thing that is needed to achieve results.

So now I cannot continue developing since I no longer have enough spare time to dedicate to the engine, but I am not going to abandon it. I will slowly continue the reengineering process, which I already started, and see other physics libraries and, most importantly, editors. I have pointed two things: http://www.continuousphysics.com/Bullet/ and http://www.physicseditor.com/.

Actually the physics library Bullet support the famous physics data format definition known as COLLADA http://www.khronos.org/collada/

Since there are plugins for 3dstudio, blender, maya and so forth for exporting COLLADA formatted files it maybe a good idea using Bullet as a physics library.

Anyway I will study this calmly now :) and later on...who knows, maybe somebody will notice our job or our skills and we will be ready to start again but this time PAID! :-P