Lumina, a game engine for GP2x and Pandora
Lumina is a game engine for the open-source handheld console gp2x(Offical page - seems to be down or gone now), and the Pandora (Offical page).
It's programmed in a mixture of C and C++ and uses SDL.
The idea was sparked on the gp32x boards in a thread called "Any developer interested in a game project, but unfortunately it died before getting anywhere significant.
I still wanted to go trough with it tough so i started on Lumina engine.
The code-base is now in it's third rewrite.
Info:
The current version of luminaEngine is 0.7.99_SPECIAL and the current version of the editor is 0.5.5
I am currently using the engine for three projects.
Right now I am working on:
Scripting system rewrite (delayed until the current game project is finished).
Object AI.
Improved object collision.
General improvements to the editor.
News:
28/2/12:
Ever since the Pandora Rebirth compo was announced I've been concentrating on the new game project, tentatively named Space Dog, in order to submit it as a demo to the compo.
Most engine changes and improvements has therefor been directed toward the platform type of game.
The most significant change is that every object now takes care of itself to a very high degree.
This means that there is almost no difference between a player object and a static object, this simplifies AI controlled objects a great deal.
Another important change is that object collision is now done locally by the objects instead of globally by the scene.
Since I'm making this game for the Pandora Rebirth compo, it's tailored toward the Pandora, tough I am still trying to make sure it will run on the GP2x.
I have also started to bake in a bit of support for the WIZ and the Cannoo, Dingoo support might be coming too.
The latest and greatest build.
12/11/11:
I have recently gotten a bit sidetracked by yet another game project these past month's.
While the rate of development is rather slow it's steady.
Some specific engine changes for this new game has been added, and the other two games are being updated to make use of them.
Among these changes are 22.5 degree slopes, height based falling and jumping animation and some script changes.
Here is a screen-shot of the current version of this hopefully-soon-to-be new game:
Olds:
18/8/11:
Well, the site is back.
I had a hard-drive crash during a backup session and the site, most project files along with the backup got corrupted, fun times.
Development has continued, but I didn't feel any specific need for a site for it.
Until today, when i found an even older version of this site when going trough some old usb sticks, so I thought, "Why not?".
So, what has been happening with the games I was working on?
Well, as I stated above I have been working on it every now and then.
The major changes have happened in the engine, but where there before was test-maps for the games, there is now actual levels with the beginnings of the story and such.
The major changes in the engine are;
* Basic network support
* Rewrite of the script system to allow for basic flow control (IF statements and such)
* Customizable gravity for platform games.
* Script templates
* sound management
* 45Degree slope support
I have two somewhat current screen-shots:
Really Olds:
19/4/09:
The last three days have been full of progress for the engine and the editor.
One of the largest steps forward is that I managed to kick some life into my gp2x.
The stick is however, busted, so I cant really test movement and object script interaction.
By doing that, I could now test how Lumina preformed on it, it was a wonderful surprise.
It far exceeded my expectations at 240fps with 24 object's on screen and all of them running a highly unoptimized script.
The second largest step is that the editor, the main thing is that there is no longer any need to
manually edit the map files the editor generates in order to make them work.
Other changes includes;
Adding parameters for layer-level in the object declaration.
Adding names to templates.
Creating a prototype for the inventory.
Making some preparations for save-games.
I feel that it might be time for a public preview soon :D
8/4/09:
HAH! i just reached a milestone (well not really) but a fun (for you at least) thing just happened.
I have been trying to track down a bug that corrupted the game script after it had been loaded for the last hour;
but i could not find what was causing it and it seemed to appeared at random.
After a while I concluded that there was something wrong with my text drawing function, since it was after a couple of
text boxes that the corruption was getting noticeable (game script started to throw a lot of "Unknown command" messages).
But i looked over the code again and again, but could not find what was wrong... until i checked my object script file.
*sigh* i had forgotten to end the line with the ';' that i use to indicate end of command.
Those extra few characters overwrote the command data, and thus the problem.
7/4/09:
The editor is now actually useful since i have now created a save map function.
However it still doesn't recognise custom templates, so those are lost upon saving a map that contains them.
I am thinking of removing the ability to enter custom templates into the map file itself since it's not really necessary
and the engine would be required to use more ram.
I have also fixed some small bugs relating to the tiled background collision detection and with the pixel doubling function.
22/3/09:
Not much have been done with the engine itself, a few bug fixes and preparations for the 'real' script engine.
I have however implemented some basic script functions for printing out texts and YES/NO dialogs.
What I have been concentrating on is the creation of a new version of the editor, which now shares the same code-base as the current version of the engine.
Since they share the code-base, updates to core functions will now affect both the editor and the engine.
This means that i can now totally retire the old code and concentrate on the new engine.
I have also implemented double pixel rendering.
I do have some new screen-shots
17/12/08:
It has been a long time since i updated this page, mainly because I have moved to another city.
Lumina is now at version 0.6.17, and since the last update i have added loads of features, among these are;
Object support
*the engine can load objects.
*the engine can load objects based on a standard template file.
*the engine can load skeleton objects and later apply custom templates or custom objects.
*the engine can display loaded objects.
Animation support
*the engine loads animation data, it does however not yet use it.
*the engine can however handle object direction changes (object faces left when "looking" left).
*the engine can generate a type of common animation data automatically.
Script Support
*the engine loads and executes the game startup script (sets first map, sets player id, and so on).
*the engine loads but cannot yet interpret game and object script.
General engine updates
*the used file structure is now much simpler and uses a lot less individual files.
*the engine can now "end" a game without exiting it, this means that the script engine can change the whole game "on the fly"
without the player needing to exit and then reenter that area.
I found a newer version of the editing utility, so i put it up here
13/6/08:
The engine (0.5.3) is cable of running a basic rpg, but will not be updated any further.
Engine capabilities:
Loading and drawing a tiled map-file,
Loading and drawing object files,
Running scripted dialogs,
Running dynamic dialogs, depending on players choice and on checking if the player inventory contain or does not contain certain objects.
Adding/removing items from the inventory,
Rectangular collision detection
-Independent on the size of the object.
Loading new maps depending on player position.
There is also a basic particle system (the image to the left, have the particle system running in a rainy effect)
-This system can be used as a light adjustment system (such as light sources or darkness sources), but is somewhat slow at the moment.
I have decided that the code is too messy and contains too many design flaws, so I have deiced to do a major rewrite of the code.
About 90% of the code will be rewritten.
And right now I am about 49% finished.
The editor is currently capable of;
Save and load map-files and object-files
Editing map-files by changing tiles, and tile status (solid, non solid)
Editing object-files by adding objects, removing them however is not yet implemented
Reloading the current map
Old stuff
Two screen-shots of the old debug build of the Lumina (0.5) engine:
Win32 build ver 0.5.31 ("stable" but contains a huge memory leak)
gp2x ver 0.5.2 build (unstable)
A screen-shot of the current version of the editor, as you can see, the Gui really needs some improvement ;)
The house with the pink background on the map is still pink since it's not yet "put down" on the map.
Lumina edit (version 3.2):

Win32 build (Crashes very often, have a huge memory leak)
(version 3.6A)

Win32 build (Crashes every now and then, memory leak, but more stable than the previous version)
I do intend to release both the engine and editor under some kind of open-source licence, but not until i have cleaned up the code.
If you have any comments, ideas or thoughts.
Please let me know by dropping a line to Dimacus at g mail, or contact me on the gp32x forums (gp32x)