Tuesday, March 06, 2018

Methods of Topological Constraints in Base Building

I love base building games, and I love it when the base building is a challenge.

Most base building games are spreadsheet games where the checkboxes happen to be on a map somewhere. There's rarely much in the way of topological challenges - it's mostly a matter of building the right things in the right order and dealing with whatever semirandom challenges the game throws at you.

But I like topological challenges. So here's some methods to introduce topological challenges and constraints.

Time compression is by far the most common method. Most base-building games feature inhabitants which walk around your world, and they only do their jobs when they're at the right place. Since time is dramatically accelerated, this means that the time they spend going from A to B is a major part of their day. You can see this in games like The Sims, Dwarf Fortress, and any base building game with people that walk around and time that passes.

Personally, I don't much like this constraint. It is overused. It's especially bad in games where the worker AI is semiautonomous: you can't really optimize the worker's habits and instead just have to dully crowd things together and hope it works out.

Connective constraints are also quite common. This is when base component A has to be within X distance of base component B, or you need a physical wire, or some other method of constraining the shape of the base by requiring things to be within certain ranges of other things. Often this only applies to specific types of facilities - typically electrical. For example, in Fallout 4 and Rimworld you need to wire up your bases for electricity.

Some games are much more constrictive. For example, in MewnBase you have to have every pressurized unit connected directly to another pressurized unit. In Space Engineers, booster elements have to be directly attached to boostable components.

Some connective constraints are so common and natural that we don't even think about it. For example, every base-building game where you can build vertically requires the next story to be built on top of the previous story. This kind of "crushing constraint" we'll talk more about later.

Simple topological constraints is when you can only build in specific places, and the explanation is very bluntly "you can't". For example, in Dune you can only build on concrete, and extending your concrete is a major factor. In fantasy citybuilder, you might only be able to build on the valley tiles, and not on the mountain tiles. You can't build over there because you can't build over there. Simple.

This is typically a level-bound constraint - that is, the player is challenged to make their facility work within the constraints of the level. The connective constraints we discussed before are module-bound constraints instead - that is, these modules have the same constraints regardless of the level you're on. The two typically work in conjunction to put a lot of pressure on a player. These two constraints working together have produced some of my favorite base-building games.

Perimeter constraints are when there is a fitness test waged against your base in a topologically consistent way. For example, a windstorm blows through every month, always from the same direction. Invaders spawn at the edge of the map and march towards you. Space lasers hit your battleship from predictable directions while you're in battle.

While there are many kinds of fitness tests, these perimeter constraints deserve special attention because they are topologically enforced. This isn't you running out of gold or whatever: there's something producing stress on your topological perimeter, and you have to build your perimeter specifically to deal with the threat. Extending your base is often expensive simply because you have to start with your defenses!

Some perimeter constraints are more brutal. For example, if the island is constantly sinking, so after a while all your perimeter buildings are simply erased.

Topological stress constraints are similar to perimeter constraints, except they're not based around your perimeter. This is commonly used as a secondary enemy type in enemy-centric games. For example, teleporting troops pop up in the middle of your base, or there's lightning strikes that hit randomly somewhere in your facility.

These produce topological stresses, but at semirandom locations. For example, in Evil Genius, one kind of hero would dig through the walls of your base and pop up inside. The places they can arrive are predictable, but typically well inside your defense perimeter.

Building your base to withstand these arbitrary pressures is quite a challenge, and typically these sorts of threats are considered advanced or high-level, since building a functioning base in the first place is the main challenge.

There are other kinds of topological stress constraints:

Self-induced topological stresses are similar, but these are topological stresses you create with your own engineering. In a space ship game, this might be heat: you can't fire your lasers for long because you didn't put in enough nearby cooling. In a fantasy game, it could be height: building a skyscraper in Medieval Engineers is challenging because of the physics of building tall stone structures.

Personally, I think self-induced topological stresses are the most fun. I like to change connective constraints into self-induced topological constraints by adding in concepts of quantity, speed, and gravity. For example, many base-building games allow you to pipe water. In most games this is a simple connective constraint - pipes must connect to pipes. But if we introduce some basic physics, we create a lot of interesting new challenges.

At lower levels, piping water would be basically the same as if we were just doing connective piping, because that's how the physics is weighted. But when we try to bring in a lot of water, or water under high speed, or lava instead of water, we have to get really clever. Imagine trying to build a medieval castle and figuring out how to pipe in lava, or maybe using high water pressure to create a defensive cannon.

Moving constraints are rarely seen, but they are simply topological constraints coming about because you can move portions of your base. At the most basic level, this can simply mean locking the doors or raising a drawbridge when enemies attack. At more complex levels, it might involve sliding ladders, moving staircases, inflating rooms, tuck-away furniture... but I think this concept can be pushed far, far harder. We just generally don't think about it much.

Constraint Result Types
While we've talked about the kinds of constraints we might see, it's also worth talking about what happens when the constraint hits a fail state.

"Hard" constraints aren't ones that are difficult, they're ones which literally cannot be failed. You can't build on mountain tiles. You can build levitating buildings. If you somehow manage to get into an illegal state, the facility is erased - it collapses, explodes, etc.

A medium-hard constraint is one where you can get into an illegal state, but if you do, the facility doesn't immediately vanish. Instead, it is simply nonoperational or begins a countdown to death. This is often found with things like not wiring up your power-hog modules: the player is allowed to realize their mistake (or plan ahead by building illegally), then fix it up afterwards. This is also often found with things like structural stresses: the overstressed pipe doesn't immediately explode, first it springs a leak.

A soft constraint is where there's not really an "illegal" state, it's just that the state gets worse the more stress you put on it. For example, as you route more electricity through a wire, it gets hotter and hotter and you have to deal with the heat output. Or the taller your building, the thicker the lower story walls get, until they're so cramped that people can't even get through.

