Friday, April 19, 2019


I love mods, and people are talking a lot about mods, so let's do more talking about mods.

A lot of people are annoyed that Unity and Unreal don't make modding easy... but modding has never been "easy".

Flash, CryEngine, IdTech, RPGMaker... none of them are "moddable" right from the ground up. Modding has always been something the devs decide to include.

With that in mind, we can talk about mods in two ways. From the perspective of the person installing the mod ("player"), and from the perspective of the person making the mod ("creator").


From the player's perspective, there are probably three kinds of mods:

1) Piecemeal Content
This is content that will almost never conflict with other piecemeal content, except in the most trivial ways. Piecemeal content is probably the most popular kind of mod, including things like recruiting other players' characters, sharing messages about sun-praising, downloading vehicles from the workshop, adding new skins, etc.

2) Local Content
This is content which will conflict with any other content in the same locale. For example, if you install a mod to turn you into Bayonetta and a mod to turn you into Link, they won't get along. Similarly, you can't be in two levels at once, two missions at once, etc.

Local content can be turned into piecemeal content if you add a tool to help the player manage this kind of conflict - for example, Bayonetta and Link can both be "skin options" instead of simply overriding your appearance.

3) Core/Process
Some mods change fundamental rules of the game. For example, Skyrim mods that make character progression different, or change how weather works, or make you need to eat and sleep, or make the shaders work better.

Sometimes the mods are completely invisible, such as mods which allow other mods to work, or mods that clean up memory usage.

Frequently, core/process mods are part of a chain of required mods, like 'install the event mod, then the silent talking mod, then the progression revamped mod, and only then you can install the custom skill pack'.


The reason to think of mods like this is simple: it helps us to think about how mods work within our game. Can our game support piecemeal content additions? If the gameplay allows for certain kinds of piecemeal content, what is required to surface that and allow the players to load it in? If the game can support local content, can we change the way our game presents it to turn that into piecemeal content?

Can our gameplay support core/process mods? Can our game architecture? Can we revamp it? Can we create a tagging system so that we can have mods say what other mods they require, at what version?

The answer is rarely a flat yes. This kind of thing is a bit difficult to engineer, and it may damage your core gameplay. But even a small amount of moddability is a good thing, and you can leverage it to either make your game more appealing or make your game stickier.

For example, in Guacamelee, the only kind of moddable content is custom skins. However, they sent out custom skins to popular YouTubers, enticing them to play the game and be more positive about the experience. The modding made for great outreach.


The other half of the equation is how the creator of the mod thinks about the mod. This is equally important.

1) Diegetic assembly
When the creator never leaves the game to create the content. In the best case, the content is created simply by playing the game, but nearly all of the time this is an in-game editor. For example, you create your character, build your ship, assemble your house - all using an in-game editor.

The key here is that diegetic assembly happens in the course of normal play. A character builder counts because every player will use it at least once and consider it part of their playthrough, their experience. A mission editor generally doesn't count, because it's never used in the course of playing the game.

There is a challenge to keep the editor simple enough for everyone to use but powerful enough to let players create complex or nuanced results. There is also a challenge to leverage the editor: a character editor for a game where you only create one character is not as well-leveraged as a game where you create multiple characters over the course of the game.

Compare The Sims' character editing to Fallout 4's.

2) Tool-assisted assembly
The creator uses a separate tool to assemble the content. This tool may be in-game, such as a mission editor. It may be out-of-game, such as photoshop or visual studio or even just notepad. Either way, this is a thing the player has to go and do, separate from playing the game.

This is quite a hurdle. Few players will go and use a tool that is not required over the course of play. Because of this, it's usually ideal if you can leverage a tool in both the main gameplay and as an asset creator. Normally this is done by using the same tool, but having a creative mode where the player's specific play constraints are relaxed.

Done well enough, this turns into diegetic assembly.

Core/process mods are a good example of mods that are almost always created with tool assists. It is exceedingly rare for a game to allow its own rules and progressions to be overwritten in the course of play. Normally these mods are created with visual studio or notepad, the code then injected back into the game.

3) Hacked assembly
If the creator has no way to add their mod to the game, they may hack the game to force it to accept the new content.

You might consider this similar to a tool-assisted mod at first glance, but a tool-assisted assembly uses an injection method the developers intended for modders. That text you edited, that DLL you compiled, the game goes out to look in that directory for those things because the dev decided to support those kinds of mods in that way.

Hacked mods usually take advantage of things the dev accidentally left available instead of intended for mods. For example, they might be "trainers", hacking the game's memory space to give you infinite health or cash. Or they might overwrite the game's core assets with new assets.

As a game dev, hacked assembly is something to avoid. Mods assembled via hacking almost always conflict with other mods just due to how they work, so it's best to try and create a proper interface for mod injection.


When I think about mods, that is how I think.

What kinds of content can be injected? What kinds of tools can I use to make that injection easier, more useful, more potent?

What methods of creating content are there? What kinds of interfaces can I create to help modders create mod packs and chains of mods that don't conflict?

Unfortunately, no game engine natively supports this kind of thinking, because it's part of every individual game's unique design. There's not really any low-hanging fruit here: you have to design your game to be modded.

Wednesday, February 20, 2019

Adaptive Modules in Construction Games

One thing I like in construction games is being able to create different modes within a creation. For example, a car that can turn into a jet, or a space ship that can switch between science mode and warp speed mode.

Very few games reward this kind of thinking due to one big constraint: single-purpose, static modules.

Non-adaptive modules.

For example, if I want a space ship that can switch between science and warp speed mode, there has to be some advantage to switching rather than just being in both modes at the same time.

But the modules for science and warping are always the same size, always the same configuration, always require the same amount of power, etc, etc. The only "switching" we'll likely do is simply turning one or the other off to save power, rather than something that creates a fun visual or play impact like sliding parts around, expanding or shifting, etc.

There are a few ways to create the opportunity for players to build adaptive designs, and they all boil down to adaptive modules. Here's some types.

1) Folding modules.

If our science and warp elements can both fold down to take up less space, then we can have them share their expanding zone. To allow for more interesting results, we'll want to allow for at least some adaptiveness in the folding. Perhaps science modules come in a variety of shapes and expansion zones, while warp engines can expand arbitrary amounts, allowing us to pick and choose exactly how much space they share, when.

This can get even more complex with things like power capacitors and tanks being extended when full, etc.

The folding can also be complexly related to the flow of ship resources. Perhaps the science devices unfold and create a new control room people can walk into, meaning it has to be butted up to the pressurized section. Or maybe it has in/out fluid flow, and the position of the outlets changes as it inflates...

2) Expensive timing elements.

If our science and warp elements take quite a bit of juice, simply turning them off and on is important. But to make things feel meaty, simply turning things on and off won't work. We need timing elements.

Perhaps the computers take a little while to boot. The engines need to spool up. The science sensors require a massive influx of water to extend.

To make this really meaty, give us the option to accelerate the timing with outside resources. Computers boot faster if other computers lend it processing power. Engines spool up faster if you use a flywheel assist. Science sensors expand faster if you send them water faster.

Note that these all start up fine with no assist, it's a matter of time savings. That way, even newbies can create this stuff, no need to wire it up in a complex way to just get it working at a baseline level.

3) Incompatibilities.

If modules are incompatible, then turning them on and off is an important technique. To make this especially meaty, the incompatibility should be manageable in some way if you make your ship clever enough.

For example, the warp drive spits out a ton of radiation noise when active, rendering science sensors useless. Computers vibrate when in use, radically lowering the performance of nearby modules. Science sensors require 180hz power, while warp drives require 30hz power.

These incompatibilities mean you can't simply throw more power at your systems to have them all on at the same time. But you can design cleverly. Have an extending strut move the engine away if you need science sensors on at the same time. Have the computers on their own module off to the side of the ship. This gives a reason to create fun, unusual designs.

4) Service requirements.

Requiring human access can make your ships very interesting to design. Why is the engine on a piston rather than permanently floating way out behind the ship? Because that brings it in line with the rigging, so spacewalkers can get to it quickly and easily for maintenance purposes.

This does require you to put in some adaptive human access options. Extending ladders, cables, etc. But those also look great, so they're not a bad call!

5) Stacked modules.

It may seem obvious that every identical module should have identical requirements, but for the sake of making things meaty, the opposite is true.

If modules are stacked on top of each other in a specific way, they should have different performance stats and require subtly different resources. IE, every science sensor arranged in an exact row performs better than the last, but requires power at a higher hz, or requires more cooling.

This will allow players to stack or destack modules to fit their personal vision and constraints. One player might have five stacked science sensors and a big module for providing them with their complex support needs, while another player might have ten unstacked science sensors... requiring more people and more space, but without the complexity.

6) Careful design of multipurpose baseline elements.

Obviously there are baseline elements constraining your operational modules. The most obvious example is electricity, used in nearly every construction game. Other examples might be fluid, food, computation, etc.

Designing these carefully is the key. You want them to inspire specific layouts all on their own.

The easiest way to do that is to make categories of element, then allow a multipurpose system to handle anything within that category. This allows for the same infrastructure to serve multiple roles, while also creating bottlenecks. For example, pipes can handle water, fuel, oil, air, exhaust - anything that flows. Players can create huge numbers of dedicated pipes or fewer pipes that take up less space if they can figure out how to switch the load on the fly...

The basic approach I use is designed to make these baseline elements inspire interesting configurations.

a) Flow types: one type of module moves the generic resource around, one type collects it in a spot (often adaptively sized), one type pushes or pulls it, one type transforms or creates it. For example, pipes, tanks, pumps, intakes. Or network cables, tape archives, sensors, and computers.

This four-fold approach gives me a flexible way to drive different layouts by simply changing which elements take up space in what kinds of ways, or require which secondary resources to run. For example, there's a huge difference between tanks that can expand and tanks that can't. Similarly, there's a huge difference between pipes that take up one voxel space per pipe, as opposed to network cables, where you can bundle any number of them along the same one-voxel channel.

b) Reward both centralization and decentralization. There's beauty both in duplication and in centralization. People should be able to find a cool way to implement "a hundred pipes" approach, but also be able to implement a cool "one big pipe" approach.

In general, one big pipe is what players will tend to rely on if they're just piping lots of one resource. If every module requires water, there's going to be one big water pipe. But as the resources get more varied, the player will tend to go for multiple pipes. Whether this is different temperatures of water, or different fluids, creating converters or mode switching is overhead some players do not relish.

Having resources that vary inside themselves can be very powerful, especially if they can change state and be moved in another way.

For example, if the engine needs fuel... well, maybe each stacked engine performs better, but prefers fuel injected at a hotter temperature. Therefore, the fuel subresource varies on another axis (temperature), making wrangling it more complex without requiring any extra content. Clever players might supherheat the fuel into gas for fast transit, or even freeze it into wax for long-term storage.

Either way, this complexity should arise only as the player embraces it, since this complexity can create a difficulty cliff.

c) Allow suboptimal setups. Allowing the player to fall short while still having a decent result is critical, both for players that aren't great at construction and for players that are trying to be very clever.

An example of this might be if the science sensors require computation to run. If the player doesn't have enough, the science sensors continue to function, but at a reduced rate. Even at zero computation, the science sensors should still function a bit.

You can make this more complex by creating pseudogenerics. For example, the science sensors require quantum computing. Any kind of computer can generate quantum computing, but at less than half speed if they aren't quantum computers. This allows players to use somewhat unsuitable setups in a fun way.

Similarly, you might have pumps specialized in fluids... but they can pump gases a bit. Or visa-versa.

Combining these elements means the players have a ton of flexibility. It also makes for the opportunity for them to add complexity by creating switching systems to use the proper pumps/computers when required, while reusing the same generic flow containers (pipes/wires).

Allowing for extremely high-performance single-use elements is fun as well, but make sure they have other constraints. IE, the fuel-only pump requires tremendous cooling...

... anyway, them's my thoughts on the matter.

Monday, September 10, 2018

Character-Driven Game Design

Well, another day, another trailer.

These days, a lot of video game teasers and trailers are animated shorts with no relation to the gameplay. Today, League of Legends posted a teaser about an energetic, funny space ship crew and asked you to join up.

Of course, it's not an energetic, funny space ship crew game. It's League of Legends, meaning it's a MOBA - a plodding arena combat genre known mostly for toxic team play. In short, not energetic, not funny, not character-driven.

This is not a one-off. Virtually every major action game has been releasing character-driven shorts of extremely high quality and pretending it has something to do with the game in question.

It reminds me of the old days, when the cover art sold the video game. Except, of course, the cover art would be some Vallejo painting and the game would be eight pixel high sprites jumping from platform to platform.

Given the response I and many others have to these teasers, it's clear there is an interest in high-energy, cinematic, character-driven experiences.

But no games like that ever seem to come out.

Let's talk about it!

Hangin' Out, Havin' Ourselves a Parrrrtaaay

There are games with strong characters. For example, Telltale-style adventures. However, you can't really "hang out" in those games. The narratives are character-driven, but the games are narrative-driven. This is a bad fit for me: I care a whole lot about the characters I'm hanging out with, and the distraction of being told to uncover some ancient secret while fighting off invading ninjas just weakens the experience.

There are games where you can hang out. For example, open world RPGs. However, while you can hang out in the world, you can't really hang out with the characters. They're programmed to only really respond to specific world events. Worse, semi-open RPGs like FFXV or Dragon Age often ruin the hangingoutness with dull filler and melodrama in equal measure.

But I mod games. A lot.

A modded party member has the disadvantage of not being in the core event structure. They aren't introduced in some blazing cinematic, and they don't have loyalty quests.

This means that the modded party member has to make their presence known during normal play.

A lot of modded party members tell stories, crack jokes, sing songs, and randomly comment on anything and everything the game has to offer. This ends up making them feel more real than the core party members, at least if you're the kind of player that randomly wanders the world and never bothers progressing the plot.

We script characters to respond to world events. When we have control over the world events, we script them to perfectly match the specific events we've created... but that's a flaw. We need to get out of that habit if we want to let the player hang out with them. Because hanging out isn't specific.

There are lots of games with "specific hangouts". For example, chatting at the camp fire in Dragon Age, or private actions in Star Ocean. But these are tightly scripted events that are a facsimile of hanging out rather than actual hanging out. They're expensive to make and limited to play, and I think we can do better.

Structural Issues

We think about hanging out as being unstructured, but the truth is that it is very structured.

In order to interact with a character, you need a medium of interaction. A task, basically. Most tasks have a set of progressions that can be used to move the hangout along a fun path.

For example, if you're drinking in the bar with a fictional friend, what happens? Maybe they get drunk. Maybe you get drunk. Maybe they start a bar fight. Maybe someone at the bar recognizes them, and then something unfolds. Maybe they get hungry for real food and you change locations. Maybe someone else you know walks through the door and the dynamic changes. Maybe you look for dates.

Alternately, if you're playing video games, there's a lot of flexibility as to what game you play, whether you switch games, who tries hard or not, who wins or not, whether you start betting, whether people start getting way too into it, etc.

These progressions are at the heart of "hanging out", and they are also at the heart of how a character can express themselves.

Each character in the game can prefer different progressions. They don't need to be completely unique: a lot of characters can get drunk at the bar. But if the progressions go on for several elements, you'll see their uniqueness start to manifest: person A gets drunk and starts a fight, person B gets drunk and hits on everyone, etc. These are small, simple things to talk about, but this is the heart of how hanging out has to be approached: there's a task, and different characters want to progress or change the task depending on their personality, mood, etc.

This spectrum of progressions allows the characters to contextualize the event as they see fit, and to recontextualize a generic event ("at the bar") with a specific in-character event ("picking up guys" or "getting shit-faced") based on what progression they want to see.

Adapting to Existing Games

For example, in Skyrim you might be wandering the world map with Lydia, your dull, dutybound housecarl.

Skyrim has progressions built into its systems and maps. If you're wandering outside picking flowers, you'll run into options to fight monsters, go into dungeons, see wonders, change biomes, get rained on, go from day to night, find an ore resource, find a town... these are all perfectly valid progressions.

By understanding what progression Lydia wants to see while on the world map, she can make comments about what's going on. For example, if she sees a bear, she might say "that bear might threaten travelers, maybe we should drive it away."

This would be different if she saw a monster in a dungeon, where it's not a threat to a city. She might say "some skeletons ahead, I wonder if we can get around them." Or, if she sees a monster in a town, she might flat-out rush to attack, to protect the people of the city.

By allowing her to decide what the current context is, she can choose what progressions she'd like to see. This gives her dialog a lot more vitality than simply yelling "yahhh!" and charging at any monster you find.

However, this is still very shallow. Since Lydia has only dialog and the player has only action, it's a lopsided mess where it's difficult for the situation to progress in any meaningful way. In the end, it boils down to Lydia making comments on what the player chooses to do, just like in later games such as Dragon Age.

The simple fact of the matter is that hanging out is collaborative. Lydia can't really collaborate with the player in the gameplay as it exists.

Stop, Collaborate and Listen

One thing we can do to make this more collaborative is to let the player give dialog responses. However, I don't think that's a good approach, as it will lead to very repetitive interactions as you hang out over and over.

Instead, I would prefer to do the opposite: let the NPC offer action plans.

When Lydia says "that bear might threaten travelers..." two action plans might pop up and be selectable. "Take it out, I'll support you" and "let's ambush it, follow my lead" might be the two options (with the third 'ignore' option implicit). These are represented as dialog, but they're not simply dialog: they're functional plans. Not only do they determine Lydia's behavior, they can also embed bonuses: Lydia gets an attack boost if you tell her to take it out, and a stealth boost if you say you'll ambush it.

Moreover, these plans are excellent at advancing several progressions at once. Not only is Lydia advancing from "outdoors" to "defending the roadways", but she's also advancing along her "Lydia, stealthy supporter" or "Lydia, front line knight" character progressions. She may also progress on her personal opinion of you if you do particularly well or poorly, although remember that all such progressions are temporary. You'll hang out again some other time, and things will unfold differently.

These action plans can offer things the player literally can't do without the NPC, as well. For example, Lydia might say "oh, this is such a rich iron vein. Let's claim it for the city!" at which point you'll have the plan to claim it for the city: something you cannot do on your own, or with another character. Other housecarls might also be able to do it... but for other cities.

This combination of factors will hopefully make the player want to participate in these collaborative plans.

Save and Load Contexts

One technique that can help us add depth to the characters is to allow contexts to be shelved and readopted as necessary.

Our instinct might be that Lydia following us around is Lydia hanging out with us, and the whole day is one "hangout session". But that leads to problems, because the context might not progress at all. The player might literally gather plants for three hours straight, and Lydia's constant talk about what she'd like to do will get repetitive and futile.

Instead, she can simply shelve an intended progression when it falls through.

So if Lydia says "that bear might threaten travelers..." and the player doesn't engage, Lydia won't follow that up with "that skeleton might threaten travelers" and "that treant might threaten travelers". Instead, that progression is on hold.

However, if the player does engage an enemy on the world map - pretty much any enemy - Lydia will be able to instantly pick up the progression. "You'll never threaten another traveler!" she barks as you smash down a mudcrab or whatever. From there, she's in her "cleaning up the wilderness" context, which can be built any way the devs want. Maybe one progression is to attack stronger monsters. Another, less preferred branch is to attack weaker monsters. Monsters in another biome. Monsters marked as 'evil'.

This context is active, so Lydia won't say "that bear might threaten travelers..." because she's not in that context any more. Instead, she might see a bear and say "let's clean up this forest a bit!" in an attempt to progress along the biome path of her "cleaning up the wilderness" context.

Of course, once the hangout period ends (spending a certain amount of time in another major context, like in a city or a dungeon), the contexts can reset and she can start over.

This isn't an ideal solution, but it effectively allows you to script character events that unfold naturally and opportunistically as the player plays, rather than being segregated into their own quest lines.

Parties, not Companions

Probably the easiest way around the collaboration difficulties is to have more than one companion. If there are several NPCs, they can discuss and banter. This is something Dragon Age does well, but primarily by using random snippets.

We can choose to anchor the banter to contextualized progressions, instead. As an example, if you're wandering Fallout 4 accompanied by both Piper (reporter) and Curie (science robot), they'll both contextualize the wandering and have directions they want it to go. You get a sense of this in Fallout 4 as it stands: they have a variety of generic comments on situations you might encounter.

But by allowing them to comment to each other, you can build up a sense of progression even if the player ignores their preferences.

For example, if you find a few talkative ghouls, Piper might say "hey, we should get their story!"

If the player chooses not to do that and walks away, rather than something like "PIPER -2 FRIENDSHIP", Curie can disarm the situation with an excuse like "We cannot be distracted by such tings, we have important tings to do!"

Of course, the player avatar could theoretically also say that kind of dialog, but the player might not be thinking the same thing. The player might be thinking "sure, give me a second to raid this treasure chest first", which is very different from the dialog claiming it's something that won't happen.

If a third party says the dialog, being wrong is acceptable and can give rise to more complex lines of progression.

For example, if you do go back and talk to them, it's relatively easy to have remembered the original dialog, and now have different dialog. This can be quite generic. For example, as you approach, Curie might say "I remember zees people", then Piper can say "Now do we have time?" Or, if you're now just adventuring with Piper, she might say "hah, now that Curie's not around, we can do some snooping and scooping!" These are fairly generic dialog lines that can be deployed in a lot of different situations.

If we consider hanging out to be a task with a variety of progressions, then we can again run multiple contexts at the same time. We're progressing this specific subquest. We're progressing Piper's "search the wasteland for news" context, which may lead to her wanting to go home and write about it. We're progressing Piper and Curie's relationship with each other - again, it must be stressed that it's a hangout context, not a permanent progression. We're progressing Curie's "focus on the science" context.

By having many contexts which can be progressed, shelved, and activated at the same time, we can make the experience as character-cohesive as possible. From the player's perspective, it doesn't matter which context gets progressed next: they all have Piper acting like Piper or Curie acting like Curie, and for reasons that make sense.

It will require a bit of effort to create the engine to do this, though. You'll need to figure out the right generic dialog to switch or resurrect contexts, just for starters. It's not something I've seen done before.

New Hangouts

This is all about adapting the concept to existing games, but the truth is that we don't need to do that. We can make new games.

If they're intended to allow for this kind of thing right from the start, there's no struggle to make sure all the metadata you need exists or all the conversations have to work within some specific fiction: it's all designed from the ground up to work.

Moreover, it allows us to radically reduce the amount of content and gameplay we need to support, because this context-centric approach can use much smaller amounts of gameplay to accomplish the same thing. Rather than gameplay strongly relating us to the world, the gameplay is more about collaborating with a friend.

For example, you could decide to hang out with someone and spend the afternoon assembling ships in bottles. It's basically a minigame, but it's made much more interesting because there's a character-driven progression in play. The actions you take affect what the other people do, and what they want to have happen. Doing well at the minigame may be a bad idea... or, rather, doing well at the minigame may not involve actually building the ship in a bottle.

Hanging out and making ships in a bottle is not just about the progression of the task of ships in a bottle.

We've already talked about longer-term contexts like "Lydia's stealthy follower progression". Well, the whole point now is that the event progression is more about the personal contexts and progressions that our friends are going through. Rather than having one preferred contextual progression, the progression they want from this event is influenced by the progressions they want from their other, personal contexts.

You've going to have very different "ship in a bottle" minigames depending on whether your friend is drunk, angry at her parents, mourning the loss of a friend, nervous about a piloting test, or embarrassed that you found out she likes a terrible TV show. The progression of the minigame is not the point: the point is the progression of her personal contexts, as expressed through the progression of the minigame. Hell, she might even play the minigame without the player's input at all - the player can just watch.

We can spread this idea even further, into the world's overall state. Her personal context affects how well she can fly the ship, or how aggressively she fights. Whether or not there's actual gameplay involved with those or if it's just some flavor dialog, it will convince the player that there's a world and stuff happening.

One possible example leading towards this would be Dragon Age 3, just the parts where you decide who to send where, and for what purpose. You could hang out with someone, and then when you send them on a mission, they get better or worse results depending on how they feel. Their personal context will then be altered by the mission they just went on, so it's a good time to hang out with them again...

Anyway, those are some of my thoughts.

What do you think?

Wednesday, September 05, 2018

A Sense of Place

So, I really like games with a sense of place. Some days, I think it's the most important part of a game, more important than how the game actually plays.

But only some days: the vast majority of games don't give me any immersive sense of place.

I asked around on Twitter, and nobody chose the same places I did. They all had very different priorities. And it's clear that game devs share their priorities - especially clear, given half the respondents were game devs.

What they mostly liked was a sense of scale. Mostly cities with epic vistas and large scales.

I sure do like pretty cities, but that's not what keeps me coming back to a game year after year. I'd like to talk about what I like in cities and towns, try to nail it down so that I can build it myself.

So, let's start: one video game city that keeps luring me back is in Bloodlines.

It's not big. It's not beautiful. The design is blunt and uninspired. It has no redeeming qualities as a city or a piece of art.

But... I keep replaying the damn game, and a big part of that is how much I enjoy being in the city. There's a little fizz beneath the city that instantly smashes me into the game and keeps me there.

I think that's a good hint. Since there's not much distracting epicness, I can focus on the one thing I want to see more of, even though it's just a fizz.

Pace in Place

In most games with cities, the cities are subordinate to the wider gameplay. The city might host missions or objectives, but living in the city is not an objective.

There are games where the city is the main gameplay. For example, in Crackdown. Surprisingly, this seems to be even worse for my little fizz: it reduces the city to a mechanic.

The experience of being in the hubs in Bloodlines is different.

You are living in the city. Or... unliving, I guess.

You're existing in the city.

Your struggles in the game are simply struggles to continue living in the city. You end up fighting dangerous battles against ridiculously overpowered enemies, but the point is that, at the end, you'll get to go home and take a nap and then tomorrow you can maybe visit your friend downtown. Even the end boss is literally chosen by you deciding what kind of city you want to live in!

Over the course of your adventure, you establish a life in the city, with friends and coworkers and maybe someone to date.

You also get to know the city a bit better. Although exploring the city isn't really the point, you do explore it while you roam around trying to make a life for yourself. There are plenty of things to find - a few topological secrets, like the back entrance to the the pub. A few new people with new missions, such as Ash in the cemetery or the truck vendor that wants you to clear out a parking lot. A few areas that are locked and you'll have to remember later.

The pace of discovery feels right to me. In many video game cities, you explore to find random treasure baubles scattered around. But in Bloodline's cities, you search to find new people with fun new missions, new shortcuts, new locked doors you'll unlock later. You never feel like you came here just to get a mechanical reward: if you go into the back alley, you won't find $5 in a treasure chest. You will find a skeevy guy that wants you to clear out a parking lot.

In a theoretical modern remake, you might feel compelled generate these missions on the fly. But you'd have to be careful: the point is to make a life for yourself. When I clean out the parking lot, the skeevy guy not only gives me a reward, but becomes a better vendor. If you were randomly generating missions, you'd still have to make sure the rewards are about better living... and I don't need more than one skeevy guy selling me stuff.

If you look at the missions in these cities, nearly all of them are about living in the city. Either getting you established, or making the city safer for you, or making friends and allies.

Even though all the NPCs are barely functional weirdo jerks, they somehow become your barely functional weirdo jerks. Mission after mission, day after day.


The most obvious counterexample is Stardew Valley, or any similar game. They are about building a life, but in the most mechanical way possible. You literally build your life: more farmhouses, more crops, more ore, more machines. But the town is not really part of that.

The NPCs are rigid and inflexibly forced into your life. You cannot be allowed to alienate the shopkeep because there are no other shopkeeps. You cannot work for or against the mayor, because there are no other factions. There are few NPCs, and they largely exist to fill specific roles in the gameplay. Dating is the exception, but usually you can only date NPCs with no critical role, and therefore they have no actual place in the town. Moreover, you can typically only date one of them.

Although you can make friends, there's no particular change in the way the game feels, or your lifestyle.

This doesn't mean the games are bad. It means those games aren't what I'm talking about right now.

Extending That

If I were to imagine a game where this little fizz was turned into a torrential waterfall, we would need to punch the Bloodlines up without Stardewing it.

A big part of it is that the city is largely not interested in you. They don't like you, but they don't dislike you, either. If you want to make a place for yourself, that starts with proving yourself to them in their own personal corner of the city.

This is in stark contrast to most game cities, where the inhabitants are intended to pull the player into the game world and narrative. The NPCs in a normal game might welcome the player, or be hostile until a plot point, or they might just talk incessantly about whatever the main plot element in the area is.

These are all the wrong choice if you want to feel like you are making a life for yourself.

This doesn't mean they can't do those things. But the main purpose is make the player figure out how this person fits into their life in the city. Maybe the player decides they're a threat and sabotages them. Maybe the player needs their friendship... for now. Maybe they want to date this person, or just want them around as business partners or something.

And, along the way, the NPCs can be welcoming or hostile or exposit endlessly. But regardless of that, the player knows this is a person that will impact their life in the city, and they have to decide what kind of impact that should be.

Easy example from Bloodlines: when you meet the two-faced bar owner, she's friendly... but you know she can't be trusted, because you haven't earned a life here. Similarly, although the anarchists are unfriendly, you know they can be turned around and made friends if you can earn a life here.

