Initially I was reluctant to make it public, but after some time talking about it on GDR I decided to give it to the world. Let me copy from the GDR thread:
So, after some months working on it I have a not-yet-complete old-school game engine with:After finishing Green Onions - The I Ching Saga I realize I did a big mistake: I worked in the game engine at the same time than in the game itself. Now I have an unfinished ugly game engine that uses an old library and a game filled with patches and workarounds because the engine doesn't work as expected.
For my next game I decided not to start until I have a complete engine. Actually I was looking for one. I tested Unity, Game Maker and some less famous ones (Castle Game Engine, Tilengine...) but I didn't find something I like. All those game engines are cool and you can do great games, of course, but I don't feel comfortable with them as they look too much modern for me. I feel the need of an old-school game engine. I think I'm getting old.
- A stage based game loop, much like a finite state machine. Actually inspired by Delphi/Lazarus' application libraries.
- Component based stuff. You need something? Extend the component base class, add it to the game application object and you can use it when you need it.
- An event manager. Quite proud of this part. Didn't plan to add it but things are quite simpler since I added it.
- Configuration file and command line options parser. It is extensible (i.e. define new commando options) and parses some common ones.
- A quite flexible hardware accelerated sprite engine. Despite the "hardware accelerated" part I think I can optimize it a lot.
- A tile based map engine. It also uses the hardware accelerated capabilities of your computer, but I think I can optimize it too.
- A simple maze generator. It generates RAW data (i.e. can't use it directly in the tile map) but I think it adds some flexibility.
- Arcade user input (keyboard only ATM). Arcade means one 8 direction stick with several action buttons.
- A general purpose Finite State Machine. This was one of the few things I did correctly in my previous engine, but I didn't use it in Green Onions. Blame me. I deserve it.
- A general purpose message subsystem. Needs more testing and I'm not sure it works or it is useful.
- Semi-complex bitmap resource manager. Actually it's quite simple but it is the key to use the hardware accelerated sprite and tiles.
- IFF file support. Did I say it's an old-school engine, didn't I?
- An old school map editor.
- One command-line simple tool to extract and build tileset bitmaps.
A lot of the inners are inspired by Ken Silverman's Build engine and Diana Gruber's Action Arcade Adventure Set.
The engine isn't yet finished: it lacks joystick input, the GUI needs more work, needs a lot of optimizations... but I'm tempted to release an alpha package. May be when I write a simple example game. Anyway you can take a look here.