Nigec’s work on a game-editor got me to thinking again about editor design (kind of a specialty for me)
The FAIL in all game editors I’ve encountered is making logic easy. Problem is, it just can’t be reduced and you have to think like a logic computer to describe anything but the simplest of situations. Whether you are using a text language or a wizard, you will ultimately have to think the same. None of them really give any new power to the designer, just some convenience (and inefficiency) of doing something graphically.
This morning I had an aha thought and I just want to share it.
I haven’t seen an in-game editor taken to this level.
It essential expands the graphical design phase to the logic that drives the game, but instead of forcing the logic you start off with an open game and play it like it is supposed to play. The initial game logic is very simple (ie every node link turned on) and driven by defaults and then would get increasingly sophisticated as it is played through over and over. Eventually it appears to operate correctly and then you beta test the hell out of it.
This acts very similar and integrates with the in-game editor for building up graphics but the difference is that the editor is capturing WHEN things are being turned on or off, and using that with all the other elements in the game to create the logic.
That breaks up the design into two phases: phase one builds up all the default graphics and audio and logic-state of everything like a normal editor would.
Phase two would continue phase one activities but now everything has a default and when you change anything, WHEN it was changed is also captured. This is used to build cause-and-effect logic throughout the play sequence (‘sequential logic’). When you make a change to something, the state of everything else is captured as well and used to create ‘A = B or C’ type of logic (‘parallel logic’), like a 4-dial combination lock, for example.
How well this works depends a lot on how the particular game engine is designed. Dagon has some good structure for this, like the concept of node-sounds overriding room sounds.