Anyway, those are some of my thoughts, mostly to myself. Let me know if you have any opinions on the matter.

Friday, February 23, 2018

Constructive Difficulty

As you know, I like construction games. I like building things.

But nearly all construction games make construction too easy!

I don't think the games are too easy. I think the construction is too easy. I don't need goblins attacking in waves or plague or economic challenges. I'm here for the building! Give me a construction challenge!

A long time ago, I fell in love with Medieval Engineers, because construction was a real challenge. At the time, there was no inventory: if you needed ten stone to build a wall, you had to get the ten stone within a few meters of the wall. If you were building a tower, you had to build a scaffold first, so you'd have a place for stone vertically close enough to the wall. In turn, the mechanical elements - carts and pulleys and stuff - were actually useful, because you didn't want to lug those stones up yourself, one by one!

In short order they added a magic inventory. Also, they made the buildings more structurally forgiving, because they decided to focus on warfare, and the idea was to see how well your building could survive bombardment instead of if your building could stand at all.

This ruined the game for me.

The problem is that Medieval Engineers is actually more about siege combat than anything else. With that focus, simplifying the construction and focusing on how the buildings survive sieges makes sense. It allows players to get to the meat - the sieges - faster and more robustly.

Of course, I don't give a single crap about sieges, so to me the game is now pointless. But I can't really blame the game devs for not having the same priorities as me.

I want to build. I want to have to figure out how to make a three-story building and use buttresses to keep it from falling over. I want to see how high I can build a tower, and what clever things I can do with internal supports to eke out a few more stories. I want to build a castle on a cliff and have to figure out how to wire it into the cliff so it doesn't go sliding down the mountain. These are the challenges I like.

This isn't limited to medieval stuff.

When I build space ships, I want to struggle to get them to work at all, so that when I make even small, functional rockets it feels great. Kerbal used to be quite good at this. However, as Kerbal came closer to release, they carefully dumbed down all the physics elements. It's now extremely difficult to get a rocket to fall apart: everything auto-welds and the forces have been much reduced. The game is much more focused on simple payload/fuel calculations, which isn't nearly as interesting to me.

Starship Corporation is a lot more my style, with intricate construction and extremely interesting testing phases. However, the game's difficulty doesn't revolve around engineering challenges, but around contractual obligations and research constraints. Once you understand the complex, nitpicky nature of things like power and oxygen, you can engineer a lot of interesting ships... except the game doesn't give you any additional parts or hulls until you've spent hours and hours and hours doing absolutely nothing. Again, the challenge isn't related to the construction, the challenge is based around some external measure of fitness that can't really be turned off.

There will always be some external measure of fitness, some external gating or rating system. Otherwise the game would be completely freeform. That wouldn't necessarily be bad, but it would fail to engage a lot of players. So the external ratings continue.

But these external ratings could be tied to the actual construction of stuff, instead of to how well you do things outside of construction, such as stabbing orcs or balancing a corporate checkbook.

A good example of this would be a skating game. The game is all about doing tricks and stunts. You earn scores based on your tricksiestuntness, but the scores are largely open ended.

The scoring is usually weighted to prefer long combos - meaning that you typically want to string tricks together rather than go for one ultimate mega-trick. This shapes the way you do tricks, but it's still fundamentally about your own stuntwork and allows for plenty of personal self-expression.

Alternate ratings systems - such as bonus points for being higher off the ground or moving at faster speeds - would result in different priorities for our tricks. Moreover, these would typically be just as easy to implement. It would be trivial to make it a toggle: join one team and get rated based on chained tricks. Another team, rated on speed. Another team, rated on height over the ground. Now the player has a ton of freedom to shape their own external ratings system to match their own stunt construction preference.

I want building something to feel the same way. I want my construction to feel like a neat trick chain in a skating game. Something I personally did, with my personal skill and priorities and artistry.

And that means it has to be hard to do, but also with enough slack that I can do a lot of different things for any reason I feel like.

Can that exist as a game people want to play?

I dunno.

Friday, January 12, 2018

Simple Mechanics for Compelling Games

Recently there's been a bout of compelling games using very simple mechanics. In particular, I'm going to use the mobile Marvel Puzzlequest game and Battle Chef Brigade as examples, because both create compelling and narratively-dense games using match-3 gameplay!

Using simple gameplay to make compelling games is far from a new idea. Every game does this. An RPG uses basic math. A shooter uses simple moving and shooting.

But what we're seeing these days is something a bit different. The play is more emergent than ever, and the emergent play is more narratively compelling than ever.

Everyone tells stories about that time something cool happened while they were playing a game. The ten-person raid that almost didn't work out. The time you drove a jeep into an exploding alien. When you did five no-scopes in a row. These emergent moments are extremely powerful draws, to the point where many games (like Overwatch) attempt to automatically highlight cool emergent moments.

But you don't need expensive content or complex mechanics to create those emergent moments.

For example, I just had a fight where Storm, The Thing, and Juggernaut fought Spider-Man and two of those Spider-Man variants or clones or whatever they are. It was an epic fight. Storm was about to die, but The Thing stepped in the way, took the blow, and went down himself. Even while unconscious, he shielded Storm as she called down a hailstorm. Finally she went down to a web-swinging kick, and it was just Juggernaut against them. The hailstorm helped take out two of them, but in the end, Juggernaut and the last standing Spider-man were going toe-to-toe. Juggernaut couldn't catch him, and was ready to fall over at any second. In a last, desperate attempt, Juggernaut slammed his helmeted head into Spider-Man and they both went down. A battlefield of fallen heroes. Well, the villains were stopped, and that counts as a victory for the heroes, even if they're all unconscious.

Here's the twist: that whole battle was a damn match-3 contest. There were very few visuals - just some particle effects and a few generic superhero poses flashed up from time to time.

Still, it felt properly epic in my head, and it was probably the best time I've ever had playing a match-3 game. Would it have been better with more graphics? Sure. But putting aside the juice, the fundamental play of the game allowed this story to emerge.

Regardless of anything else, we want our gameplay to allow for that kind of emergent narrative. How do we do that?

Well, first is contextual elements.

In the Marvel game, the context is really easy: the various characters on each side of the fight. We are familiar with most of the characters, or at least their templates, and therefore we can easily picture how things are unfolding. Even the assists have a character attached.

In Battle Chef Brigade, the characters on each side certainly have context, but since you're always playing the MC, that's not really a factor. Instead, it's the ingredients and judges you learn to identify. This takes more time than Marvel's context, because we aren't really familiar with the elements in BCB, but it's the same basic idea.

Context is mostly established at or near the beginning of a match. You know who's fighting, who the judges are, which ingredients are available, etc. Context can change over the course of a fight as well, but the starting context is critical. Here I think BCB does well: the various statistical effects are incorporated into high-context items like fun pots and strange knives. The Marvel game isn't quite as good, since they're just called things like "blue/green boost".

Endings are important, and not just statistically.

In the Marvel game, the end of the battle isn't just a win/lose. There's also how many resources you expended, and how long injured heroes will take to recover. But more than the statistical elements, there's the question of how the victory unrolled. Who gave the final blow? Who fell, when? I don't think that the Marvel game plays this up as much as they could, but it would probably hurt their monetization if they tried to push this any further.

In BCB, the ending also isn't simply win/lose. You are judged by several judges each. This not only gives a final win/lose, but teaches you more about the judges and what you should serve them next time. In addition to that, the dishes themselves are fun. You've created the dishes out of high-context ingredients, and seeing those transform is fun. Put in a lot of eyeball monsters, the final dish is an Eyeball Saute.

How things end is the capstone of your narrative experience. If the arches are in the right spot, the capstone holds everything together and you get a great result. If the arches aren't right, or the capstone isn't placed, the whole thing collapses into rubble.

Although Marvel's game can give us great fights with cool endings, that's not the norm. Normally fights fizzle out without much of an ending. This is made worse by the fact that the difficulty is front-loaded: the ending is almost always the easiest part of the fight, when you have the fewest enemies and the most resources to deal with them.

This isn't universally crappy, though. The statistical results of fighting mean that a battle's conclusion feels real and solid even if the ending was pedestrian. For example, if you win without taking a hit, you don't have to heal anyone and can immediately move forward, and that feels pretty great even if you were a set of level 100 heroes against a set of level 3 baddies.

BCB punches up the endings a bit better, because rather than constantly bickering with the enemy, it's a race against yourself, a race against the clock. You can feel the ending getting closer and closer, and the tension naturally rises as you move into various phases of play, judging for yourself how much time you can spend in each phase. On the downside, the enemy isn't really in your face as much. Trash-talk, interfering on the hunting grounds, and so on might help to alleviate that distance, but in the end it is an indirect conflict.

There are a variety of potential avenues towards making something like Marvel's game have better endings, and it all involves building mechanics that pace the ending better. Some of those mechanics might be in-match, such as enemies gaining resources or hitting harder as they get injured or lose team mates. Some of those mechanics might be meta elements, such as a penalty for taking overlevel characters into battle against weak enemies. Either way, they're just imaginary, there's no way to tell how well they would work without trying them out. There is a risk of locking the player into overly strict progressions, which would be just as bad as ending on a fizzle.

Midgame Management is another important element.

When you are playing a match-3, there's a lot of focus on the nature of match-3 play. Not only do you want to line up 3s, you'd like to line up 4s and 5s and double 3s and cause chains and so on. If there's no time pressure (like in Marvel's game) hunting for the best move can be as slow and careful as you like. For games with a timer (like BCB), the focus is typically on smaller grids and heuristic approaches.

Both games make "tending" the battlefield critical. In Marvel, enemy heroes get to take a turn, so it's important not to accidentally leave them with a good move. Done well, you can even trick them into destroying their own attack tiles! While there are only a set number of colors, the weights vary: some times you'll need to absolutely set up greens to insure you can stop rocket attacks, while other times you may want to hunt down that fist icon on that yellow tile. By layering effects on top of colors, the fundamental matching stays the same, but the weight of each color or region of the map changes dramatically.

In BCB, you add all the colors yourself, more or less. With a smaller battlefield and self-chosen colors, you'd think it'd be easier to manage. However, they take a Threes approach: blue isn't always blue. When you match some blues, they turn into a bigger blue that only matches with other tier-2 blues. And so on.

Suddenly the smaller battlefield is not "easier" but "more cramped". Every match you make leaves you worrying about how you'll fit in the next ingredient, and whether you can afford to temporarily knock those two tier 4 blues apart so you can make a tier 3 red... or will the pot overflow before you can recombine them?

These are very different approaches, but they both work. One creates midgame management by adding layers of meaning to various tiles or colors, whereas the other creates midgame management by steadily adding in more and more colors as you make matches.

Of course, neither is completely focused on their approach alone. In BCB specific colors do have different weights depending on the judges or the main ingredient, and in Marvel's game you do get special tiles like criticals that pop up from time to time.

Either way, adding depth to the core gameplay is an important part of keeping the player engaged. Both in terms of adding a difficulty curve and in terms of making context pop.

For example, when you are adding in your ingredients in BCB, you're thinking about whether you can get them to congeal correctly... but you're also thinking about them as Things That Exist. "Should I add more eyeball?" is a question that has both statistical and contextual meaning, and your decision will change how you think about your dish.

