Friday, December 7, 2012

Catequesis Tech Inside #1

Hi there, Maxime here, developer of Catequesis.
For my first post, I'll talk a bit of what's under the hood of the Catequesis project.

I'm a Java developer so Java is the language used in every components of the Catequesis project. It's definitely a good choice for targeting Desktop and Android ( and even web, but this is another topic ). Java is a rather modern language, that can run on many platform. It's object oriented (which is really great for games) , has a really huge ecosystem, and focus more on productivity than performances ( which is good enough for a 2D game ).



The Catequesis project is composed by: 

  1. The game itself. Android code and Desktop code differs on some specific platform related issue, but most of the code is the same between the 2 platforms. That's a huge advantage. 
  2. The editor : We got a great map editor that allows us to create maps the way we want without requiring any code knowledge. 
  3. Tools : There are some inside tools dedicated to automation of dull tasks. 
  4. People : us, basically. I should have put people on the first point though !

A question that we're often asked is : "Which framework do you use?" followed by "Really ?! But why did you have to recode everything rather than using a game framework ?".
You have already guessed that, in Catequesis, everything is home-made. My game framework is something I started to develop 3 years ago, for fun. I wished to learn how to use OpenGL. At that time I decided to build a little game that leads to the creation of Tales of Pocoro.
In 3 years, the engine got bigger and better. It's not that hard to code, but just take time to read, experiment and implement. 

When Francisco asked me to develop Catequesis, I already had my own engine, with a light editor. So, for me it was easier and more interesting to use my own tools and improve them rather than starting from scratch using a game framework.



For a more technical approach, for my fellow developers, here are some random facts:
  • The editor is full Java, and uses Swing.
  • The game uses JOGL, a library from Jogamp, that allow Java use OpenGL in a very low level way, pretty much the same way you can use OpenGL on Android ( which is really convenient ).
  • On the desktop, the sound is handled by JOAL, another library from Jogamp ( love you guys <3 ).
  • Every library we use is open-source.
  • All the content of the game is home-made too

If you have questions regarding this, do not hesitate to ask in a comment. I'll be glad to answer.


Maxime.

2 comments: