So I’ve finally been able to sit down and work on Why Am I Dead, and I’ve gotten it to the point where I can say that I’ve pretty much finished programming it, and can now focus on writing the script and making the art. There’s a bit of functionality left to code, but it’s very small and very straightforward. Below is a quick demo of the core game mechanics using place-holder graphics:
I’ve made as much of the game mechanics as I can to be very generic, so actually filling in the content will be wonderfully straightforward. For instance when I write the script or change the maps, I won’t have to modify any .as files at all, and I’ll be able to edit the content very quickly and see immediate results. For map editing, I’m using the wonderful free program Tiled to generate the map, and then my game just reads through the resulting file and creates the map. For script writing, I’m just typing directly in a text editor what I want the dialogues to consist of (plus a few keywords here and there), and the game parses through that and creates the dialogue in OOP form.
Okay, so first, I’ve missed the rather arbitrary deadline I set for myself on Why Am I Dead. The reason could be summed up pretty well in this XKCD comic:
I spend so much time saving time
Earlier, I just wanted to have something — anything — done in Actionscript. For that, a week was plenty of time. But now that I’ve gotten something (anything) done in Actionscript, the programmer in me wants to make everything general, elegant, and reusable; and that takes more time. For instance, the non-procedural content in Why Am I Dead is 90% dialogue trees; so I thought why not program things so I can simply write all of the dialogue into text files and parse them into Actionscript objects to handle my dialogues? If I get it right that would mean I could create, for the most part, an entirely different game without touching the code. I could hand it off to a non-programmer and have them write their own stuff.
Alright, so it might be a bit overzealous of me to try and use data-driven programming on something this abstract, but I want to try it anyway. A 100% modeling of the data is impossible; I won’t be able to account for everything. But actually, I’m almost done as it is. And that’s a major step in completing this game.
But I’ve been doing other things as well. Part of the delay with WAID is that I’ve also been trying to piece my website together, and tie up a few loose ends on a past project. That past project is “Mandate”, a senior integrative project that I finished last month.
The seven major factions of the Warring States Period
To sum it up really quickly, Mandate is a historical simulation that takes place in ancient China. It’s a multi-agent system, meaning that there are lots of AI-driven characters running around independent of any central rules, making decisions that impact the simulation’s strategy. In addition, it makes use of fuzzy logic to try and emulate the internal politics of the factions at that time.
You can find it available to download here. Be warned, though, this is not an exercise in commercial game design or UI design; it is first and foremost an academic project. So its visuals are quite rough and its interface may not be clear to those who are not already familiar with it.
And that’s what I’ve been up to recently! Now that I’ve tied all of that stuff up, I can concentrate a bit more on Flash.