If you're considering how to structure your missions, this is a good thing to keep in mind. Not only in terms of how the initial encounter goes, but in terms of the final outcomes: the player's goal is to be friendlier, sabotage, charm, alienate - therefore, those should be the possible outcomes of the mission, rather than choosing something like a "renegade" or "paragon" ending.

The design of the city itself is also important, because living a life means being in a place.

This doesn't mean the city needs to be beautiful or epic, but rather that these NPCs need to have lifestyles and locales. They have their life in the city, just as you want to have. By choosing who to rely on in what ways, you get an echo of these lifestyles.

This was one thing that really, really worked in Bloodlines: all the NPCs were vampires, meaning they literally don't have day jobs. Whenever you meet them, they're doing whatever they've decided to dedicate their life to, and that includes the lifestyle they've chosen. From the poolhall relaxation of the anarchists to the overly formal, excessively expensive meetings with the town boss, none of the vampires are ever portrayed as simply filling time with sleeping or working a day job. They are always living their life. Unliving their death. Whatever.

Contrast this to games like Fallout 4, where the only thing that defines your settlers is their day job.

Establishing a lifestyle is not something which has to be scripted. It would be relatively easy to randomly generate NPCs with specific lifestyles and specific methods of fitting into your life. But it would be difficult to randomly generate them in the right variety: NPCs come in packs, and often a pack of NPCs will have similar lifestyles and offerings, but subtly different ones.

If you do generate randomly, you'd need to think in terms of generating teams of NPCs rather than individuals that happen to be in the same place. There are a lot of fun scaffolds for this, such as the five-person hero team, but they'd all need to be adapted in order to make sure that the player has something interesting to gain from each one, and perhaps a reason to prefer specific members of the team over others.

All of this would need to be reflected in the construction of the city.

That in mind, the team should probably have a good time hanging out together in places that suit them. If their lifestyle together doesn't seem fun, that would poison the well: the player wouldn't be interested in fitting into their life. There's a lot of different kinds of fun: an annoying overlord can still provide a good lifestyle if the player thinks being rich and powerful looks like fun.

Near Misses

There are a number of cities that make me allllmost feel the fizz, but it fizzes out.

One set is the Citadel and your hub ships in the Mass Effect series. The first impression is very good, but it doesn't end up panning out because you aren't trying to establish a lifestyle. It's about already having a lifestyle, and getting to live it.

That's not bad! I loved hanging out with my buddies. But I never got to choose how people fit into my life. They were written in or out of my life at the scriptwriter's convenience, and that left me unable to get that fizzy feeling.

Most such modern RPGs give that same "alllllmost" feel, like Dragon Age.

Another example is The Sims. While I can choose which characters fit into "my" lifestyles, I can't get a feel for the city. Their lifestyles are encapsulated in their individual homes, and nobody is really integrated into the city.

Even if I go into the city and people are around, I know it's not really an integration. Their existence or lack of existence wouldn't change the feel of the city any.

There is one other example I wanted to talk about: Skyrim (or the modern Fallouts). These have lots of cities of varying size and shape, all stuffed full of NPCs that have opinions and lifestyles.

These cities create an itch I cannot scratch. Their characters have lifestyles and want me to help them, but doing so doesn't lead anywhere or provide me with a life in the city, because there's no reason to have a life in the city. If I decide to track down and kill the weird cultist... nothing changes.

While I do replay these games frequently, I typically spend less and less time being social in cities, more and more time doing other things. Being social doesn't really lead anywhere.

It does in Bloodlines. It always leads to a new life in the city.

... anyway, I wonder whether anyone else feels like this.

It might just be me.

Thursday, August 30, 2018

Player-Generated NPCs

Hey, let's talk about player-generated NPCs, and sending them to other players.

In order to turn player-generated content into content for another player, you need to add context and a reason to play. This isn't too hard in mechanically-oriented games, but in an RPG it's tough.

Imagine playing Fallout 4 and running across random player settlements. Most players make facilities that are focused on making the numbers go up. Recontextualizing that into an RPG point of interest doesn't work out well: you end up with a dozen nameless NPCs and a bunch of empty buildings with beds in them. Hardly compelling RPG content.

The problem is obviously in the recontextualization. The settlement was created to make numbers go up, and now you're trying to interpret it as an RPG town? There's no connection.

The answer might be to make the original context an RPG context, so the player's created settlement is RPG content right from the start.

Pushing Context In

Let's pretend we're designing a Mass Effect game: players create colonies, which are then exported and encountered by other players.

As you play through the game, you make various choices. You visit the turian homeworld. You choose whether to side with the turians or with the humans.

If you side with the turians, you receive a number of applications from turians, willing to move into any colony you make. If you side with the humans, you get human applicants.

When you build your colony, you can add any applicants you like.

When your colony is exported so other players can visit it, the game checks to see what they did on the turian homeworld. If they did the same thing, those settlers are friendly. If they did the opposite thing, those settlers are more hostile. If they haven't been there yet or didn't take sides, those settlers are just background color.

This is an extremely fast and easy way to push RPG context into your colonies, and then continue to push that context forward into other players experiencing your colonies.

Pulling Context In

In addition to this, we can use simple keywords to keep these applicants interested in similar conflicts. Those turian applicants came because you chose turians over human interests. That means they will continue to have opinions on decisions regarding turian vs human competition, or more generally turian vs any other species.

If you visit the Citadel and side with a turian shopkeep over a human shopkeep, the turians back at your colony will compliment you for it, gain loyalty, become more effective citizens. If you choose the human shopkeep, the turians in your colony will be a little annoyed and rib you about it, although there probably shouldn't be any statistical punishment for such a minor event.

If you visit the citadel first and choose the human shopkeeper over the turian, you'll probably get a human applicant. Then you visit the turian homeworld, make your choice there, and your human responds appropriately.

Since it's keyword-based, events can be done in any order, and mods can be integrated smoothly.

In this way, your colonies will have a vested interest in your continued adventures, and you'll be taking your citizens' opinions into account as you journey.

Generating More Context Globally

Tying your colonies into the galaxy is important: if your colonies feel entirely isolated, that's not very immersive. So your colonists need to do more than have generic responses to keywords.

They should put their thumb on the scale.

If you visit the turian homeworld, get some turian applicants, and then get into that turian-vs-human shopkeeper conflict, your colonists should call you up to chime in.

Here's the key, though: it should be the wrong colonists.

If the colonists that actually care about turian/human competition call up, they'll try to convince you to choose the turian side again. This creates a feedback loop where you have more and more pressure on you to choose the turian side of things. With no counterweight, that's not a good idea.

Instead, you should hear from different colonists with no stake in the turian/human competition, and they should put their thumb down on the other side.

For example, since you chose turian last time, a quarian might call you up and say the turian sold them a lemon last time they visited. The idea is to push the choice back into balance.

Basically, if NPC A has a vested interest in turian/human conflict, that causes a situation where NPC B reweights the conflict to make it hard for the player to choose a side.

There will be some conflicts where the player has a particular favorite. If they really like turians, then you might need to apply quite a lot of pressure to make the choice difficult. In situations where the player doesn't seem to have much interest and are easily swayed by the third party pressure, it makes sense to create additional conflict by having your colonists come in on both sides and have a bit of an argument about it. Raises the stakes.

Generating More Context Locally

You'll need to generate a lot of RPG-context content in the colonies you build. Otherwise, the player will get stuck in a statistical, base-building mood.

RPG rewards, RPG missions, RPG context deepening, and RPG/statistical linkups are the tools we'll use.

