Keep dreaming is the result of an 8 week school project, in which we - a group of 8 students - made a dungeon crawler. The engine was written in C++ from scratch. Our team was an even split of developers and artists/designers.
For Keep Dreaming I took on the role of “lead-tooling”. My main interest was to provide ways for the artists and designers to add content to the game. Ideally they’d be able to build a whole campaign without having to ask the programmers to incorporate something into the engine.
A bunch of editors were created for various things such as levels, items, monsters, and dialogues, in Adobe Air. I also wrote their counterparts in C++ that interpret the files outputted by the editors. For example, the dungeon generation algorithm would gather room data from the content folder and place the right assets following rules set up by the artists. Scripts could start up a dialogue, which fed data back into the script.
I also set up my own, really simple, scripting language from scratch that was capable of excecuting the common commands of our engine, so that the desingers could create behaviour for our enemies and NPCs, as well as simple quests. However in the end the scripting language turned out to be a bit too harsh for the designers to quickly work with.
All the interpreting and asset loading was done in runtime, so content could be added without the need of recompiling. It reduced the dependancy between the disciplines in our team, which has greatly improved production.