You may have noticed that things are a bit more quiet than usual on our development blog. Our vacations are to blame. Personally, I have just spend two awesome weeks touring through Italy with my girlfriend. Eating pasta, drinking wine, sitting in the sun and generally not thinking about anything more complex than where we should have lunch. Maybe I was also gathering some strength for what I knew was waiting for me back home.


You see, back when we first started working on Caromble! none of us had ever made a game for real.  It is amazing to see that lots of the code we wrote in those days is still in the game, and working as it was originally intended. It is also  unsurprising to see that lots of code has been thrown away and rewritten. And it is also unsurprising that there are lots of bits and pieces of code that really should be rewritten, but never were broken enough to warrant such action.

Among this code was core rendering engine. Like I said, when we started there were lots of things we didn’t know. Especially about rendering. We understood the basics, but when it comes to rendering a game there are also a lot of important specifics. So what happened was that we just went ahead working with things we didn’t fully understand, and just getting it to work.  Starting from examples from the internet we actually made quite good progress. Eventually we were even being able to contribute a little bit to Ardor3D, the graphics engine we use.

While we were getting to grips with rendering in OpenGL, OpenGL itself went through a transition. Slowly but steadily the Fixed Function Pipeline got out of fashion, in favor of the programmable pipeline. Initially we didn’t care very much for fashion, and quite happily used both pipelines for different parts of the rendering process. Which didn’t really seem to matter at that time. So what if we depend on both?

Well it turns out it does matter. To be able to run the game on MacOS we needed to choose. Apple drivers will work with either pipeline, but not both at the same time (OpenGL compatibility mode). We couldn’t go back to the fixed function pipeline anymore, as we would not be able to maintain the look of the game. So we had to take the leap forward.

And that brings me to the thing that was waiting for me. A complete rewrite of the core rendering code. Just when the game is quite nearly finished too. To add to the fun, this also means we can’t use the off-the-shelve version of Ardor3D anymore, which is still fixed-function at heart. At the same time, it is also quite exciting. We get to write a rendering core which is tailored exactly to the needs of Caromble!, we anticipate that we can get a bit more performance this way too.

Originally, this would be the blog posts were I would triumphantly boast about the new awesome render core we just put in Caromble!, making life at least twice as awesome. Sadly, all this exiting state-of-the-art rendering core currently does it give me a black screen.  And sometimes crash. But I should be able to fix that pretty quickly. When I do I’ll share how I did it here. We could also make the renderer available to those we would find it interesting.

Until then!







« »