A Subtle Ambiguity

Development Diary

Code Refactoring

7-8-2008

I'm in the middle of the skeletal animation system of my library and I've found a structural problem in the modelling. The Model structure, while representing well a simple, static model, didn't scale well to a animated, complex model as I thought it would in the first prototype.

Having to adjust the structure, reviewing the code and deciding what should remain intact and what should change will give me some work. This final stage of my base library is a bit more difficult than I expected.

In the end, the code will be mode robust and with a better quality, while easy and confortable to work with. Making these changes now will free me of a lot of headaches in the future.

Generic Animation System

9-7-2008

So now I have an animation system. It's generic because it just interpolates values between keys, it doesn't have any binding to anything at all.

The good thing is that I can use that to animate anything: the gain of the background music, blending colors and animating bones of a 3d model.

Now, I'll work on the bone system of my 3d model data structure, then all tools that are commom for every game will be finished.

Can't wait to start working on the my first game project!

Almost there...

2-6-2008

The vector and matrix code are now SSE optimized, making my code restricted to processors with SSE. It's a good thing now that anyone with a half decent PC has a processor at least better than a Pentium III, so there's no reason for not making use of the extra power.

That's the C++ version of the physics simulation test. Nothing to brag about though.

So far I've got almost all the basics up and running. It's almost time to work on the game itself!

Language change

2-4-2008

A big hit on the game engine development: language change.

I was very satisfied with Java until a serious problem happened: the quality of the audio decoder was bad, and it was eating more CPU than it should. Sometimes, choosing between fast code and precise code is necessary, but in this case the problem wasn't so simple. After about a month searching for solutions to make the code better (both in the quality and performance department), the results were unsatisfactory. That really pissed me off.

Pratical solution: the development language changed to C++.

Re-coding the audio code to C++ was fast and the results already are excellent. I have to re-code the remaing parts that were done in Java (physics and graphics), but it'll be easy to do.

This was a hard, but necessary decision: I wished to invest on the development of games in Java, but if I have to choose between robust code and technically impressive code (meaning to make quality, commercial games written in Java), I'll aways choose the robust code.

Maybe in the future I'll work more with Java (I like the language a lot), but unfortunately I can't right now.

Well... Welcome back C++!

Game library and links update

9-2-2008

A very busy January. The transition from 2D to 3D, especially when you don't have a lot of 3D math experience, is a painful one. Nevertheless, it brings so much satisfaction from it!

A lot of research went to 3D modeling, rendering, transformations, file formats, etc. To learn the most I can, I decided to use my own file format, so I had to write an exporter for Blender, which is a very good editor, once you learn how its interface works (and, to be honest, it's a very strange one).

"Yes, I have learned Python fast. It's a bit strange (blocks are defined by TABs, just like makefiles), but I liked it."

The most complex part was planning a format and a data structure easy to implement, but at the same time easy to extend, adding new capabilities. That's because, right now, I won't need skeletal animations and other fancy things. The end result was both very elegant data format and structure, easy to understand even by inexperienced programmers, and with the possibility to have any type of information aggregated. And no, it's not XML.

Right now I'm finishing the model rendering part of the graphics library, with the texture mapping still as a work in progress.

I have updated the links section with some sites about independent games, too. Check it out.