There are many ways of adding depth, too. For example, in addition to everything else, in Marvel's game, whoever has the best "attack value" with a given color makes an attack when you match that color. This also leaves them on the front line, and they'll take any damage thrown at your team. This makes managing high-power attackers with low health a fun challenge which evolves over the course of the game as health values fluctuate.

Mix-ins are a big part of making simple gameplay support complex contexts.

In Marvel, your heroes (very high context) are given additional context by their powers. As you make matches, you earn points of various colors, and the various heroes have powers that cost points or are affected by specific colors in various ways.

The diversity of powers is enormous. For example, The Thing has a power where he'll step in front of squishier characters and also create protection tokens, only moderately affected by board state. Kraven the Hunter will diminish enemy tiles and steal mana if there's a lot of enemy tiles. Hawkeye can create a critical, or wipe out a row of tiles. Storm and Juggernaut both have a green ability to smash tiles: Juggernaut smashes more tiles, but Storm earns mana from smashed tiles.

These modifications are not technically part of the match-3 game. They're another game layered on top - they affect each other, but are separate kinds of play. The link between the two is quite tight in this case, largely because there's no time pressure, so the player can just sit and think for a bit about the various options.

In BCB, the alternate game mode is much more distinct: you go out into the wilderness and hack apart monsters for ingredients. Since there's a lot of time pressure, the modes only loosely interlock. That way the player can stay focused - trying to stir your food pot while hacking up a wolf would be considerably more stressful and difficult.

In an RPG you sometimes think of these sorts of things as the other play loop. Like, you explore a dungeon, fight random monsters, get treasure, level up - and each of these are distinct elements.

However, in these simpler games we're seeing, the mix-ins are literally mixed in. They weave in and out of the normal play loop. It'd be like if you leveled up mid-fight and had to choose exactly what bonuses to take before the fight continued. In a classic RPG this would be a bit weird, because the battle system is engineered to keep your whole focus the whole time, so bopping off to do something else for a moment would break your groove.

But with these simpler games, you can wander in and out of the main play without really losing too much focus, since a glance at the board will remind you of where you stand. Moreover, this wandering can be used to radically increase the context of the play and provide additional story beats. When Storm summons hail, it's Storm summoning hail. It's not just a statistical effect: your board and play state is now coated in Storm's story beat. Similarly, killing an eye monster and bringing it back to throw in your pot adds a ton more context to your pot, much more than if you just had a giant stack of eyes on a shelf to throw in.


I used match-3 games as an example, but I think this can be done with any kind of gameplay. You can even dissect existing complex gameplay as two or three kinds of simple gameplay mixed in - running and gunning is [running] and [gunning]. RPG battles are [initiative] and [math]. It's a fun thought, although I'm not convinced it's a good universal framework.

But it can be fun to analyze that stuff with this new eye. If your game is [initiative] and [math] mixed together, can you use the lessons learned here to punch up the context, the ending, the midgame management, and the mixin? It might be really interesting to try to create an RPG that's been re-engineered from scratch to focus on in-battle emergent narratives.

Anyway, those are my thoughts. What do you think?

Thursday, January 11, 2018

Designing Inhabitant-Centric Games

This is an example game design for a person-centric base-building game. Sort of like Rimworld, except the people are the focus and their stories feel more solid, like in The Sims. See the previous post for details of the why and how.

One thing we need to do is abstract jobs more than Rimworld and other base-building games do. If jobs are simulated in the same space and time as the home, then duties won't be very isolated. This means it's difficult to control the way duties work and the events they cause, and it also makes the duty time 'permeable' - people can swing in and out as they see fit. Those are all bad things.

Therefore, our first goal is to create workspaces separate from our home spaces. The two obvious approaches are out-map and in-map jobs.

Out-map jobs are simply duties that take characters out of the densely simulated home area and off to somewhere else. For example, a farmer leaves to tend the fields, which are not part of the same map. Or a superhero leaves to patrol the city, which is obviously not inside the secret base. These remote areas can still be managed by the player - setting up exactly how many of what fields are where, or what the patrol route is - but they're not simulated in the same space and the workers are not available to the people still at home. Of course, out-map jobs are also good in that you can change the remote conditions without needing to change the local conditions, or visa-versa.

In-map jobs are when the worker is still in the home space, but not being simulated as part of the home experience. This could be something like a woodshop - the worker is technically still on the map, but they aren't wandering around or chatting or worrying about whether they need to go to the bathroom. In a superhero setting, this could be researchers or radio support or training - anything that can be done locally and allows us to lock them into a set pattern for the day. The difficulty with this approach is that it doesn't naturally give a schedule - you can train whenever, you can research whenever, etc. That makes it a little harder to create scheduling frission between different jobs.

Obviously jobs aren't the only thing that matter in our design, but with this in mind, we know that a big part of our design will be outside the map, or at least abstracted within the map.

Within our densely-simulated space, we need to design carefully. The purpose of this space is to help build personal stories both in gameplay and in the player's mind. Most of the base-building games that are popular these days are meter-by-meter designs. This has many advantages, allowing the player to express themselves freely while also locking the player into topological challenges presented by both the initial setup and the player's own previous base-building choices. It's a good way to create opportunities for the player to freely create a base with a lot of unusual elements both incidental and purposeful in an attempt to optimize performance.

But that's a base-centric approach. If we plan to be people-centric, we need our bases to support story and context, both with game mechanics and in the player's mind.

What can do that?

Well, if we want to create context, then we have to make the inhabitants relate to the space with context. That is, the people in the world have to want to use the space in specific ways that produce familiar or memorable stories.

In The Sims, examples of this would be the bathroom. There are rules about exclusivity in the bathroom - it's usually one person at a time, but perhaps family can use it at the same time. You can create different kinds of bathrooms to give the player funny stories about how the bathroom works - for example, sticking a window in it facing the living room. The exclusivity rules are in-game rules that are familiar to the player and create good context, while the funny design alternatives are mostly in the player's head, but still create good context.

