There are times when a side-project will capture your imagination and fire you through all the sticky bits of development, and times when, like the tide, the inspiration recedes. At these times I find it best to move to another project and wait for the next wave to continue development. That's where this project is.
Due to a lack of time (who knew raising another human would be so time-consuming?) and a lack of drive (for reason explained later on) I'm stopping work on this project, but I'm also open-sourcing it, so if anyone else wants to look over it, or continue on from here they can do. If not, I'll be back at some point.
What is AGE?
Towards the tail end of last year, I went to a game jam where there theme was HG Wells. I thought an interesting idea would be to use an Amazon Echo and create an interactive radio play along the lines of the War of the Worlds one, but significantly worse (let's be honest here).
I have a lot of memories of the choose-your-own-adventure books from growing up. The Fighting Fantasy series, Knightmare books, the actual Choose-your-own-adventure series, etc. There was also a large number of Spectrum-based adventure games in a similar mould. These seemed like a perfect fit for something like an Echo, as it can provide all the sound effects and voices you like, and make sure you don't cheat.
In the end at the game jam, I joined a team and we made an asymmetric co-op game where one person (an alien sympathiser) had a avoid the rest of humanity while the second player controlled the alien's beam weapon and dusted anyone that got too close - even the other player.
I didn't forget the idea though, and instead decided to build it after the game jam. Although my daughter's significantly too young now, I thought it'd be nice to have something that, in a few years time, would allow us to create interactive stories together.
As such, I created AGE (Aural Game Engine). The aim is to have a simple JSON format that allows you to define the branches of the story, the words spoken, and the options available to you. The Amazon Echo can easily handle text-to-speech or play from a audio file, so you can have sound effects, or an entire voice cast if you'd like.
AGE is built with a (hopefully) simple-to-use plugin system so you can extend it's functionality as you see fit, with the aim to have some interesting default plugins, which we'll cover a bit later on.
As mentioned before, I'm not currently coding this, but it's in a relatively working state. Beta perhaps.. possibly closer to an Alpha release.
As to what is there now, the basics. You can use it to create a game with multiple rooms, interactions, and objects (and images if you're using an Echo Show). There's a very, very small amount of documentation and some simple test scripts.
If you decided to create a game where you could move around a location, take items, use items and objects within rooms, and win / lose then you can do.
The aim of AGE was always to have some funky plugins that will allow it do more interesting and in-depth games.
First up though would be a translation system. It's been started but as it's not something I need right now, has been a bit grueling and has mainly led to me stopping development for now.
Up next is an insult fighting plugin. The LucasArts SCUMM engine games fit into AGE quite well, if we had a couple of additional features. To test this, I plan to write a plugin to match the insult fighting from The Secret of Monkey Island. It'd then only need a plugin to keep track of how long you were holding your breath, and you'd be able to create an audio version of the classic game.
Another plugin that'd be useful would be one that allowed you player statistics and health. In it's basic form this would make the Knightmare series possible, and a more complex one would allow you to recreate most of the Fighting Fantasy series, although that would also need a second plugin to keep track of the various monsters and how a fight should work, although that's likely to be similar logic as the insult fighting plugin.
The code can be accessed via Github.