(posted with permission of Gideros Staff)
I have written a Lua-based game engine called Longford which is substantially compatible with Gideros code. I have released Longford free and open source and would encourage anyone interested to use it to port games to platforms not currently supported by Gideros. I'd also very much welcome contributions to what I hope will become a lively community project. I hope that experts on various platforms will come forward and port Longford to a range of systems and devices (maybe including obscure and retro devices like Amiga, old consoles, maybe even Commodore 64)
My intention in writing Longford was to port my games to platforms which Gideros does not support. At the moment, Longford can output native Windows apps and BlackBerry PlayBook apps (probably also works for BB10 phones, not tested). I've now got my game Nebula Retro running on my BlackBerry PlayBook. To convert from Gideros to Longford, I changed only 2% of the code. (however, you should bear in mind that I wrote Longford largely with Nebula Retro in mind so your project may need more work than this!)
Here are some of Longford's features:
+ Sprite hierarchy. Sprites drawn in order according to a display "tree". User can rearrange tree using commands like "addChild", "addChildAt", "removeChild" etc
+ ENTER_FRAME and touch events which propagate through the display tree. The "stopPropagation" command stops further propagation of touch events if necessary.
+ Creation of Sprites including polygon Shapes and rectangular Bitmaps with alpha channel (which can be imported as PNG, JPG, TIFF, BMP, TGA files)
+ Creation of textfields based on bitmap fonts. Fonts should be initially generated using Bitmap Font Generator from Angel Code. (free)
+ Translation, rotation and scaling of sprites.
+ Box2D for simple single-fixture bodies. Joints are not currently supported.
+ Box2D collision events
+ Sound system. Play sound effects using WAV files and stream music using OGG files. (note that MP3 is not supported at present)
+ Automatic "tweening" system where sprites can be transitioned smoothly between position, rotation, scaling (etc) states with a single command. The transition can be linear or non-linear (including exponential and "bounce" transitions).
+ Different scale modes on physical devices depending on device screen size. Automatic bitmap substitution "@2x"
Here are some things Gideros has but Longford does not support:
- MovieClips, Meshes, render to texture
- texture filling of polygons
- custom events
- support for physical keyboards, soft keyboards, accelerometer, vibration
- Anything to do with purchasing or ads (e.g. IAP)
- Internet access
- lots of Box2D stuff needs to be added
Here are some things which are different
* Longford streams OGG rather than MP3 music files
* GTween is built in to Longford. Tweens are properties of sprites not separate objects
* When Box2d bodies collide, the body rather than the fixture is passed to the collision listener
* Does not use |R| and |D| for file access but rather getPath() and getDocsPath() functions
* OO using Core.class is supported via a separate library (class.lua) not part of the core
* Longford does not automatically import any Lua files. You need to "require" files explicitly.
* Longford can export for Windows and BlackBerry native. Does not currently support iOS or Android.
* Everything is specified in the Lua files including system-level stuff like Logical coordinates etc. There is no separate properties file and no IDE.
You can find the full manual and API reference here:https://sites.google.com/site/simpleinteractive1/longford/longford-manualhttps://sites.google.com/site/simpleinteractive1/longford/longford-api-reference
You can download Longford from SourceForge:http://sourceforge.net/projects/longford/
Go to where it says "Longford Code". As well as the source code I've included an EXE file. Just run this and use the File menu to run some of the included examples. That's the quickest way to start.
Finally, here is a video tutorial I did
(I have prepared English subtitles which you can translate if you want).
Like all open source projects, Longford runs on encouragement. The more encouragement I get the more likely I will be to write/fix stuff! So let me know how you are getting on and what features are missing. Longford is in a beta stage at the moment so don't expect everything to work perfectly straight off. You can see from the above that there are lots of things I know I need to add, particularly for Box2D. But let me know if I've forgotten other stuff.
Please feel free to write comments on the Longford Forum on SourceForge. (link above)
And if anyone wants to get involved in the actual coding, I'd welcome that too!