Bedrooms are similar: is it one person's room? A big bed for the parents? A crowded row of beds for a bunkroom? There are in-game rules about the effects of these things, but even more important is how the player has expectations for these things and feels a heavy sense of context depending on how it's built and the people living in it.

Public spaces like living rooms are equally high-context. These are gathering places where people get together. Sometimes in passing, sometimes to cooperatively do something (eating, watching TV, etc), sometimes to do different things in the same area at the same time (one person cooking, one person dancing). Public spaces are further leveraged by scheduled events such as parties and family dinners. All of the various ways people can gather have context, and the space itself enables those contexts while simultaneously creating additional context in all the ways it doesn't quite fit. For example, if your party can't easily get food, you get more context: hungry guests moving into the kitchen instead of staying in a completely open space, now standing clumped together.

All that said, The Sims still uses a meter-by-meter construction system. Well, there are some differences.

The Sims construction focuses on walls to a great extent. Most base-building games have walls that are one tile thick: meter thick walls! But The Sims has paper-thin walls, and this allows the player to carve up map quite densely and with ease. This packs far more useable space into the same size map. This may sound unimportant, but it's critical. Not only can you fit more, larger characters onto the player's screen at one time, but the characters are also substantially closer together, allowing them to interact more regularly and freely. For example, someone in the kitchen can easily chat with someone in the living room, whereas if the walls were a meter thick, that would feel more like shouting range.

These seem like small details, but when it comes to creating human context, human details like that matter.

The Sims also has complex standing positions. Rather than "one tile per person", people in The Sims can stand in arbitrary places and in arbitrary groups. Although I don't think The Sims uses proximity as a reflection of intimacy, this is an obvious use: people who stand closely are more intimate than ones that stand meters apart. Similarly, people who sit on a couch together are in a different social situation than people sitting on random chairs.

In short, a dense space that can be used by people standing in a wide variety of configurations. A dense space with variable publicness and utility.

Combined with our off-map jobs, this clearly reflects a focus on someone's home, rather than the more widely-scoped mixed spaces of most base-building games.

Classically base-building games have avoided being solely about someone's home. Statistically, the other aspects of the base are more interesting. But statistically interesting is not what we're interested in. Topologically interesting, yes. But we're simplifying the statistical aspect, and a very easy way to do that is to chop off all the job-related base-building stuff.

From here, deciding a genre is probably critical, since 'home' has a different meaning depending on the genre.

If we set it in the modern era, it'll be very Simslike, because we've basically reverse engineered the core features of that game.

A superhero genre would work well. A team tower or secret base would be our home. Our characters could have night patrols, daytime rescue missions, media reachouts, school, day jobs, investigations - those would be off-site. On-site abstracted jobs could involve training, radio support, research, crafting, etc. This would no doubt be an interesting setup, but there is a weakness in that superhero bases tend to be attacked. This isn't as bad as in most base-building games, because 90% of your assets are locked into your inhabitants, not your facility. Rebuilding or moving is cheap enough. But players would still focus on defenses, and that may be hard to make feel just interesting enough without taking over the game entirely.

A fantasy setting could go rural or adventurous. A rural setting would allow people to go off map for things like farming, crafting, etc. It would also allow for interesting long-term setups, since sending children away for years would not be uncommon. However, I'm not sure that the feel of rural fantasy life would make much of an impact on the player.

An adventuring setting could be fun, though. You could run a guildhouse. It would have a lot of similarities with the superhero idea, but missions would often take several days, and managing funds would probably be more important. The medieval lifestyle simplifies the living space considerably, and characters would be far more likely to have to spend their leisure time together instead of separately watching TV or whatever.

A sci fi setting might be fun. You could create a Mars base or something, with dome bubbles for inhabitable areas. Within each dome, only thin walls would be used for weight and air permeability, allowing for very dense space. The lifestyle of science fiction might not have much impact on the player, but sci fi is more flexible than fantasy, so it's possible to just make their lifestyles more familiar even if it doesn't really make too much sense in the setting.

Well, you could also do something like Firefly, where it's aboard a space ship. The problem with this is that space ships often have very heavy, environmentally-sealed areas. In addition, there's not really any "off map" to go to, meaning that our job management might be hard.

A fantasy sailing ship might be fun, too. Job management might be hard due to the lack of 'off map', but I think it could be managed.

There are a lot of possibilities. I don't really feel the need to push further down any given road right now, though. I'll just let my brain rest a bit.

What do you think?

Tuesday, January 09, 2018

The Sims vs Rimworld

There's a new genre hiding in plain sight. A genre about people.

Base building games are including more and more "personal simulations" about the people in those bases. For example, in Rimworld each member of your crew is simulated in great detail. Not only their stats and skills, but also their moods, personalities, traits, and so on.

But it's difficult to feel the "story" of these people. Despite getting sad over losing their dog, or having a bad case of the plague, or dating someone, the character stories don't really have a strong impact on the player.

This is because those events are framed in terms of how they affect the facility rather than how they affect the person.

If someone loses a pet and goes into a long mourning slump, the player has to try and keep them from going berserk or spending days just wandering around. It doesn't even really feel like "the story of that person", it just feels like one of the cogs in your machine is wobbly.

Because it is.

A base building game like Rimworld is about building bases. It's about creating an ever-more-complex self-sufficient machine. The inhabitants, no matter how diligently simulated, are cogs in that machine.

In contrast, consider The Sims.

It's a different setting, but The Sims has most of the same kind of setup as Rimworld when it comes to people. Each sim has specific traits and skills and goals, they tend to have specific jobs, things can go wrong - it's very similar to Rimworld in that regard.

