Monday, June 04, 2007

Choke Points and Vantages

I find that, in level design, the interesting elements are choke points and vantages. For example, having a view of the bridge puts you in a strong defensive position, while having to cross the bridge puts you in a bit of a bind.

Of course, bridges aren't the only kind of choke point. An open plain can be a choke point, or a single doorway, or a teleporter, or a roof... a choke point is simply any area where players can't pass through without encountering other players in the area. The terrain of your chokepoints depends on how far the players can see/affect and how obstructed the view is. A forest is not likely a choke point, but cut down all the trees, suddenly passerby are easy to see.

Some choke points have no vantage - such as an important but twisty hallway. Some vantages can see multiple choke points - or no choke points at all. Some games create "fictional" vantages by allowing enemies to teleport into choke points. Some vantages are also choke points. Some choke points can be bypassed, others cannot. There are lots of options.

The pacing of a level is largely determined by how the players encounter choke points, vantages, and "neutral" territory. Since the players are interactive, when the enemy encounters a vantage or choke point, that changes the "value" of the vantage or choke point. You don't want to try to break through a choke point that the enemy has a vantage over. But standing around on a vantage while nobody uses the choke point is pretty useless...

Now: Automated level generators generally don't think in this way. They usually build things pretty much at random, although they may occasionally create a choke point by accident (or something that is supposed to be a choke point, but isn't). In a 1P game this kind of iffyness can be partially dealt with by enemy placement. For example, in Diablo II, the levels were generated with choke points and vantages, and even though the placement made absolutely no sense, they were definitely choke points and vantages because the game put enemies in them.

I don't really think that's the best way we can do it. I think we can generate maps that are much more meaningful by creating meaningful choke points and vantages. If we can "tell" what a choke point controls/limits, we can even create a little story around it - a janitor complaining, or someone who wants to be closer to the action, or a tall tale of a battle, or whatever we please.

Choke points are created because people want to get from point A to point B in a reasonably efficient manner. Choke points are usually the result of natural terrain - either conforming to it (a road) or surpassing it (a bridge over a river). Some choke points are caused as a result of unnatural terrain - such as a castle gate to get through the "natural" castle terrain of being surrounded by a wall. But they still follow the same rule: there is a wall, and the choke point is to surpass it.

You can even go much further with a little more data. The castle is surrounded by a wall. Now we have to decide how easy the owners want people to be able to surpass that wall. Some castles are fortresses with only one, heavily fortified entrance. Others are more marketplaces and palaces, often with dozens of entrances that are barely secured at all. Wealth and size of wall also play a part in how the entrances actually look: a poor keep might only be able to afford a portcullis, while the emperor's treasure fortress might have a fifty-foot-long "airlock" with multiple portculli and lots of places for boiling oil and archers.

This sort of calculation gets more interesting once you realize that things change over time. It isn't at all uncommon for some places to get less popular and others to get more popular, which changes the stress on the various choke points (and, therefore, vantage points). For example, a new city built on the sea might have a serviceable port - until there's suddenly a gold rush and fleets of ships start pouring in with get-rich-quickers. This not only taxes the choke point of the docks, but also the various roads and resources of the city, causing resources to bulge and rearrange in different ways, causing a big change in which people want to go where from where.

I support this kind of "iterative" level construction, whether for a city or an office building. Put down resources and (optionally) a 'natural terrain'. Take turns building barricades to protect the resources; facilities to exploit and transform them; and creating bypasses and roads to get to and from the resources (new and old). You can even make a little bit of history while you're doing this, if you feel up to it.


What does everyone think?


Patrick said...

This sounds like a useful approach to doing a persistent MMO on the cheap using procedurally arragned, modular assets. I'm going even lower end though, and the two concepts are going to be really useful to keep in mind when designing levels for Loot. Vantages play an even strong role, since light distribution is a core dynamic to the sneaking and sabotage

Craig Perko said...

Sure, but don't forget that my definition of choke point is a point where the players in the area can't help but see each other as they pass by.