Gall’s Law is a rule of thumb for systems design from John Gall’s book Systemantics: How Systems Really Work and How They Fail. In it, he states: “A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.”
When it comes to making a game, the same principles have to be obeyed. Although you want a design document that gives an overall picture of where you’re going and what you want to make, it’s dangerous letting game systems evolve to more complex systems without solving the problems in the simple systems they evolve from first.
With last season’s game, Project Spaghetti, the basic mechanics were more or less proven in different settings: top-down gunfire is a simple system that works and pinball is a simple system that works, so there wasn’t much need to dwell on game-design decisions regarding simple systems early in the process, and most of the thought was focused on the complex system that resulted from their combination.
But with this season’s game, Project Skyring, the simple systems aren’t proven, so we’ve had to take a different approach and focus on very simple systems for a longer period of time.
For the first simple system, “circling enemies”, we have a total of four potential simple systems which combine “circling” and “flying”, many courtesy of viewer Pandabitz.
1) The original simple system is to allow the player to freely form circles, which meant that activating the circling mechanic would lock the view and let the player freely roam the window, laying down a path until they a) ran out of power b) connected the path to form a circle/shape or c) got hit by an enemy. The benefit is obviously the freedom and the potential for different shapes and strategies, while the disadvantage is the break in flow.
2) The second simple system idea is to have the player instantly perform a set-sized circle around enemies when the mechanic is activated, forcing the player to remember the general effect of producing a circle. The benefit to this approach compared to the others is that the flow isn’t interrupted with a transition from one system to another and the effect could be more or less instant, while the drawback is that the game’s core mechanic has less variety to play with.
3) The third system is to project a circle from the front of the player that grows as the input was held down and was activated on input release, at which point the player character would fly around in the path laid down. While there’s a break in flow, it isn’t quite as large as with the free circling version, and the finite number of states lends itself to tying the risk/rewards of bigger circles to how much damage they do and how much power they consume.
4) And the fourth simple system, which we’ll be tackling on the next game development show, is to lock the player’s pivot as soon as the mechanic is activated, starting the player character off in a circle which would get larger or smaller as the player added input and which would be completed when the player character finished the loop around. Although this hasn’t yet been implemented, the possible advantage would be that the flow isn’t broken as much as with the first or second systems, while the player still has some freedom with regard to their circle sizes.
One of the other simple systems being iterated on independently is the altitude system, and this is the system we’ve been exploring across three engines: GameMaker, Unity, and Unreal Engine, due to the various engine strengths and weaknesses. Altitude is a difficult thing to convey to players in 2D, which is forcing us to explore things like scaling and color schemes to get it to work in GameMaker, while we come at the problem from the other direction in Unity and Unreal, where we don’t need to worry about scaling, etc. to capture a 3D feel, but we do have to worry about making the visual design something a solo designer can accomplish without 3D modeling or animation.
Until we get the circling and the altitude concepts pinned down, we don’t want to evolve too far into any other systems, because Gall’s Law will start to kick in, and we’ll end up digging a complicated hole we can’t get out of without starting over, so, for now, we’ll keep going with Gall’s advice and get the simple systems working before letting them evolve into anything more complex.