In short, we can generate random missions when you talk to NPCs. But these missions are not the generic fetch quest blobs you're used to: we can generate much more interesting missions because we understand how these NPCs got here and what they care about.

If you talk to the turian that applied because of how you helped his people, he'll generate a mission about turian/human competition. Perhaps it's entirely local: him competing with a human colonist, or perhaps him falling in love with one. It might be partially local: for example, buying a human grabloxotl to improve potato growth speed. It might be entirely nonlocal: a lost ship he wants you to rescue.

The sides of this conflict can be weighted understanding the player's recent turian/human choices. If you've chosen humans recently, this mission is a chance to prove that the colonist wasn't wrong to trust you. If you choose turian a lot, then this is a chance to do some dirty work for the turians... or perhaps a chance to improve turian/human relations instead of keeping them pitched against each other.

The mission generation does not need to be terribly difficult - pretty basic missions will do. Instead, the key is that they generate RPG context.

One kind of context would be to reshape the local context. If it's a turian/human local competition, helping the turian makes them the boss. Helping the human does the opposite. This will create RPG context in that there's now a new social context.

Another would be to link RPG context to statistical performance. If you help the turian, his stats go up. They don't gain levels otherwise, so this is important.

Another would be to give the player versatile RPG context rewards. For example, new applicants, new colonist gear, new permits to plant potatoes on a new world...

These generated quests intend to be a change of pace from the rest of the game, letting you 'come home' to do some unwinding. So they should generally be fun and silly, rather than grinding. The difficulty or time taken is not the point: choosing a side is the point. The "body" of the mission is just there to make sure you understand what's going on and what the stakes are.

Showing More Context Locally

The most difficult and delicate part of making the colony RPG-ish is getting the player to feel like their settlement is an RPG hub.

The player will only intermittently visit the colonies, will be focused on their statistical nature, and will probably forget the details between visits. So creating local context requires A) unmistakable, easy-to-read elements, B) remote-friendly elements so their video messages create context, and C) creating context via direct interactions when the player is around. Optional, D), linking colonies together to create "global but player-local" context.

A) Easy to read elements probably involve three things: colony decorations, colonist clothes/gear, and non-player-centric interactions.

These can all be used to create NPC-specific context, colony context, and plot/conflict context. For example, if there are bales of corn everywhere, you know what the colony's doing. If someone's wearing an elegant evening gown, you know they are a socialite and that the colony has a swanky side. If a boss is reading the riot act to a subordinate, you feel one way about it, while if they're gently guiding their subordinate, you feel another way.

These decorations can be generated randomly, or they can be supplied by the player. For example, if you back the human shopkeeper, rather than get a human applicant, you get an evening gown you can give to any colonist. This isn't simply cosmetic: giving a colonist an evening gown retroactively forces the colony to have a swanky side.

Symbolism is also a factor. Different colors and building designs give different feels, and having a bunch of turian flags waving tells you right away that this a turian-focused colony. These can quickly give you an overall impression of the colony.

B) Remote-friendly elements would be elements that show up in messages. This would be character elements that show up on headshots, background elements that show behind headshots, and topics of conversation. These should be focused on reminding the player about the nature of the colony, rather than telling them about the nature of the NPC.

C) Direct interactions are things the NPCs do to each other or to the colony. Too many games slot the inhabitants into either "work" or "sleep" and that's it. It makes more sense to use animations to tell you who these people are and their relation to the colony. So rather than digging in the plant bed, it makes more sense to show them teaching someone how to dig in the plant bed, or bragging about their plant bed, or anything that gives you a stronger impression of their social role within the base. This can randomized, or, again, it can be inherited from missions in the game world.

Recontextualizing for Another Player

When it comes time to export your colony for other players (or import their colonies), it's important to keep it as interesting as possible.

Recalibrating Opinions

Probably the most fundamental element is to simply recalibrate how the NPCs treat the player by looking at how this player has handled the same choice axis. If this player chose the humans, then the turians will dislike him. This can be scaled pretty easily: by looking how severely the player has preferred the humans so far, the turians can be calibrated anywhere between mildly standoffish to instantly murderous. Most of the time, it'll fall between the two - for example, they might interfere with your missions, or lock your ship down, or try to assassinate you in the middle of the night.

Obviously, these frequently become mission content.

Final Missions

Unlike the creator, the new player is unlikely to revisit this colony. So we can go all out generating missions for this colony: it's fine to blow things up and kill colonists. In fact, it's preferable.

These missions have the same basic role as the missions we generate for the creator, but the volume is turned way, way up. If the creator chooses humans, the turian might grump at them, or maybe even leave. But if the new player chose humans, the turians will start a mission to get vengeance. This will embroil the whole colony, and may involve impounding the player ship, launching assaults, blowing up facilities...

However, in the end, it's still about the player choosing. So even in this kind of mission, the player will be expected to choose between turians and humans again. This time, it'll be something like whether to save a turian child or let it die as you escape.

Aside from the mission, the colonies should generally offer amenities - shops, etc. The player may never visit again, but they should at least be able to do normal things while they're here, assuming the colony isn't specifically built to prevent it.

Of course, if a colony is too similar to the player's choices, you can always generate an invading monster or a weird disease or something. This will give the locals a chance to show off their social nature.

Leads from Elsewhere

Another key to integrating this player-generated content into the universe is to mix it into the universe. Partly, this just involves getting leads from somewhere else.

If the colony is heavily turian, then a player will get a lead from a turian: "my family lives here, you should go visit them!" Or perhaps, if they are anti-turian, a human: "this is a turian stronghold..."

More than that, additional content can be easily mixed into friendly colonies. Recurring NPCs, threads of ongoing missions, or minor loyalty events for your companions can be interwoven into the colony. Characters that are oriented around a conflict this player doesn't care about can be easily removed and replaced with known quantities from this player's game. IE, if this player seems to not have an opinion on turian vs human, those turians might be replaced with an asari psi-broker telling you where to get the next link in the psi investigation chain.

This can be punched up as necessary by making you have to rescue them from whatever's going wrong.

Generating these missions can be as complicated as your algorithms allow, as you can see. But even if it ends up fairly simple, it should hold up.

Recontextualize-Friendly Construction

Another trick we want to use is to leverage the simulationist nature of these colonies. Because we're simulating so much, there's no need to always just offer mission-mission-mission-shop.

Like in Skyrim, sometimes you'd visit a town just to steal things. It's really fun to try and figure out how to get away with your theft.

This is similar, except we have a wider variety of simulated objectives. For example, you can change who's in charge by helping them, giving them better gear, etc - or by harassing their opposition. You can change the culture by arguing about things - for example, if you argue that the turian culture is inherently corrupt, you can sway things towards the human side of the turian vs human conflict. You can hack computers, steal vehicles, reroute credits, teach children, rearrange their defenses, get them better deals on their exports, get them better gear for their processing...

These things are all already being "weakly" simulated. We had to, in order to create both the statistical and RPG contexts in the original creator's world, and to link those two contexts together. Therefore, we can expose some of that simulation and let the player do something besides chat.

We're not talking about deep simulations. I mean, in Skyrim you steal stuff, but the shopkeeper doesn't actually get any poorer. This is the same sort of thing: we expose enough of the system to let the player interact with it, but we don't have all the pieces deeply connected, and we don't need to.

Final Thoughts

That was long.

And some of it might be a bit of a stretch.

