design pattern: zoom

Scale is often a problem to solve in design. You have a sophisticated system for modeling how individuals function and now you need to handle a whole battlefield. Or conversely, you have a system for solving one big thing and you want to handle details. One solution is more subsystems. Another is zoom!

zoom in

So from my example from the previous post, I have a simple one-roll system to resolve conflicts. But now I’m faced with a whole battle scene — a complex problem of interacting parts. Now, sure, player characters can only have a limited impact on such a situation but still we find that one roll, led by one character however well supported, is just not satisfying. We want to draw out this battle.

001
Zoom way in if you need to! I am naked in this picture. That’s how powerful zooming in is.

A good solution here is to zoom in. Take your mechanism and apply it to details. In our case we treated the battle as a montage and resolved each vignette in the montage separately. This draws out the battle into multiple scenes and engages everyone. And by side effect creates a rich fiction from the multiple results with which to interpret how the whole battle went.

Zoom in when your system or subsystem is too simple to be satisfying the context of a larger scale. Drive the system towards the scale it works in.

zoom out

Conversely, when you have a nice sophisticated subsystem with lots of moving parts and want to deal with a larger scale you risk being overwhelmed. Consider how characters in Fate work — now try to run a battle with fifty of those characters. That will never work!

The solution (and in the case of Fate this is already well known, but it’s a general principle that in no way needs to be confined to Fate) is to zoom out: treat an army as a character. Treat a city as a character. Apply your system as an abstraction over the larger scale, finding whatever is best represented as a character at that scale. Or whatever component you have enough detail to serve as a model. Can your car subsystem be zoomed out to apply to a squadron of tanks? Can your city model zoom out to be a planet?

Certainly, however roundly derided, this was done successfully in the d20 Gamma World game where communities were modelled as a special kind of character. I’ll contend that any system can do this. I’m pretty sure we hacked AD&D to do this in the 70s.

Zooming out is recognizing that your complex subsystem is already an abstraction and further abstraction will not likely hurt it.