Monthly Archives: August 2009

Of Mirrors and Runframes

The best you can ever do with a project like this is to keep pushing yourself and trying your best. Often, when the context is as easy ‘n’ totally cas like then it’s hard to remain disciplined. I’m extremely bad at this. Recently I very much wanted to try to shed this taxing trait, and after a thoughtful chinwag with Fet, implemented a simple system of understandable boundary-creation and deadline-setting. The complication with our particular situeé is that there is no reprimanding hand to turn us should we be unindustrious. Well.

So far, over the last week or whatever it has worked surprisingly well. The major, and difficult task of re-redoing all of Vivienne’s animation frames and modifying them for a new context is done, and soonly we should have all of the materials we need to fully animate Viv in game.

I don’t want to let up, this pace is great!


Today I worked on the hit points system for the main character, and the damage and dying mechanisms that that implies. Now the character has a hit point total, can be hurt by enemies and their projectiles, and dies when reaching 0 hp. Pretty basic stuff, but it was taken out for the sake of simplicity when I copied the ship code over from Soft Landing, and it needed to be rewritten.

Thankfully, the code to do all this, including flashing Vivienne red and making her invincible for a short mercy period after taking damage, was quite easy. It only took about half an hour, and worked the first time I tried it!

This should pave the way for building our first few fun, challenging levels, now that the presence of enemies in them actually has some consequence.


Over the past couple of days, I’ve done a lot of work on the equipment system. It was harder than I expected, but now you can equip various types of items that determine how your attack works. This is the core of the “algorithmic shooter” concept we originally devised together. In Paraplu, your attack is calculated based on three types of equipment. From our internal planning site:

– Weapon determines ROF, bullet type, range, damage.
– Costume adjusts ROF, damage, range. “Firing upgrade”. No costume should be objectively better than another, and most should offer similar factors of improvement. We want costumes to be valuable and interchangeable throughout the game.
– Accessory adds special effects of all kinds: number and direction of bullets, explode on impact, swirly paths, poison, fire, et cetera. “Meta upgrade”. Practicality of these can vary widely.

Mirror Match

I have got the mirror system working, basically. This is how you equip weapons, accessories, and costumes. It was remarkably difficult to make a system that simply opens up a menu, then opens up another menu based on the item you chose. Those old NES RPGs full of nested menus must be a lot more sophisticated than I ever imagined.

But, in the process of getting that working, I really refined the whole concept of the focused (foremost) interface box, and the management of interface modes. Now the game always knows pretty clearly what is going on, and it should be easy to add more multiple-step interfaces.

I also factored some code out into functions, for doing common things like figuring out the selected item in the foremost menu, constructing the syntax needed to show an item’s icon and name side by side, and unfocusing the focused box.