Fundamentally, I think we can give player-created colonies a lot of RPG context by tying the people, facilities, gear, and options to your RPG adventures.

And then I think we can wire that back into the world, to make your colony part of the RPG adventure.

And then I think we can export your colony to other players, and make it part of their RPG adventure.

What's your opinion?

Thursday, August 02, 2018

Action-Oriented Escalated Bidding

I've been thinking about new kinds of gameplay for MMORPGs, because I'm not happy with any of the current styles.

I love the feel of the "personal epic" games like Star Wars Galaxies, Star Trek Online, even things like WoW. There's a lot of joy to be had in running around a world in real time. But the combat in these games is always either so clunky it's painful or so action-oriented that you have to be a twelve year old with broadband.

Thinking about alternate combat styles, one with appeal is escalated bidding.

This kind of bidding (found in poker and many tabletop games) basically allows players to judge a situation and decide whether to escalate or end the round. It's easy to balance, compelling, and naturally cinematic.

However, it's turn-based.

It's easy to come up with styles of play that allow for this kind of combat, but the turn-based nature is hard to avoid. And turn-based doesn't mesh well with the epic personal feel I'd like in my imaginary MMORPG.

I was having a hard time coming up with escalated bidding that didn't involve turns, but I think I figured it out: it's just a simple rework of existing mechanics.

For example, you're playing Star Trek. You're wandering into combat with your space ship. What's the "escalated bidding" for this?

Well, it's the same as Star Trek Online currently is... just a few small tweaks.

One critical element is range. Tiered bidding is a great way to escalate. In Poker, that would be the ante, the initial bidding, and the final bidding - but in Star Trek, it might be shields, system, hull. Rather than having distinct rounds, it's based on range.

You start off at long range, taking shield damage. You get closer, your weapons tick over into optimal range... but, at the same time, you now take systems damage from incoming shots. You get even closer, your weapons are guaranteed to deal terrific damage... but now any damage that leaks through your shields will blast away at your hull... and some damage is always going to leak through.

Conversely, if you can stay at long range, your ship is not at risk even if your shields go down. Incoming fire will scratch your hull and temporarily glitch out your systems, but that's damage that can be rapidly and completely repaired.

To be clear: as your weapons enter optimal range, you take a lot more damage. The better you can shoot, the more you get shot.

This range element adds a ton of complexity to conflicts, because your systems-damage range may not be the same as your enemy's systems-damage range. A long-range torpedo boat may be taking hull damage from a small merchant vessel while the small merchant vessel is still taking shield damage! This means the small merchant vessel's shots will squirrel through the torpedo boat's shields, while the torpedo volleys will largely splash off the merchant's shields.

Matching ranges will be a major element of what ships you use, when. Party loadout becomes a really interesting challenge.

In most bidding systems, how much you bid is also critical. But in this case, the "bid" is how close you get, for how long. Starships have position and relative speed: committing to a deep run can net bigger rewards if you come out on top... but huge problems if a lucky hit knocks your torpedoes offline. Ship headings are another, interlocked kind of bid, if each shield quadrant fails independently of the others.

Additional bidding can be done using various one-off powers. This is a classic "cooldown" setup: if you overclock your reactor for ten seconds, you won't be able to do it again for another two minutes, better make use of those ten seconds well.

Unlike current combat systems which look similar to our bidding system, the cooldown skills in our bidding system would exist to gamble on the next few seconds.

You're claiming the next few seconds will be critical, either offensively or defensively. With the range-based tiering system and quadrant-based shields, it makes a lot of sense to focus our skills on being useful shortly before or after changing range tiers - either your own or the enemy's. Fire your torpedoes when the enemy enters into their systems damage range, regardless of your current range. Pump your shields just before you change to systems damage range, since the damage you take in ten seconds will be far worse than the damage you take now.

Offensive firepower should be tiered as well, basically turning it into a set of cooldown skills. A full barrage hits hard, but takes a long time to recharge. Smaller shots recharge faster - fast enough to do more damage overall, but obviously the enemy's shield recharge and maneuvering cancel much of that advantage out. Will you do some small shots as you close, followed by a full barrage when the enemy becomes vulnerable?

This timing-based "bidding" feels more natural than any kind of shared pot or other abstraction. This also plays up the differences between different kinds of enemies with different ranges, and makes engaging multiple enemies or being part of a team a very interesting tactical opportunity. Obviously, various shortcuts also have value: a stealthed warbird decloaking right on top of you doesn't need a magic "decloak and fire" special power. Their special power is that they're right on top of you: you're at hull damage range, and at least some of that firepower is going to leak through the shields.

This combat is extremely similar to the existing Star Trek Online combat engine. The tweaks are very minor: simplified range indicators, slightly different damage model, slightly rebalanced skills. But the actual play is so similar that people probably wouldn't have to think about it very hard: they'd just suddenly be having amazing, epic fights.

This model could also be used for ground combat in the Star Trek universe, since ranged ground combat is the norm. You could just have literally all the same things.

A Klingon with a blade can rush through blaster fire: their max range is quite low, which means their range tiers are tiny. The blaster fire would just burn their armor a bit. Of course, when the Klingon reaches you, they are well within your nastiest damage range, and are guaranteed to put you down in short order.

The same basic mechanic would work for any personal combat system to some degree. A Star Wars combat system could be similar, with the light sabering Jedi naturally being similar to a Klingon. A Force-user could also take medium-range powers like Force Throw or Force Lightning. These would extend their attack range... and also extend their damage tier ranges. Someone specializing in sabers would be able to bull through Force Lightning because it's outside their damage tier range!

Even in tight combat, you could still see variations. A long light saber seems like a great choice... and it is, against anyone with a gun. But against someone with light daggers, your melee range is actually outside their most critical damage tier, meaning they can hold you off without too much danger... but you're not so lucky against them. You'd have to use combat abilities to close the range or disarm them unless you have a lot of time on your hands!

The downside of this is the bidding, since at melee ranges you don't really commit to be at a specific range or a specific angle for particularly long. To counteract that, I'd recommend using "charge" skills which push you into melee combat with a large bonus for a specific amount of time, but then leave you with a big penalty until it recycles. In this way, melee attackers would choose how much to "bid" by choosing a light, moderate, or heavy charge attack. They can also do this while already in melee combat, of course.

A tiny change to a fairly ordinary combat system: your optimal attack range is also the range you take worse damage. From there, a rebalance to existing combat approaches should result in a really interesting, cinematic challenge.

At least, that's the theory!

Wednesday, July 25, 2018

Pacing Mechanics

I'm going to write a little about pacing mechanics, although to be honest I'll probably make a video on this topic once I've worked out the kinks.

Pacing mechanics are gameplay that exists only to keep the game flowing at the right rate, and with the right traction. In theory you could argue that all gameplay is like that, but pacing mechanics are specifically for that purpose rather than to be entertaining, challenging, thought-provoking, etc.

An example of this would be in an Animal Crossing game, where you can only harvest things once per real-world day. This gives the player a specific amount of that rewarding task each day: enough to call the player back (traction), but only a small amount, so they're encouraged to do other things once they're engaged (flow).

There are three basic kinds of pacing mechanic, as far as I can tell.

The physical play mechanic, like in the Animal Crossing games.

It lures people to log in each day, or on specific days, or in specific places. For example, Pokemon Go rewards players for going to new real-world locations, or physically meeting up with friends.

This is a bit different from the kinds of energy play you often see in mobile games. Rather than providing traction and flow, most energy mechanics simply let you play until you suddenly can't play any more... unless you pay money. The traction and flow elements may still exist, but they're weak, because they're not the point.

