2011-06-05 - Working out where I left off

I’ve gotten to the point where every time I get some time to work on metal crusade (usually over the weekend) I have to waste a lot of time trying to figure out where I left off (I do leave myself notes and they do help but not much).

This is because things now have to interact with a lot of existing systems in the game and every time I have to reacquaint myself with them. It’s my failing at encapsulation I guess. I need to figure out a better way of carving out some continuous time for development.

Currently I’m working on the reputation system that allows factions to create policies. If you attack a group belonging to a faction it will turn it hostile and possibly also turn its parent faction hostile towards you. Since I allow faction hierarchies and factions may switch sides this needs to be reasonably robust. Lots of big picture thinking hence my problem outlined above.

But what I’ve been thinking about most recently is controller issues. The game is being designed assuming you have a mouse and keyboard to use but has a facility to accept any input given it can be translated somehow into an absolute position on the screen and has lots of buttons available. Most of the functions are top level and there’s little nesting – this requires 1 to 1 key to function binding. What I’ve been thinking of is trying to come with a function nesting scheme that would allow you to use something with only a couple of button available. Think the menu system of I-War which lets you use a controller to navigate and toggle functions which would normally take up a whole keyboard worth of bindings. This however obscures the view and adds time to reach every function. Other games do away with nesting and make buttons behave intelligently depending on the situation – the action button approach where you press X to do anything that is appropriate here. I can’t see this working given the multitude of options available to you all the time.

Some solutions seem obvious. Can’t have dedicated speed buttons? Use only two buttons and a continuous press will go full speed, single presses will go in steps. The input translation is done per device so this can be isolated from the game allowing the input scheme to be separate from the keyboard one.

But the functions are just too numerous. I’m leaning towards nesting menus but having as much controllable automation as possible. If I can’t have a button reserved for releasing coolant then maybe setting simple rules for automatically releasing it would solve the problem.