But the house they live in is not a complex machine.

Although you can build your house with astonishing attention to detail, it is not self-sufficient and doesn't need to be. As long as there's some source of money, everything else is optional, and there's no real need to optimize your performance.

The role of "day job" is less about optimally making money and more about providing a scaffold for life experiences - it shapes both the character that goes to work and everyone they share the house with. If things go wrong or get delayed, the house will not collapse just because the day job person is being suboptimal.

Compare this to Rimworld, where it's very likely that half your base will catch sleeping sickness and then whoever is awake will get too moody and start lighting things on fire, at which point a crowd of monsters will attack. Rimworld is about creating a base that can survive all these bumps in the road, even if they pile up. So anything that goes wrong is a bump to your base, even if on paper it's the story of how Anna is depressed and Bob is sick.

The Sims is just the opposite. If something in the house goes wrong, like a sink exploding, the player will naturally contextualize it as part of Anna's crappy day rather than a systemic setback. Even death isn't a sign that the house is doing badly, it's a sign that someone's particular story has come to an end. That may be very upsetting, but it's contextualized as that person dying, not your overall facility degrading.

I think nearly all of the difference in this contextualization is simply because the 'facility' in The Sims is not a high-stress facility. You don't have to worry about droughts or animal attacks or hurricanes. It's pretty easy to establish a baseline habitability, and then everything else is just improving things more or having fun with side tasks.

The lifestyle options for Sims characters are all side options. Some are very dense, some are not, but they are all optional. They provide a stable, steadily-progressing scaffold for the characters' life stories while also providing a steady diet of life events. For example, gardening: you don't have to garden, but if you choose to, it's a steady task that moves forward day after day. Your garden will never be attacked, and even if your whole garden was destroyed, your sims would not die: the baseline habitability would not degrade that far.

If we want to make a game that focuses on the lives of the characters, it's critical that their support system is straightforward and robust, so that setbacks can be judged as affecting the characters rather than the support system. Similarly, the progression system needs to be character-centric rather than facility-centric.

As an example, Rimworld's research system unlocks construction options for the whole base once someone researches how to build it. A character-centric approach would be to allow only that character to build it.

In addition to being character-centric, a character's chosen lifestyle/career/hobby needs to provide a stable, steadily-advancing scaffold, needs to exert pressure on their life and the life of those around them, needs to provide small random events and schedule burps, and needs to respond to a character's own personality/pressure/situation outside of the lifestyle.

For example, rather than the farming system Rimworld currently has (identical to other games such as Dwarf Fortress and Minecraft), we would instead have the farmer work fields on a schedule. The more fields, the more hours of the day are required, and time spikes at harvest and planting. The result is a nice, predictable, slowly-changing curve as to how much time they have to work and how much time is available for other pursuits. Their early-morning schedule would bump up nicely against someone who gets up later - for example, a researcher or carpenter.

In theory, the fully-simulated fields work this way. But in practice, there are too many variables. For example, just walking from point A to point B can take a lot of extra time. Also, the characters aren't great at schedules, and frequently get distracted by their overwhelming need to pick up a meal halfway across the map or whatever.

By reducing the simulation fidelity, we can allow for a more 'readable' character lifestyle. This will help the player to 'feel' the character's life, personality, needs, and so on.

And I think that is where a genre is hiding.

Right in there.

Wednesday, December 13, 2017

Generating Screen Time

The most underestimated element of characterization is screen time. How much time a character has in front of audience eyeballs.

The reason it's underestimated is because it's usually mostly automatic. You write characters for a story, you give them traits to help tell the story, you let them help tell the story. Even a first draft will have a fairly suitable amount of screen time for the various characters.

When generating characters randomly, this doesn't happen.

There's an urge to generate characters similar to the ones you might write. Similar traits, visual features, and so on. But this is 'cargo cult' character design: you're emulating the sizzle of a character without understanding the meat.

The meat is screen time. You have to generate screen time.

In fact, I'd wager generating screen time is cheaper and more powerful than generating characters. I bet you can radically extend and punch up a game by adding in generative screen time without any generative characters.

Let's show some quick examples:

In Mass Effect, all of the characters are designed to support the fiction of the universe. As such, even if they aren't chosen to be in your party, their plot arcs still play out. Their roles in the universe are distinct (at least in ME1 & 2), and therefore it's easy to remember who someone is even if you don't pay any attention to them after their introduction. In addition, they are frequently given 'tidbits' of screen time even when not in the main party.

We can break these methods into a few specific types, each of which can be generated algorithmically. I'll use Liara T'soni from Mass Effect One as an example: she's not a very good character but lots of people love her anyway. Thanks to screen time.

The first, biggest mistake is to think about character traits.

Traits are not what you need, and never have been. Instead, you need concerns that create screen time.

The two are very similar, but thinking about "concerns" instead of "traits" should help to drive your planning. Concerns can be things the character is concerned about or things the universe is concerned about, or both.

For example, Liara has a lot of very dull, stereotypical traits: she's cute, inexperienced, has a crush on you, likes Benezia, Spocky, a pureblood Asari, is clumsy, etc.

Converting these traits over into 'concerns' instantly helps us give her screen time related to them.

The concern version of that list might be: doesn't realize she's cute, very nervous about her inexperience, nervous about her crush, respects Benezia, wants to use logic to help, is both proud of and ashamed of being pureblood Asari, gets stuck in a lot of awkward physical situations.

By restating her traits in this way, we can quickly see a lot of scenes suggesting themselves. You can inject 'very nervous about her inexperience' into almost any scene she's in, turning her from a background character into a foreground character - giving her screen time. Any scene. You could be fighting monsters, and you could find some way to use it. "I've... I've never seen mufflebats in person before! They didn't seem quite so... vicious... in the holotapes!"