The structured play mechanic, where players are given specific, rewarding in-world tasks to be performed on an in-world schedule.

For example, watering the plants every morning in Stardew Valley, or having to return to town to recover mana in an RPG. These tasks give you specific things you are strongly pressured to do (traction), but also can only be done for a short while before pushing you to go do other things (flow). Typically, these mechanics adjust over the course of the game and to the preferences of the player - some players love visiting towns and talking to people, others just want to shop and get back out on the field.

Something like a hunger meter in a survival crafting game is not a structured play mechanic, despite appearances. The goal of a hunger mechanic is to push new players into growing food and engaging with a core construction loop, but the actual task (eating) is not a mechanic with any traction or flow. It's simply a mechanic to guide the player into engaging in the first place - more of a tutorial mechanic rather than a pacing mechanic.

This becomes extremely clear as you reach mid/late game and eating just becomes an annoyance rather than an opportunity.

The tiered play mechanic, where players can accomplish a certain amount with the setup they have now, and then need to find new resources.

For example, in Minecraft you can do only so much with materials in your starting biome. You are pushed to dig deeper, search further for newer resources. This contains a number of staggered resource tiers, culminating in things like creating a portal to Hell so you can mine it.

This is a very common mechanic, and can be seen in every crafting game.

However, there are a lot of other ways to do it. For example, in an RPG, you need to move onto the next town to get new equipment, new story. In Skyrim, you'll eventually need to either leave the woods for the towns or leave the towns for the woods, because you'll run out of interesting things to do.

The idea behind all these tiered mechanics is that the player chooses when to leave. Usually, it happens just before they consciously realize they're bored of the current options. Players build their cool wooden Minecraft mansions, and when they start to run out of steam they naturally consider going abroad for new materials, or digging down to find some redstone or something.

A counterexample would be a game where you have 1000 gold to spend, and then have to go earn more. This is, again, just a tutorial mechanic rather than a pacing mechanic. A pacing mechanic would be "no matter how much gold you earn, there are things which cannot be bought with gold."

How you earn gold could also be a pacing mechanic.

Also, it's worth noting that tiered play mechanics can easily go wrong if you give any hint that there are a certain number of things to accomplish. This is common in RPGs: sidequests are intended for players that enjoy faffing about and moving slowly. But they accidentally sidetrack a lot of players that don't particularly enjoy that, but see them as tasks to do rather than optional crap for more relaxed players.

Let's go into detail.

Now that you understand the intent of a pacing mechanic, what makes a pacing mechanic good, or bad?

A good example of bad pacing mechanics would be No Man's Sky, even after their most recent update. It's clear that the mechanics are built around the same concepts as things like Minecraft. There's tiered materials, unlockable research, different biomes, etc. Why does No Man's Sky only charm a few of its players?

It's because the traction and flow system isn't properly set up. It's got the same basic mechanics, but they're not engaged properly.

Their version of traction is to require the player to keep topping up their tools and engines and stuff. However, this is a stick rather than a carrot.

It doesn't pull the player in by offering them rewards if they do it, it punishes the player by grinding the game to a halt if they don't do it. It's got more in common with a cash shop energy system than a pacing mechanic, even though there's no cash shop!

The traction system of other games? Well, watering crops results in incremental progress towards harvesting crops. Also, it doesn't require you to wander across a new hellscape in search of water - water is right there, you just have to do the grunt work. Returning to town to restore your MP? That gives you dozens of opportunities to power up your characters, get new quests, and so on. Also, you can adjust your battle strategies to minimize the need to do it.

There is a hint of what it would be like with the right traction mechanic, since building your bases requires quite a lot of specific kinds of materials. It would be an opportunity for me to build a giant wooden castle, steadily exhaust everything I can do with wood, then begin building a metal underwater base or something. In this way we would get a nice, tiered setup.

In addition, the upgrades are not properly integrated into the pacing mechanic. In order to buy upgrades you need to wander the world looking for buried treasure, which magically turn into treasure points which your machines magically turn into new blueprints. This isn't necessarily bad, but it's not a good pacing mechanic. There's not much traction or flow involved, and it interferes with my ability to explore the nature of having a wooden castle. If I dig up more treasures, I should probably spend them on unlocking more advanced base equipment in the next base tier, rather than wasting them unlocking the ability to build a window.

If the traction side is flubbed, the flow side is just as bad.

I think the theory was that the limited inventory space would keep you from wanting to stockpile specific resources, meaning that you would be pushed into moving forward. That could have been a good flow, but it doesn't work in practice because the universe doesn't really support that kind of motion. If the game environment doesn't support your pacing mechanic, then your mechanic won't work.

There's some promise to the idea of compressing resources down into denser, more high-quality variations of themselves. This could theoretically produce a nice loop where you harvest a lot of a given planetary resource, spend some time condensing it into an easy-to-carry variant, and then move on once you have a complete stack of ultra-dense stuff.

I think a game could be built around that pacing mechanic really easily... but NMS is not that game. Instead, it features a smattering of annoying, slightly rare materials that take up way too much of your limited inventory space and can't be meaningfully compressed. Trying to hunt down rare materials would be fine in a game with different pacing mechanics, but these mechanics actually make that task extremely annoying.

This isn't to say NMS is "bad". It does hit the sweet spot for a fair number of people. It's simply that the pacing mechanics aren't really doing their job.

Conversely, there are games with spectacular interlocking pacing mechanics, and those are well worth studying.

Stardew Valley is probably the current king of this. With at least half a dozen interlocking, adaptive pacing mechanics, it appeals to a surprisingly broad player base.

Daily energy is the most basic mechanic. High-intensity tasks like harvesting, chopping wood, and adventuring can only be done sparingly, which pushes the player to then do low-intensity tasks such as exploring, charming the townsfolk, cooking, and so on. The low-intensity tasks show the player how to unlock more efficient high-efficiency tasks, which makes a nice circle.

Daily hours is another basic pacing mechanic. You can only get so much done in a day, even if you short circuit the energy mechanic with expensive foods. This pushes you to do at least some high-intensity tasks, rather than just doing a bajillion low-intensity tasks, to make the most of your daily energy.

Tending the farm (watering, milking, etc) is a structured play pacing mechanic. It gives you a mostly-reliable task to do, and each time you do it you get a little bit of gain - whether in the form of direct goods or moving towards a harvest.

Crop management (planting, harvesting) is another pacing mechanic, and allows you to determine how much farm tending you want to live with while also juggling your daily energy.

Tiered tools (sprinklers, better axes) is a tiered pacing mechanic that pushes you to do things besides simply farm, because they making farming more efficient.

Processing (jams, ores, etc) is another structured play mechanic where it takes time to refine things and you're rewarded for efficiently returning on schedule to set up the next batch. But, like all these mechanics, it's largely player-driven: players can simply invest in more hardware if they want to get all their refining done without needing to tend it too much... or they can slack off and only process a few things, because there's not that much of a need to minmax it.

All of these systems interlock, and are supported by the structure of the game's world. Each time the player engages with one, they are rewarded (traction), but only to a certain extent, then they are pushed to do other things (flow). It's an interlocking matrix of pacing mechanics, where the player can invest in a number of different ways to change the dynamics.

It's just a spreadsheet, sure. But the pacing mechanics make it a damn fun spreadsheet.

Plus there are some minigames if you need a change of pace.


Those are my thoughts on pacing mechanics.

What are yours?