Here's a quick summary of the (probably much more advanced than it needs to be) features:
- Simulated multi-threading - the main difficulty in ActionScript is that everything is single thread (can't do a task until other tasks are finished) so I've had to write a bunch of code to work around that to try and do big jobs in small chunks and so-on. This isn't a big deal normally, but for anything more complex that we might want to add in future it's necessary to solve the threading problem as effectively as possible.
- 3d physics engine - not all of it translates to visible 3d effects, but objects can fly from the background into the foreground and vice-versa, not at all simple, but something I've done several times in the past in various different languages.
- Animation engine - probably the one thing I shouldn't have coded at all, but we didn't really know exactly what we wanted from the animations/scenes, so I just went and did something that should do just about anything we could want. Meaning the engine is aware of animations as a bunch of segments (looping or one-pass), and can string them together in various complex ways. Absolute nightmare but by this point it's essentially done other than bugs (of which there are likely many).
- Scene engine - again we never really decided what we wanted for areas (screens or scrolling), so the game engine handles both, and can do so in a pseudo-3d fashion. Not as complex as it might sound but nowhere near as simple as v0.1 and v0.2.
- Dialogue parsing - partly to better support third-party content, but scenes should be build-able such that they can mix dialogue and animation, but the dialogue is parsed so that gender identifiers can be switched, names etc. Allowing for easy character swapping.
- Level of Detail - we want the game to run for as many people as possible, but at the same time we'd like to be able to do fancy things visually. Which means we need to be able to turn visual features on and off if they're kicking the stuffing out of a player's computer, so things run as smoothly as possible.
And that's just a few of the major bits. We want the project to be heavily community oriented, but the problem is that v0.3 isn't the time to do it as we need some stuff established or it would just end up as chaos as no-one would really know what they need to do in order to build animations etc. The project's ambition has almost certainly been far too great from an early point, and has been forced to cut back but even so we're hugely delayed, but work is still being done. However delayed it may be, and I am acutely aware that it's a huge bottleneck, I'm very pleased with the game engine, and am already putting as much spare time as I can give into getting it finished as soon as possible.