In more focused scenes, you'd probably want to use multiple concerns simultaneously - for example, she can be nervous about her crush on you and her inexperience at the same time. Or you can use contrasting concerns - she respects Benezia, but Benezia no longer respects anyone. She wants to use logic, but she has a crush on you. Etc.

Core Concerns
Notice I didn't mention Liara's core character trait: she's a nerd.

Core concerns are concerns like any other, but they're unique because they exist specifically to drive the story forward, to draw the player into the universe.

Liara's core concern is her obsession with the ancients. This is a many-pronged concern which allows her to help the player understand the ancient psychic visions, drive the player to explore new ruins, and just generally try to get the player enthusiastic about the plot by being enthusiastic about the plot.

Unlike more personal concerns, core concerns might be too hard to really generate or embed in scenes on the fly. They're too deeply tied to the story or the universe. It's probably best to simply assign them rather than generate them.

For example, if you randomly generate some royalty for your fantasy game, you can give them the core concern to pull the player into the world. King or queen, good or evil, old or young, they give the player an excuse to go various places and give the player an introductory letter to important locals. They drive the player's experience regardless of their other concerns.

Screen Time Types
Once you have concerns figured out, you need to convert them into screen time. Keep in mind that screen time requires that a character have the attention of the player. Being in a crowd shot doesn't count, nor does just randomly standing around in a room without having any interactability.

In-party commentary is probably the most subtle and reliable approach. The character simply has something to say over the course of the player's normal adventuring, without interrupting the player's normal adventuring. For example, they might comment on the place, or an enemy, or banter with another party member. These can be injected seamlessly or they can be queued up by interaction spots - for example, a nice view, or a burned-down house.

Radio commentary is a more aggressive version: the character has something to say about something, regardless of whether they're in the party or not. This is typically reserved for core concern stuff - Liara will chime in to tell you that the obelisk has been moved even if she's not in your party. Particularly good radio commentary might involve having the out-of-party NPCs doing their own, parallel thing, then radioing to report their own conclusions to their similarly-paced adventure.

Third-party commentary is when the character isn't necessarily around, but is being discussed anyway. It could be other NPCs talking about them, or a wanted poster of them, or an interview of them, or a note they left, or even just finding a relic and saying "hey, I bet Liara would like this."

Downtime commentary is a powerful and relatively new technique: between adventures, there's a base of operations, and the NPCs are scattered around in it. You can chat with any number of them before moving on with the story. This is a powerful approach because it allows you to remove most of the rest of the world's context: the chatting can progress the same way regardless of which sector of space you're in, regardless of which planet you just visited, regardless of who's in the party, regardless of who the player likes.

Fuzzy focus scenes are scenes where an NPC is obviously tangentially involved, but it's not really about them. For example, whenever you meet another Asari in ME1, it will remind you of Liara, since she was the representative of her race at the time. Or when you step in to help a doctor, Liara might step forward with good advice and back-pats, perhaps even have some scene-specific sub-branch such as manufacturing extra medicine. The focus is still on helping a doctor, but Liara is getting some screen time.

Focused scenes are when the NPC is the focus. Downtime commentary is the most common place to trigger these. It's not necessarily them solo, but they're the focus. For example, Liara might chat with you about your newfound psychic memories, or about her crush, or about the nature of the Asari... or maybe she has a scene where she and Tali are laughing at a technical joke nobody else understands, or she's helping Dr. Chakwas with some basic medical duties. As always, these scenes are built out of the concerns of the characters.

Arcs are when a series of interconnected events happen which focus on the character. Typically these are contiguous. Liara's introduction is an obvious example - most introductions are arcs. You spend some time chasing her around a facility while learning what's going on, and then you team up with her to finish the facility off. This extremely typical example is something that can be generated (or at least customized) for nearly any character, but make sure their concerns show.

Rogue Arcs are when an NPC switches sides, usually temporarily. For example, a hero might become a villain for a short while, or a villain could join the hero's side. Or maybe someone just takes some personal time and things get out of control. Because of the impact of this, the focus is usually on the rogue character. It has no other special features, though, and can be treated as an ordinary arc in every other regard.

Schedule Elements... well, a lot of generative games aren't so big on having a central plot arc, and instead focus on cyclic challenges. A character should have a distinct schedule during these cycles, making it possible to run into them in specific high-context ways. Also, they may choose to change their schedule to react to player activities. The two things to keep in mind are that their schedule should reflect their concerns, and participating in their schedule with them should result in progression, not just repetition.

Anyway, those are my thoughts:

When generating random characters, you should put a lot of effort into generating how they get in front of the player's eyeballs. Just giving them traits won't make the player care about them.

Your thoughts?

Tuesday, November 07, 2017

Building More With Less

In a "building" game, I always want to use fewer types of parts to build a wider variety of results.

I want the game to feel expressive, like the player can make a bunch of different things with a bunch of different goals.

For example, do you have a "gatling gun" component? Even if I am making a war ship, a "gatling gun" is an inexpressive element. It's going to be the same for everyone, take up the same space, do the same things in the same way.

Which is why you also have a "laser gun" and a "missile launcher" and a "sniper gun" and whatever other weapons you can think of... that's expensive. It takes effort to make them, space to have them in your game, and visual clutter to make them all selectable. Even after all that, they're still not terribly expressive.

Adaptive Elements

How about a system where you have a "gun" module, and then you can tweak the settings?

Change the accuracy, the range, the rate of fire, the ammunition type. To keep it balanced, you could use a points system - extra points in accuracy means less points for rate of fire!

If you allow for this, then players can change their weapon loadout to fit the role they want the weapon to fill... and use a lot of fine grain knobs to do it. As long as combat actually interacts with those stats, you've created a method for players to specialize in different combat roles using a very fluid, adaptive system. Depending on the metagame, players might start using unusual combos that canned one-off weapons would never have though of, like sniper missiles or hyper-accurate micro-range burst lasers.

