20 September 2006

A little side project: O2DMini

I have been working with the Nokia 770 Linux tablet at my pay job, and it got me thinking about game development on the handhelds. Direct port of Opioid2D is out of the question, as mobile devices rarely have support for OpenGL, so I started (half jokingly at first) designing a light weight version of O2D that would drop features such as rotating and scaling and use software rendering.

The plan is to write a pure C API and implementation (no C++ and STL bloating things up) that can be wrapped to Python using ctypes. However, since the Python interpreter is a bit too resource hungry for embedded devices, the main way to utilize O2DMini would be via a custom Python-like language that is translated to C.

I.e. take this hypothetical piece of code:

action = Delay(10) + MoveDelta((100,50)) + Delete

It would be translated to something equivivalent of:

Action* action = malloc(sizeof(Action));
Delay_Init(action, 10);
Action* action2 = malloc(sizeof(Action));
MoveDelta_Init(action2, 100, 50);
action->next = action2;
Action* action3 = malloc(sizeof(Action));
action2->next = action3;
DoAction(sprite, action);

The whole thing is still mostly at the brainstorming phase (with a few hundred lines of proof-of-concept C-code), but let me know if you think such a tool would be useful. In addition to embedded use, it could target low-end PCs that lack hardware accelerated OpenGL.

The standard Opioid2D has the first priority at the moment, but once it matures, I can see myself dedicating a good amount of time to the mini-variant.

16 September 2006

Opioid2D alpha 2 released

The second alpha of Opioid2D has just been released. Downloads and detailed change log can be found from the O2D TRAC at http://trac.codereactor.net/opi2d/.

12 September 2006

Tweaking the particle engine

I've been wondering how to make good looking particle explosions for some time now. Seems that no matter what kind of image or parameters I used, the explosions always ended up looking like separate particles. Like this example image:

Today I finally figured that doing a double rendering pass on the particle layer using different glBlendFuncs, I can blend the particles together and achieve a much better result:

I'm also looking into recursive particle emitters (emit particles that emit particles that emit particles...).

10 September 2006

Opioid2D first alpha release

The development of Opioid2D has progressed to the point that I'm releasing the first public version. It's still very much an alpha, but I'm aiming for a bit more frequent release cycle from now on.

More info and downloads from


I was thinking about the license for a long time, but I finally settled on LGPL. I was going have a small licensing fee at first for commercial games once O2D reached the necessary maturity (mainly to cover development costs like domain and server rent), but I figured voluntary donations are the better way to go.