Tuesday, August 13, 2019

Topological Construction Play With Scenarios

I love building things in games. Whether it's cities, planets, space ships, or nanomachines, I just love putting things together and letting them do their work.

But this kind of play requires careful construction. A lot of games rely on a "spreadsheet" approach, where the modules just add to numbers on a spreadsheet. This is almost universal on mobile, and is sadly common in indie games on every platform.

You want to build a city? Add a fishery for +5 food! A space ship? Add an arc reactor for +5 energy!

The problem is that spreadsheet play is fundamentally passive. The thing I'm building doesn't do anything, it just drifts along as a pile of numbers.

The things that bring a construction to life are the challenges it faces.

If I build a city, how does it fare in winter? If I build a castle, how does it fare against siege? If I build a starship, how does it fare during re-entry?

It's possible to push a spreadsheet to respond to challenges, but I prefer having more direct control.

I prefer topological construction. That is, where I put things matters.

The details of this matter. How do you make placing things relative to other things matter?

Well, there's three pieces: the mechanic, the load, and the scenario modules.

The mechanic is how you make the location matter. The key to the mechanic is that is has to be a local effect with consequences. It shouldn't be pass-fail: the whole point is to create a soft, widely interlocking mechanic that the player can adjust in a lot of ways.

For example, in SimCity, the main mechanic is traffic. Traffic produces pollution, and if you fall short, it also produces economic slowdown, unhappiness, and road failure (in that overtaxing a road results in a traffic jam).

In a space ship game, the mechanic might be power. Power transfer produces lot of heat and nearby elements may degrade, and the laser will fire slowly and weakly if you fall short... Or perhaps the mechanic could be damage, coming in from an outside vector, needing to be blocked and dispersed...

In a boat or plane game, the mechanic might be water or airflow - how it exerts pressure at various speeds.

As you can see, not all mechanics are internal-only. Many of them are about how your system interacts with the wider world. And, of course, most construction games have many mechanics, some larger, some smaller: SimCity has traffic as a mechanic, but also pollution, economics, happiness, weather, water...

The load is how the mechanic expresses itself in local space, and what modules the player can use to handle that.

For example, SimCity has roads for cars... and also road/car variants like subways, buses, etc. The player is given freedom to optimize: put in a subway from the residential district to the commercial district, and most of that kind of traffic will go through there instead of through the more limited surface roads, freeing those up for shipping...

In a space ship game, it might be power cables, capacitors, etc. Or, if damage is the mechanic, it might be armor, magnetic screens, shock absorbers, air gaps, shield projectors... the idea is to make it something local, so shipwide shield generators do not count.

In a boat or plane game, it'd obviously be the hull itself, both hull plates and elements that happen to be exposed.

Scenario modules are elements you install specifically to create or respond to scenarios. Sometimes these are not specifically spawned by devices inside the creation, but even then the creation will be arranged to respond to a specific scenario and you must allow that scenario to be fired.

In SimCity, houses and office buildings create an interlocked scenario where traffic goes from one to the other, then the reverse. In exchange, you get money. There are constraints to prevent you from crowding houses and offices together (noise pollution, etc) so you're forced to connect them via long traffic routes.

Of course, SimCity has dozens of traffic scenarios and the modules to affect them. Shopping centers, airports, external highways for import/export, farms, floods, etc. And SimCity also has scenarios that aren't traffic-related, such as whether to use green energy or high-pollution coal energy or a nuclear reactor.

Allowing the player to choose which scenarios to accept in which locations gives the player a lot of room to explore and express themselves.

In a space game, scenario modules would be things like engines, lasers, etc. These are installed with the understanding that they will be useful in the scenarios of the world at large, and that those scenarios are the ones this ship will usually be in. Of course, they create load by being used, but they also take up space and perhaps have a secondary load even when not in use...

In a boat or plane game, one scenario module set would be engines, with the idea that different amounts of different engines would propel you at different speeds and different heights. Are you building a submarine? A high-altitude spaceplane? Which engines you choose will determine what kinds of scenarios you can face, so those engines are a scenario module.

The point is to get the player to select what scenario challenges they want to face, and allow them to create something that deals with those challenges. The idea is almost never to deal with a single challenge, but is instead to deal with a parade of challenges, often tightly themed.

An example of this would be Dwarf Fortress, where there are four or five categories of challenge: invasions, mood swings, the elements, supplies, etc. The player builds their fortress with these considerations in mind, depending on where they built. Your fortress has a death zone for attacking invaders - but make sure you know what kind of invaders you'll be facing. You have a jail for depressed or berserk folk. You have dug deep to find water, and now need to pipe it up into the living quarters.

You can see how each of these challenges can be abstracted to traffic patterns with side effects. Here's the pattern for incoming enemies. Here's the pattern for water. Here's the pattern for farmers going to work. Here's the pattern for quickly isolating a self-destructing inhabitant. Here's how they interact - the farmers walk right across the incoming enemy lane, that seems dangerous...

Well, it's the same thing no matter what the theme of the game.

My space ship should face the challenges I want it to face, and that will test the setup I created.

Not a spreadsheet, but a living entity that responds and changes on a local level.