If the settings reflect suitability for different roles in the greater game environment, they'll be great fun! Just makes sure your UI reflects their settings so the player doesn't forget what is what.

Soft Constraints and Constraint Systems

Rather than using a "points" system like above, it's better to use a soft constraint that ties into the greater game environment.

For example, each shot generates heat - the better the shot, the more heat. This is conceptually the same as a points limit, but since it leans into the rest of the world, other kinds of game concerns can affect it. For example, what about firing in short bursts and letting the weapon cool off manually? What about attaching extra coolant systems to cool the weapon faster?

In this case, the greater game system we're leaning into is heat management. This makes heat management a "constraint system", and those have to tie into as many different things as possible to make innovative and interesting builds possible.

For example, attaching "coolant modules" to the gun is extremely dull. It doesn't integrate with anything else. But if you have to actually pump coolant, now you have a topology constraint with a lot of possibilities. For example, maybe you want to run colder coolant? Now you need to build coolers. Is your coolant heating up as it moves between the ten things you're cooling? Hm! What do you do afterwards - vent the heated coolant out of the ship where it's likely to be spotted by enemies, or perhaps use it to pressurize living quarters? Run it around the perimeter of your ship to cool it and de-ice your wings? Use it as a low-grade propellant?

Depending on the scenario, the external parameters and concerns will vary - and the player's own ideas and goals will also cause parameters and concerns to vary.

You do need to make sure your UI can handle players grappling with these systems.

Carry and Produce

A related concept is 'carry and produce'. What we did in the last example was turn "heat" from a fungible number into a tangible good. Tangible goods offer a much more interesting challenge with more opportunities for fun constructions. This is especially true if two systems combine into a single tangible good - for example, heat combining with a specific kind of coolant into a single good.

While "heat" is simply a number, once we transform it into a complex good, it becomes both a challenge and an opportunity. Is it hot water? Glycol? Cool air? Liquid hydrogen boiling off? Each of these offers different specific challenges, but uses the same fundamental 'piping' mechanic. That same mechanic could allow them to be used in any other situation where either heat or that substrate is used: hot air becomes life support supply. Boiling liquid hydrogen becomes propellant.

This can be done with almost anything. For example, instead of generating "science points", what if you turn that into a tangible good - a science paper which is only converted to science points upon export? Now the science paper can be manipulated in tons of ways to make it more valuable.

Some players might specialize in quick-and-easy science papers for a trickle of science. Others might specialize in massive databanks to hold the papers until they are at the maximum possible size. Others might use supercomputers to refine the data until the science paper is small, but potent. Others might choose to generate science in different ways - often tied into other kinds of systems.

It's critical that the UI supports this - supports the player immediately knowing what is being carried and how it is being massaged. But if you can do that, you can create a wonderful opportunity for depth and expressiveness.

Changing Conditions and Triggers

One overlooked element in most construction games is changing conditions. Normally you just optimize for whatever the current situation is and that's that. About the only construction games with changing conditions are ones where you have to survive the winter, and that's often not pushed very far.

To keep using heat as an example: heat in an ice-cold winter is very different from heat under a baking desert sun is very different from heat at the bottom of the ocean or in outer space. Your initial instinct might be to simply make each base have a specific heat condition - this is an artic base, this is a deep-sea base - but that's something only beginners will find challenging.

Increasing difficulty is much more about the swing, rather than the baseline. Optimizing heating systems is more interesting when sometimes it'll be very hot and sometimes it'll be very cold. Designing a space ship that can fly through the atmosphere as well is more fascinating than simply saying "this is a space ship, that is an airplane".

In general, I think of three kinds of changing parameters, each of which increases in swing as difficulty increases.

1) Routine changes. For example, people going home for the night to sleep, or solar power only being available during the day. Combining routine changes can make for very fun results - for example, solar power is only available during the day AND at night a punishing dust storm rushes by, leaving an opaque layer of dust on everything. Now you have to have a setup that cleans solar panels or hides them at night!

2) Catastrophes. These are things outside of your control (although for game reasons the player may be able to trigger them). Fights. Plagues. Crashes. Winter. Holiday shoppers. Typically these are tests for how "disaster-proof" your design is.

3) Scheduled changes. These are things the player causes as their plans advance. For example, holding an election. Traveling to a new planet. Choosing to land. Giving crew leave. Refurbishing the facility.

In order for these situations to be fun, two considerations must be handled.

1) Soft failure. If the player falls short, they should be able to pull through with damage. This is also where beginners will start, so adjusting for failure should be something players can do manually, while panicking. For example, if a storm hits, players have to be able to order people back inside in order to weather it, and the storms should (at least at normal difficulty levels) not instantly kill anything caught out in them.

2) Programmable responses. The players should be able to trigger responses automatically using in-game objects. For example, allowing the player to lower landing gear when a particular sensor registers there's ground below, or automatically ordering people inside and barricading windows when a storm hits. These can be used by midlevel players to handle changes automatically, and by advanced players to create absurdly complex contraptions.

By the way, I am a big fan of moving parts - whole sections of facility that can move around. Normally this is implemented as full-scale facility elements being rolled around, and that's not a great solution because it's extraordinarily bulky. Instead, I recommend parts can fold up and unfold, allowing things to take up much less space when not in use.

An easy example of this: if you need to charge your laser using a big power cable, but also cool your laser with a coolant pipe, each can be folded away into a wall tile. Both can be folded away at the same time if you need to walk past. Then they unfold and fill the space as needed.

Anyway, those are my thoughts on base building. Use fewer parts for more expressive results by keeping these things in mind.

Let me know if you have any opinions.