Showing posts with label open world. Show all posts
Showing posts with label open world. Show all posts

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?

Tuesday, June 06, 2017

Structured Open Worlds

I really like open worlds, and games that let you play them in lots of different ways.

A lot of people make fun of the idea, and talk about how bland these worlds are. Well, that's worth talking about, too: what makes those people think these worlds are bland? Can anything be done about it?

Let's focus on the structure of open worlds, because open worlds are the only things that have this structure.

What's so special about it?

Well, it's all about loose-weave challenges.

In a linear game, the challenges are all carefully braided together. You are swept along at the pace the game allows, in the directions the game allows. On the plus side, that gives you a much tighter experience, which is why a lot of people probably feel the open worlds are bland. The loose weave doesn't intrude as aggressively.

In a generated open-world game like Minecraft, the challenges are largely unwoven. They don't really lead anywhere or connect in any meaningful sense, it's just a bunch of random things near each other by chance. This is too loose for my taste, since it's impossible to plan out a mission profile. It always devolves into a resource hunt, at least for me.

With a loose weave, you get clusters of optional entanglements. They are similarly themed and connected in meaningful ways, so you can immerse yourself into the region, plan out a plan, and understand the sorts of experiences you're likely to get while you're here.

To be crystal clear, let's give an easy example: the starting town in Skyrim.

In a linear game, the starting town would be rigidly woven together. You would be drawn into the story of the shopkeeper and his sister, the blacksmith and his family and the survivor from the dragon attack. They would have meaningful dialog and some touching moments, and at the end of their arcs there would be strong resolutions before you moved along to Whiterun.

In a generated game, a town serving the same purpose might exist, but it would be occupied by randomly generated inhabitants. There wouldn't be a strong sense of theme or progression. Quests, if there are any, would be limited largely to fetch quests or kill quests. There would be no sense of community or feeling that these people actually live in a town together.

In a loose-weave game like Skyrim, the characters are all defined and feel like they live in the town, but their plot arcs are left loose and unresolved. If you do their missions, at the end they say "huh! Funny, it looks smaller than I remember!" and that's that.

Obviously, this isn't as emotionally affecting as if they were tightly written and had proper character arcs. But because it is loose, the player can engage in a lot of different ways. Instead of doing the main plot, the player can choose to rob or murder, settle down and smith for a while, sell wildflowers to the shopkeep. With mods, you can try to recruit or date the various villagers, change and upgrade their houses, see if they survive a monster attack, defend them from a monster attack, be regarded as a bandit by them, and many other kinds of interactions.

To me, the replayability of these worlds is key: you're not talking about things the player "might do", you're talking about things the player will definitely do as they replay the game over and over. Mods are very useful here, since the player can change which mods are installed, but the fundamental loose-weave framework supports those mods by providing a foundation of sensible world design.

...

There are a lot of details to discuss. For example, each piece of loose-weave content does have to be woven, linked to other content. They also have to be clustered by theme and pacing, so the player knows what to expect and can choose when and how to engage.

The weave also has to be made of "playable thread" - these characters and buildings don't just exist to serve a plot element, but exist as physical and social objects in the game world. This allows the player to engage with them in any way they please. Ideally, the way the threads are arranged will produce lots of interesting challenges for a player that wants to try various kinds of play style. You have a hard time robbing the village shop because both the shopkeep and his sister are standing right there, as opposed to a shop in Whiterun where there's just one person and a shop full of corners you can abuse to hide from them.

The deep strength of this approach, to me, is that it creates a world I can be in. All the people and places make sense and are on-theme, from a bucolic little village to craggy abandoned forts on a mountainside to spider-infested swamps to an ancient town cut out of the rock itself.

This means that any thread I encounter leads to other, similarly-themed threads. If I find a bandit-infested ancient ruin, I know there will be other, similar challenges down the road. If I find a corrupt policeman, I know I'll face other corrupt individuals and those suffering from corruption if I keep moving forward. If I find an ancient barrow full of screeching skeletons, I know I'll find more of them. Moreover, for all of these things, I know I'll find some core element that "powers" them all.

This works both large and small. On a large scale, I get familiar with Whiterun and quickly learn that the "core" is the yarl. All of Whiterun's characters and buildings share a theme that is guided by and inspired by the yarl. On a smaller scale, I find a bandit encampment has a progression to it, too, ending with a bandit leader and their simple plan to rob travelers.

And it all makes sense. The yarl acts that way for a reason, so all his town acts that way for a reason. The bandit leader robs travelers because you're near a major road, and therefore that plan makes sense and all the bandits hanging around here make sense.

If you juggled the yarls around and put the corrupt boy yarl into Whiterun, it wouldn't make any sense. The center wouldn't hold. Similarly, if you stuck the bandits in a swamp, the player would raise an eyebrow at the supposed "heavy traffic" they're raiding.

This isn't simply an eyebrow-raise, though. Without the core, the player won't feel that the threads are all reliably on-theme. They won't want to go to place X, because it's just a bunch of random nonsense.

I can't overstate how important this context is. These are worlds which make sense, at least to some degree. They hold together, and as you drill down into them, you find some reasonable reason why things are where they are and do what they do. These reasons radiate out, so you know roughly what you're in for if you decide to chase down a random thread you've found.

...

I kind of rambled, here's the summary:

The loose weave of an open world allows me to approach it in any way I see fit, including ways that are not part of the main plot.

The weave is organized in patterns that make sense, and if I follow a thread I will find more, similar threads that all make sense together.

Replayability is key: the loose weave responds differently when you play with it in a different way, and a player will probably play it a dozen different ways.



Can this be generated randomly? I'm not sure, but replayability would go out the window just by definition.

Can it be made "flavorful" for the folks that think open worlds are bland? Probably, if you can make them adaptive: a lot of these worlds are very static, which I think is the heart of their complaint. If there were big events that permanently changed things on a really deep level, I think that would help. It would also be a lot harder to program.

Them's my thoughts!

Monday, March 06, 2017

Glowing Open Worlds

I was following some Twitter thoughts by Jake Monahan, and it got me thinking. He was talking about how open world games are inherently built to be strip-mined, discarded once you've finished pillaging them. He points out that most of the things you do that change the world (such as resolving a gang war) actually make the world less fun to play in.

This is very interesting to me, so I thought I'd analyze it in way too much detail!

First, the constraint: we're specifically talking about designed open worlds, not randomized ones. Fallout and GTA, not Minecraft.

The most obvious reason why open world games are built like this is because that's the play we have gotten used to. Killing and collecting are our focus, and both of those remove your targets from the game.

A less obvious reason is that most games are about progressing through the game. If the world is steady-state and nothing you do changes anything, there's no reason to move to the next zone. And if you do decide to move on, there's no reason to actually grapple with the next zone, you might as well just skate through as fast as possible.

So the "strip mining" is not simply a side effect of the preferred play. It's a tactic that pushes the player to move through the game at a steady pace. Different players will engage at different depths - some might spend a lot of time hunting for every scrap in a given area, others might just hit the high notes. Either way, they are steadily lured into finishing this zone and moving into the next one.

It's possible to design a constructive open world, where your gameplay makes more gameplay. However, you would need a different mechanic to lure the player forwards, or they'll never get very far into your world. They'll just mine out all the play options in the first few areas and then get bored of your mechanics.

In short, if the player isn't lured into moving through your open world, it's not an open world.

Whether it's a linear game or an open world game, as we move through the game we discard levels behind us. In a linear game, those levels are simply gone. In an open world game we can physically return to those places, shrines dedicated to our past adventures, but they are no longer part of our path forward.

...

It's worth considering replay value. In the first play-through, players usually behave fairly predictably. This is definitely worthy of its own conversation, because 'predictably' doesn't mean 'exactly the same path through the game', but it does mean that you can typically use standard tricks and layouts to pull them into a few paths you consider to be ideal for new players.

For example, in Fallout 4 you aren't physically forced to get Preston and Sanctuary, but nearly all first-time players will. After that it appears to open up and tell you to go do anything you want, but the way the map and sidequests are laid out pushes you to find a few small farms to recruit and a few bandit hives to clear. In theory you can spend a lot of time farting around this open world, but in practice they limit your available play options so that you'll get a little bored of doing that and decide to start for the city. They city features a combination of physical funnels, golden paths, and meat walls to pressure you into finding Diamond City.

The design of this is "first run" open world design, and it's not too different from a linear game. But when we replay the game, we are more familiar with the world and take more advantage of the variations.

This isn't a proper "new game+" situation, because many people restart the game long before they've beaten it. For example, I've played the first five hours of Skyrim approximately 300 times, and I still haven't actually beaten the game. Trying new paths, or perfecting your abuse of paths your familiar with, or challenging yourself with a new constraint... these are powerful play elements!

What I'm leading up to is this:

The open world we strip mined? It doesn't stay stripped.

We return to the fresh, untrammeled world again and again, whenever we want.

To me, that is the truest power of an open world, and that is what I would like to focus on when building open world maps.

... maybe I'll talk about that for fifty hours some day soon.

Monday, September 19, 2016

Adjusting the Five Phase Play

Last essay I analyzed open-world games a bit, and mentioned the "five phase play" these games rely on:

1) Approach a dangerous area
2) Scan enemies
3) Maneuver for engagement
4) Engage
5) Deal with response

As I mentioned, these provide a smooth tension curve. Each mechanic is optimized to run in a particular tension range, and to help amp the tension up to the top of that range. Players shift up and down as the situation demands, like a stick shift driver.

I'm happy to create a game that uses those steps, but I need to understand them well enough to put them together. And I have one big issue: I'm fundamentally a stealth player. In most open-world games I default to sniper (or archer) because the stealth doesn't really work. You can sneak, but the fail state for sneaking is catastrophic, leading to save-spamming and eventually deciding it's just not worth it. Moreover, stealth characters can't really secure a location unless they sneak up on every single enemy in a location and murder them in cold blood.

I've been thinking about phases 2 and 3. I think these are the problem, because they have very rigid, nasty fail states.

If you screw up scanning or maneuvering, you are dumped straight to phase 5: dealing with the enemy response. Worse, the maps are very funneled, so your ability to maneuver is very limited. Go out the door, you'll run into another enemy. Run across the parking lot, they'll shoot you from behind.

Every aspect of the encounter is massaged to make these failures less severe. We introduce several "soft fails", like the second it takes an enemy to realize there's movement worth investigating, and then the time to realize the movement is an enemy. We also introduce hilariously forgetful guards, because the player can't move freely enough to adapt to alert guards. The funneled movement also means we have to allow players to leave the mission zone entirely if they completely flub it, without having to worry too much about being hounded by enemies at range.

While these tweaks make the game playable, they create a nasty disjoint between the stealthy phases (1, 2, and 3) and the open phases (4, 5). It's easy to shift up and down within stealthy phases and open phases, but once you've gone from phase 3 to phase 4, you can't go back except by crawling into a corner and waiting a really long time.

I think we can fix this by opening up more movement routes, allowing the player to continue moving while guards are searching. More ways of moving through the area. Here's a few:

Floors
Probably the layout that makes the most sense, we can have our facilities be multiple stories tall. The key here is that floor switching needs to be easier than it normally is - not simply locked to staircases. Postapocalyptic ruins do this well, with lots of holed floors, piled-up rubble, and knocked-down walls. But you can also do this by introducing ledges and making the player athletic enough to climb them. Whether it's an atrium or porches or even just exposed windows, allowing the player to freely move up and down can help the player to find a lot of alternate paths. Keep in mind whether enemies can see the player moving up and down - even if they can, it can buy time, but you need to keep it in mind.

The biggest problem with this kind of verticality is that it's "blind". The player can't keep track of where the enemies are, and it's easy to lose your way, get lost, and forget where the objective is. Generally this is solved by a HUD of some kind marking out known enemies and destinations, but I'm not sure that's a good way to do it. Mirrored layouts might be better, and also facilitate the vertical movement. For example, if each floor is arranged around a central atrium with an asymmetric main hall, it's easy to know where you are relative to other floors, easy to move to other floors, and you can also spy down through that atrium towards the other side of the floor below.

Soft Barriers
While going to other floors is an option, it's got a lot of limitations - poor visibility, limited access, etc. An alternative is to tear the roof off. Low walls, fences, rafters, etc block movement and/or vision, but can still be climbed over or run along. In stealth mode this is good - being above an enemy makes you harder to spot. In open mode this is useful because you can navigate over/along these soft barriers faster than they can, allowing you to navigate to new areas when chased. Wire fences, pits, and hurdles are another option, creating navigation hurdles without blocking line of sight. Trees can be arranged to offer a variety of options like this.

Soft barriers are normally found in postapocalyptic games, since ruins are a great excuse to have a mostly-collapsed roof. However, even in intact worlds there are a lot of elements you can use to do this. Inside, arrange furniture into broken rows of 3-4 meters instead of islands - IE, store shelving should be long shelves, not islands. Office cubicles should be in rows, not islands. Consider making interior walls half-height open-plan walls. Kitchens should have a long counter and at least two exits.

Outside, there are many barriers, the trick is to arrange them into formations that offer cover. Streets should have cars parked bumper-to-bumper on the curb. Parking lots should be tighter and more packed than in real life. Fences around houses, parks, etc should be more common than usual. Bushes should be arranged into hedgerows. Trees can have low branches that require ducking to get under. Using these methods to introduce soft barriers should allow players to move freely away from enemies without being overly funneled.

Crawling
This deserves exploration on its own, even if it has a lot of similarities to soft barriers.

The idea is not that you can hide by crawling: it's that you can safely move through a space by crawling. This is normally useful when you're in stealth mode, as you can hide behind relatively minor barriers and then duck to the next one when an enemy looks away. To accomplish this, you can use typical soft barriers, but you can also use general-purpose debris. For example, a sofa, a chair, a table. These are "islands" that are really no use as soft barriers, but are handy for crawling.

The trick is that the player needs to be able to move freely by doing this. In enclosed spaces, exits are scarce. Interiors should be as open as possible to allow for this kind of stealth: doorways instead of doors. Doors which are open or ajar by default. Windows that are open and unscreened. Or... alternate methods of getting through walls.

The "island" approach is only useful if you're undetected. If a guard is searching for you, they can quickly and easily look behind random debris. Low soft barriers are a good alternative, as is areas where you can "open crawl". The gap under a house, or above a drop ceiling. Beneath cars and trucks and trains. These layouts are useful both when in stealth and when trying to evade guards.

Hidden Doors
All of these approaches work best in large, open areas. When we're inside a house, or office, or any other place with several enclosed rooms, we're still stuck with a funnel. There's only one or two doors, you're going to end up walking straight into another enemy if you try to leave.

Well, we can introduce a lot of "hidden doors".

Probably the most obvious one is windows. You can leave through a window, whether stealthily or loudly, and get to a more open location. Guards will have a hard time following you, too. In addition to typical exterior windows, there are interior windows that look from one room into another, or from a room out into an atrium or factory floor. Windows on the outside of a building are interesting because if you dive through you'll fall who knows how far, but if you slip through you can cling to the outside and climb on the outside of the building. Hope nobody's looking up from below!

Another option is air vents. Air vents you can slip through are quite a conceit: even if the duct was large enough for a person, you'd be hilariously loud. However, for our purposes that conceit is fine. For some reason, nearly every room needs a big air duct, and the player can slip through. Arranging air ducts is an interesting level design challenge, but as long as they are fairly open, they can de-funnel us. Guards need to be smart enough to try and both search the air ducts and arrange guards at the exits. But not so good at it that the player feels trapped - it's more that they need to move to a suboptimal exit.

There are a variety of magical solutions as well - various kinds of wall-phasing. That may not fit with your game idea, though.

And, of course, the option to simply smash down a wall. Not very stealthy, but if you're running away...

Alternate Movement Modes
Swimming, flying, bounding, gliding, phasing, grapple-hooking, sliding, teleporting - there's a lot of alternate movement modes. Some of them are built into the map in obvious ways: swimming requires water. Some are built into the map in subtle ways: gliding requires a high place and a place designed to be fun to glide into.

The problem with these modes is making them accessible while moving through a facility. How many buildings have a river running through them? How many places can you run through by gliding?

Radically enhanced fundamental mobility is possible: superhero-style jumping around. This would radically change our map design and other gameplay mechanics, but it could be fun. Not likely to be stealthy, though.

One worth investigating more carefully is grapple hooks. Being able to create overhead cables to move along might feel kind of Tony Hawky, but it could allow players a lot more freedom on how to move across terrain.

Non-Avatar
So far we've talked about ways to negate the funneling using the player avatar. We can also give the player powers outside of their avatar.

For example, calling in strike teams, assault helicopters, mortar strikes, and so on can be useful both in stealth and open mode.

Alternately, allowing the player to switch to a new avatar will allow the old avatar to lead the guards on a merry chase, or surrender and be captured to similar effect.

Clearing Zones and Engaging Enemies
Once we've destroyed funnels, we have a lot more freedom to design our maps and our enemy responses. But we still have a fundamental problem: most of these open-world games revolve around clearing areas. Other methods of clearing enemies need to be introduced, and the easiest one is to simply make it so that the enemies have a reason for being in a particular area. Resolving that reason will make them leave, whether that involves killing off their leader, stealing the treasure from under their noses, or revealing the traitor they're hunting.

Making this goal-based rather than murder-based will allow us to clear zones without requiring us to murder absolutely everyone. It also opens up opportunities to interact with enemies in other ways - bribing them, recruiting them, putting them to sleep, revealing their secrets to their team-mates, etc. Many of these can be codified rather than written special case, allowing us a lot more freedom in how we do things.

Buuuuuuut

The fourth and fifth phase involve engaging enemies and dealing with their response. If we focus too much on stealth, those will never engage. We'll be ignoring the upper 40% of our tension range.

Well, the zone clearing can require taking people out, either as a primary goal or because they're just way too in the way to avoid. We can allow nonlethal takedowns, there's no problem with that.

Classically a good take-down doesn't alert anyone, that's the point. What we need to do is create a "soft response". This is already a thing, and it's why stealth games feature body-hiding. I think all we need to do is amp that up: rather than just noticing a body, we want to have a variety of responses depending on the type of enemy.

Technologically adept enemies might have heartbeat monitors, GPS tracking, and so on. You can't generally hide the takedown, at least not without compromising their main server, but you have a certain amount of slosh. It takes a few moments to realize something's gone wrong, another little bit for someone to investigate, and so on. During that time, tension will continuously rise as you try to accomplish your main goal and escape.

Less technological enemies will stay more aware of each other. Dogs will smell when you down someone. Bandits will get curious when things get too quiet. The undead will instantly sense the re-death of another undead, etc, etc. The idea is that after a takedown, you're on the clock and you really don't have much time.

This isn't all bad. You can take someone down, then run off to do your actual goal, leaving the guards to get distracted and drawn to that location.

It also has a fun failure state: open combat or running across the map in a desperate escape attempt! Or both!

In any case, the point is simple: we absolutely have to keep our upper tension range intact.

Anyway, those are the things I've been thinking recently when making my prototypes. What are your thoughts?

Adjusting the Five Phase Play

Last essay I analyzed open-world games a bit, and mentioned the "five phase play" these games rely on:

1) Approach a dangerous area
2) Scan enemies
3) Maneuver for engagement
4) Engage
5) Deal with response

As I mentioned, these provide a smooth tension curve. Each mechanic is optimized to run in a particular tension range, and to help amp the tension up to the top of that range. Players shift up and down as the situation demands, like a stick shift driver.

I'm happy to create a game that uses those steps, but I need to understand them well enough to put them together. And I have one big issue: I'm fundamentally a stealth player. In most open-world games I default to sniper (or archer) because the stealth doesn't really work. You can sneak, but the fail state for sneaking is catastrophic, leading to save-spamming and eventually deciding it's just not worth it. Moreover, stealth characters can't really secure a location unless they sneak up on every single enemy in a location and murder them in cold blood.

I've been thinking about phases 2 and 3. I think these are the problem, because they have very rigid, nasty fail states.

If you screw up scanning or maneuvering, you are dumped straight to phase 5: dealing with the enemy response. Worse, the maps are very funneled, so your ability to maneuver is very limited. Go out the door, you'll run into another enemy. Run across the parking lot, they'll shoot you from behind.

Every aspect of the encounter is massaged to make these failures less severe. We introduce several "soft fails", like the second it takes an enemy to realize there's movement worth investigating, and then the time to realize the movement is an enemy. We also introduce hilariously forgetful guards, because the player can't move freely enough to adapt to alert guards. The funneled movement also means we have to allow players to leave the mission zone entirely if they completely flub it, without having to worry too much about being hounded by enemies at range.

While these tweaks make the game playable, they create a nasty disjoint between the stealthy phases (1, 2, and 3) and the open phases (4, 5). It's easy to shift up and down within stealthy phases and open phases, but once you've gone from phase 3 to phase 4, you can't go back except by crawling into a corner and waiting a really long time.

I think we can fix this by opening up more movement routes, allowing the player to continue moving while guards are searching. More ways of moving through the area. Here's a few:

Floors
Probably the layout that makes the most sense, we can have our facilities be multiple stories tall. The key here is that floor switching needs to be easier than it normally is - not simply locked to staircases. Postapocalyptic ruins do this well, with lots of holed floors, piled-up rubble, and knocked-down walls. But you can also do this by introducing ledges and making the player athletic enough to climb them. Whether it's an atrium or porches or even just exposed windows, allowing the player to freely move up and down can help the player to find a lot of alternate paths. Keep in mind whether enemies can see the player moving up and down - even if they can, it can buy time, but you need to keep it in mind.

The biggest problem with this kind of verticality is that it's "blind". The player can't keep track of where the enemies are, and it's easy to lose your way, get lost, and forget where the objective is. Generally this is solved by a HUD of some kind marking out known enemies and destinations, but I'm not sure that's a good way to do it. Mirrored layouts might be better, and also facilitate the vertical movement. For example, if each floor is arranged around a central atrium with an asymmetric main hall, it's easy to know where you are relative to other floors, easy to move to other floors, and you can also spy down through that atrium towards the other side of the floor below.

Soft Barriers
While going to other floors is an option, it's got a lot of limitations - poor visibility, limited access, etc. An alternative is to tear the roof off. Low walls, fences, rafters, etc block movement and/or vision, but can still be climbed over or run along. In stealth mode this is good - being above an enemy makes you harder to spot. In open mode this is useful because you can navigate over/along these soft barriers faster than they can, allowing you to navigate to new areas when chased. Wire fences, pits, and hurdles are another option, creating navigation hurdles without blocking line of sight. Trees can be arranged to offer a variety of options like this.

Soft barriers are normally found in postapocalyptic games, since ruins are a great excuse to have a mostly-collapsed roof. However, even in intact worlds there are a lot of elements you can use to do this. Inside, arrange furniture into broken rows of 3-4 meters instead of islands - IE, store shelving should be long shelves, not islands. Office cubicles should be in rows, not islands. Consider making interior walls half-height open-plan walls. Kitchens should have a long counter and at least two exits.

Outside, there are many barriers, the trick is to arrange them into formations that offer cover. Streets should have cars parked bumper-to-bumper on the curb. Parking lots should be tighter and more packed than in real life. Fences around houses, parks, etc should be more common than usual. Bushes should be arranged into hedgerows. Trees can have low branches that require ducking to get under. Using these methods to introduce soft barriers should allow players to move freely away from enemies without being overly funneled.

Crawling
This deserves exploration on its own, even if it has a lot of similarities to soft barriers.

The idea is not that you can hide by crawling: it's that you can safely move through a space by crawling. This is normally useful when you're in stealth mode, as you can hide behind relatively minor barriers and then duck to the next one when an enemy looks away. To accomplish this, you can use typical soft barriers, but you can also use general-purpose debris. For example, a sofa, a chair, a table. These are "islands" that are really no use as soft barriers, but are handy for crawling.

The trick is that the player needs to be able to move freely by doing this. In enclosed spaces, exits are scarce. Interiors should be as open as possible to allow for this kind of stealth: doorways instead of doors. Doors which are open or ajar by default. Windows that are open and unscreened. Or... alternate methods of getting through walls.

The "island" approach is only useful if you're undetected. If a guard is searching for you, they can quickly and easily look behind random debris. Low soft barriers are a good alternative, as is areas where you can "open crawl". The gap under a house, or above a drop ceiling. Beneath cars and trucks and trains. These layouts are useful both when in stealth and when trying to evade guards.

Hidden Doors
All of these approaches work best in large, open areas. When we're inside a house, or office, or any other place with several enclosed rooms, we're still stuck with a funnel. There's only one or two doors, you're going to end up walking straight into another enemy if you try to leave.

Well, we can introduce a lot of "hidden doors".

Probably the most obvious one is windows. You can leave through a window, whether stealthily or loudly, and get to a more open location. Guards will have a hard time following you, too. In addition to typical exterior windows, there are interior windows that look from one room into another, or from a room out into an atrium or factory floor. Windows on the outside of a building are interesting because if you dive through you'll fall who knows how far, but if you slip through you can cling to the outside and climb on the outside of the building. Hope nobody's looking up from below!

Another option is air vents. Air vents you can slip through are quite a conceit: even if the duct was large enough for a person, you'd be hilariously loud. However, for our purposes that conceit is fine. For some reason, nearly every room needs a big air duct, and the player can slip through. Arranging air ducts is an interesting level design challenge, but as long as they are fairly open, they can de-funnel us. Guards need to be smart enough to try and both search the air ducts and arrange guards at the exits. But not so good at it that the player feels trapped - it's more that they need to move to a suboptimal exit.

There are a variety of magical solutions as well - various kinds of wall-phasing. That may not fit with your game idea, though.

And, of course, the option to simply smash down a wall. Not very stealthy, but if you're running away...

Alternate Movement Modes
Swimming, flying, bounding, gliding, phasing, grapple-hooking, sliding, teleporting - there's a lot of alternate movement modes. Some of them are built into the map in obvious ways: swimming requires water. Some are built into the map in subtle ways: gliding requires a high place and a place designed to be fun to glide into.

The problem with these modes is making them accessible while moving through a facility. How many buildings have a river running through them? How many places can you run through by gliding?

Radically enhanced fundamental mobility is possible: superhero-style jumping around. This would radically change our map design and other gameplay mechanics, but it could be fun. Not likely to be stealthy, though.

One worth investigating more carefully is grapple hooks. Being able to create overhead cables to move along might feel kind of Tony Hawky, but it could allow players a lot more freedom on how to move across terrain.

Non-Avatar
So far we've talked about ways to negate the funneling using the player avatar. We can also give the player powers outside of their avatar.

For example, calling in strike teams, assault helicopters, mortar strikes, and so on can be useful both in stealth and open mode.

Alternately, allowing the player to switch to a new avatar will allow the old avatar to lead the guards on a merry chase, or surrender and be captured to similar effect.

Clearing Zones and Engaging Enemies
Once we've destroyed funnels, we have a lot more freedom to design our maps and our enemy responses. But we still have a fundamental problem: most of these open-world games revolve around clearing areas. Other methods of clearing enemies need to be introduced, and the easiest one is to simply make it so that the enemies have a reason for being in a particular area. Resolving that reason will make them leave, whether that involves killing off their leader, stealing the treasure from under their noses, or revealing the traitor they're hunting.

Making this goal-based rather than murder-based will allow us to clear zones without requiring us to murder absolutely everyone. It also opens up opportunities to interact with enemies in other ways - bribing them, recruiting them, putting them to sleep, revealing their secrets to their team-mates, etc. Many of these can be codified rather than written special case, allowing us a lot more freedom in how we do things.

Buuuuuuut

The fourth and fifth phase involve engaging enemies and dealing with their response. If we focus too much on stealth, those will never engage. We'll be ignoring the upper 40% of our tension range.

Well, the zone clearing can require taking people out, either as a primary goal or because they're just way too in the way to avoid. We can allow nonlethal takedowns, there's no problem with that.

Classically a good take-down doesn't alert anyone, that's the point. What we need to do is create a "soft response". This is already a thing, and it's why stealth games feature body-hiding. I think all we need to do is amp that up: rather than just noticing a body, we want to have a variety of responses depending on the type of enemy.

Technologically adept enemies might have heartbeat monitors, GPS tracking, and so on. You can't generally hide the takedown, at least not without compromising their main server, but you have a certain amount of slosh. It takes a few moments to realize something's gone wrong, another little bit for someone to investigate, and so on. During that time, tension will continuously rise as you try to accomplish your main goal and escape.

Less technological enemies will stay more aware of each other. Dogs will smell when you down someone. Bandits will get curious when things get too quiet. The undead will instantly sense the re-death of another undead, etc, etc. The idea is that after a takedown, you're on the clock and you really don't have much time.

This isn't all bad. You can take someone down, then run off to do your actual goal, leaving the guards to get distracted and drawn to that location.

It also has a fun failure state: open combat and/or running across the map in a desperate escape attempt! Or both!

In any case, the point is simple: we absolutely have to keep our upper tension range intact.

Anyway, those are the things I've been thinking recently, in making my prototypes. What are your thoughts?

Friday, September 16, 2016

Open World Analysis

I've written a few essays mentioning the "hub exploration" play style in passing. It's caught my attention pretty solidly. I've made a few small prototypes, but the "open world" part of the prototypes is pretty lacking. Maybe they're overly structured. Or maybe I'm just too knowledgeable about how they're laid out.

So let's analyze what makes open-world games fun!

First, we have to split the group. Randomly generated worlds and static worlds are very different kinds of games with very different priorities.

I think my hub exploration idea fits better with static worlds like Fallouts, Elder Scrolls, GTAs, Saint's Rows, Assassin's Creeds, Sleeping Dogs, etc. So today we'll focus on those.

Core Play

The core play of these games is almost always action combat. The exact nature varies widely, but the core experience is typically split into "approach dangerous area->scan for enemies->maneuver to ideal engagement position->engage->deal with enemy response". This five-phase approach seems to be by far the most common setup, supported by the threat of ambush if you handle the early steps sloppily.

Other kinds of play are probably possible, or even polishing that kind of play with other phases. But that five-phase approach works well, and it's obvious why it does: it creates an extremely smooth tension curve.

Each step switches out the game mechanic, and each mechanic is built to ramp up the tension within its specific range. As you approach a dangerous area, the tension starts out at nothing. But you are literally getting closer to danger, and so it naturally ramps up as you start looking for and angling around entrances, defenses, hidey-holes, and so on.

The other steps do the same thing within their ranges, and the edges are blurry enough that the player can shift gears depending on their intent, like a stick shift. At what point do you start scanning for enemies as opposed to approaching a dangerous area? How about moving from scanning to enemies to maneuvering for engagement? You may switch up and down that line half a dozen times depending on the layout you find, your resources, your chosen approach, even just your mood at the moment.

These inflection points, the moments when you choose to shift up or down, are a lot of what makes each game feel distinct. Fallout has no qualms about randomly scattering monsters in your path, so if you want to avoid ambushes, you might grind along in the scan-for-enemies gear even though you'd be more comfortable in the approach-dangerous-places gear. GTA rarely surprises you with enemies. You can casually skate along with almost no tension for long periods of time, giving it that characteristic laid-back feel.

Codifying the play like this can lead to oversimplification, but it can also lead to new approaches. It's fun to think about how I might make my prototype feel good and unique within these constraints.

Other factors which affect tension may also affect this five-phase system, which is probably worth considering. If a player is already sweating from the high stakes, how does that change the performance of the phases? How does it affect the gear shift moments? Can your system handle that - or even be optimized to take advantage of it?

Nav

Nearly every static open-world game features a slow avatar.

The reason is obvious: hand-made maps are denser and smaller than generated maps. If you let the character move too fast, they'll reach the edge of the map too fast and miss too much. By traveling slow and limiting view range, you can make the player take "small bites". Perfect for hand-made maps.

Pedestrian navigation is typically quite stiff, too. The world is arranged so that you get a lot of different views by moving stiffly from one place to another, but there's rarely any kind of skill challenge to go someplace.

Assassin's Creed has some level of complexity to their movement, including plenty of verticality and jumping. This seems to make the views chaotic enough that Ubisoft just gave up on using wayfinding/signposting entirely. Well, I think there might be power in worlds with complex verticality like that.

Although modal movement (swim, vent-crawl, stealth, etc) seems to add a lot, it's clear that map design is the most important facet of navigation in these games.

But hand-made maps like these typically feature a lot of backtracking, or at least a lot of criss-crossing. It's not bad if the player is exploring, but if they have a strong goal... well, a slow player trying to reach a distant location is going to get pretty grumpy.

Many games use a fast-travel system to let you return to where you have already gone. I'm not a fan of this, though, because it "crushes" the map as you leave: you'll never cross that space again, never see any of the other locations in that space. You've effectively thrown it away.

Other games use vehicles.

This has wide-ranging effects. Vehicles are very high speed and need to see a long ways, which changes how your map can be laid out. Most vehicle-using games effectively separate the vehicle play from the pedestrian play, meaning that there are big stretches of low-density "vehicle" map dotted with patches of high-density "pedestrian" map. Moreover, the vehicle map normally has no enemies on it, since there's no easy way to replicate the five-phase approach when you're speeding along trying to move from point A to point B.

The act of moving from point A to point B is pretty boring, even if there is a challenge to driving fast through twisty roads. Various games spice this up in various ways. In GTA, vehicles are given lovingly wonky physics. This gives you an interest in pulling off stunts and silly self-directed adventures. Most other games don't bother, and instead just put a variety of annoyances on the road to interrupt your travel.

I have a suspicion this is waiting for a revolution, because as it stands the use of vehicles is very disconnected from the pedestrian stuff, and actively works against it in many ways. At the very least, the more island-like map design makes the first phase of the five phase approach either extremely slow (running along a road on foot) or extremely sharp (driving into a gang hideout).

We can constrain the use of vehicles easily enough. For example, only the roads between your settlements are maintained and safe, so that's the only place you can reasonably use vehicles. However, reducing the scope of the vehicles means they are even less integrated into the game than normal. At that point you might as well replace vehicle play with a limited version of fast travel.

We could go the opposite direction, and try to integrate vehicles into the five phase play.

That's what Fallout 4 did with power armor. It takes fuel, but you could use it in tough situations. However, the power armor was not very good at being a vehicle. The vast majority of its fuel was burned just slowly moving from point A to point B... which was the thing vehicles were supposed to help with in the first place.

Another example is Subnautica, which has a variety of vehicles of varied sizes, all of which are about moving more quickly. They do have limited battery life, but batteries are something you can recharge and create, unlike the limited-feeling fuel in Fallout 4. However, Subnautica's main play is not the five-phase play. It's mostly scavenger hunt. By slowing down the vehicles (2-5x as fast as a player, rather than 10-100x) the player can still keep an eye out for signs of good salvage.

It may be that slower vehicles can be integrated into the five-phase play, or at least into certain parts of it.

In the end, this is something that requires a lot of thought. Vehicles generally serve the purpose of shortening the time spent meandering meaninglessly, but the effort to integrate them into the game typically screws up the map, short-circuits the five phase system, and/or creates a whole new category of play that is completely tangential to the main play.

Phased Implicit Goals

Open world adventures can get me into flow state really fast. The second they stop with their distractingly bad intro and give me controls, I'm on my way to flow.

But maintaining that state is tough, since everyone's mood shifts over time.

So we constantly have other goals in sight. As we are moving towards a goal, we see other potential goals. A dungeon entrance. An abandoned shack. A plume of smoke. A broken wagon.

Unlike the five phase core play, this adapts to the player rather than shaping them. The player will choose to sidetrack to other goals on their way to their main goal, and adopt nearby goals when their goals complete.

This requires a light touch, and that's the challenge. If you tell the player to walk to the next town along the road and there's a broken-down cart in the road, that's a very heavy hand. Players probably won't ignore that, even if they are in a hurry or bored of talky missions. In turn, this can actually break flow faster than having an empty road!

The typical trick here is that the road doesn't really go where you want to go, and so most players will dive off it into the wilderness at some point, creating a less structured adventure. Some games, like Fallout 4, actively shatter the roads so none of them go anywhere useful, forcing every player to wander the wilderness.

Even on the road, most hooks are placed well back from the curb so the player can choose whether to recognize them as hooks. That little side road leading up to the mining village - well, maybe later.

Wilderness encounters can be optimized as well, using intermittently-visible landmarks to lure players in. This is Skyrim's approach - you can see that ruined castle on the hill, you can see that glowing thing in the gully. Some games have a hard time with this due to chaotic lines of sight - for example, it's difficult to properly seed landmarks in Assassin's Creed, because the player could be on the ground, on the roof, on the wall, creeping along camera-down, looking at rooftops camera-up...

HUD icons are invaluable if you can't lay out the map to clue the player in. Nearly all open-world games show HUD icons as you get close to places of interest. I don't much like this practice, so I'd like to avoid it: the only HUD location icons I want are the ones you manually set on your map. Therefore, I may have to give the player an unusually long, clear sight line so they can see my landmarks pretty well. Skyrim-style.

Supporting Player Narrative

The majority of these games allow the player to be whoever they want. Even in games with specific main characters, the characters are easy to reinterpret through the player's preferences.

Allowing the player to approach the challenges of the game in a preferred way is the foundation of allowing players to create their own narratives. Further, a lot of that is in the pressure the game puts on them to play in another way, pushing them to find solutions, compromise their style, and struggle to keep their personal preference intact.

As an easy example, challenge runs. Playing Skyrim as a martial artist or a pacifist is possible, although in both cases a lot of content has to be avoided. Struggling to move through content that shouldn't be possible is a big part of the fun, to the point where there are mods and exploits that are considered a core part of a pacifist play of Skyrim.

Normally, things are more nuanced. Play Skyrim as a thief. A mage. An archer. A swordsman. A summoner. These kinds of roles were created by the devs, put into the game on purpose, and the content caters to them to some extent. There are still situations where the content becomes very rough - the mage runs out of mana, the archer is stuck near some enemies, the swordsman faces archers at the top of a wall... how you deal with these challenges is what makes your character and their story unique and fun. Does your swordsman sneak up the wall? Charge up the stairs? Switch to a ranged weapon? Use your companion as a distraction?

Designing your encounters to serve these needs is probably a big part of it, but the player narrative is not just how they choose to play moment-to-moment.

Who the player chooses to associate with, who they help, who they hinder, how they shape the world... these are all large factors.

Most such games program these paths in ahead of time. This is the good path, this is the bad path. Here are the people you can help. Here are the people you can associate with.

The problem is that these tend to lock you in for huge lengths of time, asking the same question over and over. Once you've specified that you're "good" rather than "evil", all the choices you make are almost certainly going to go the same way. That's not a player narrative, that's a dev narrative.

Player narratives involve assembling a story out of smaller parts, parts that interact.

For example, in Fallout 4 you can take any one buddy. While there are differences between them, mechanically there's not usually a significant reason to pick one or another. Instead you pick the ones you want to take with you.

Adventuring with the nosy reporter is very different from the nerdy robot or the grizzled gumshoe. Even if they have very little to contribute to your adventures, your adventures are 'with them', and that's a part of your narrative.

More deeply, there are plenty of times where you feel that one character or another 'would feel' a specific way. For example, dragging the nerdy robot into the high-tech robot facility feels more natural than dragging in the punch-happy brawler. The reporter probably has something insightful to say about this corrupt meat-packing ring. Maybe they'll change their minds about something. Maybe they'll feel something.

That's never really programmed into the game. Sure, they often have one or two lines of dialog they spit out in suitable places, but there's no real dynamics to the characters beyond "steadily increasing trust rank". There's also no dynamics to the place - whether you go alone or take any given person, the result will be the same.

Despite that, these pieces are still part of the player's story.

Similarly, chopping up things like "the good path" into tiny chunks allows the players to have more nuanced opinions. Rather than simply always choosing "the good option", the player might end up siding with robots against gangsters, or visa-versa, and that will be reflected in their internal narrative. They didn't choose good or evil, they chose something in-character.

Each of these choices will be remembered to some extent, and the player will slowly build an internal narrative around it. For example, in the Mass Effect series, Tali was my favorite NPC and augmented my favorite character build perfectly, so I tended to favor her whenever I could. But in the third game, I evidently didn't read the devs' mind well enough and a scenario forced me to make a completely idiotic choice between saving her species or the geth in a situation that was about 80% her fault. That was part of my narrative, a major sour note that ruined a three-game friendship.

It wasn't necessarily bad - it is something I still remember. I would have preferred it to have made sense, or arose in a meaningful way, but even as plot-holey as it was, it was still very memorable.

I wouldn't have gotten that invested if Tali was "the good path" or "the evil path", or even "the Tali path". It's the fragmentation that made that slowly growing fondness possible.

That is the other factor, here: the people players spend time with are going to be the biggest influence on the player's story. Right now there is a tendency for each character to be a personal arc and a walking arsenal.

Instead, I think it makes more sense for each party NPC to represent a particular worldview. By choosing who to associate with, the player is fundamentally adopting specific worldviews, and the NPCs will push things in those directions. You can create the world encounters with the assumption that those worldviews matter, and bake them into most of the mission options.

For example, if you take Solus with you, he'll have a lot to say about trying to do pristine work in messy environments, and taking responsibility for your actions even if you never intended to create the problems. In turn, a lot of elements in various quests could be written with these thoughts in mind, even if Solus is not with you.

Rather than "good" or "evil" (or "paragon" or "renegade"), you have the option to push someone to take responsibility they don't feel they should, or shoulder it yourself, or shirk it... this is a much more nuanced set of questions with endless variations and potential for long-term ramifications.

Using these techniques, I think it is possible to "chop up" the world. The player never feels like they're playing out the dev's story. They create their own story by synthesizing play style, friends, and paths throughout the game.

A good example of this is Fallout 2, which kept track of your various escapades and had a ten-minute-long ending sequence explaining the outcome of each. Rather than judge you as "good" or "evil", it simply remembered what you did and reminded you of it.

Map Re-Use

One thing to keep in mind is that no player will see all the content in your maps in one go. In fact, even if they play hundreds of times, there are some things they'll miss just because their patterns don't take them out that way.

Good or bad, that's how it is, and we need to take that into account.

Replays that stumble onto new content are fascinating, because you realize the world is so much larger than you thought. They give you fresh new grist for your personal narrative, and let you spin your character off in new-feeling directions.

A good example of that is in Skyrim, where it's easy to overlook so many things. For example, just behind the starting ruins is a massive bandit base. The next bandit base along the main path isn't until several hours in, after you've defeated a dragon!

Of course, content you know about can be optimized for your new character, like when we get power armor in the first ten minutes of Fallout 2, or when we take the taxi cart in Skyrim to a city we theoretically don't know anything about just to join the thieves' guild ASAP.

I don't have any really strong ideas on how to make the most of these features, but I do know that we want to push the player to take wobbly paths. Sticking to roads will make replays really dull.

Multiplayer

A lot of people really love multiplayer, but most of these games don't support it.

Multiplayer requires very specific tweaks to the mechanics to make it feasible, which can be really tough to design and still make work in single player.

For example, the five phase play? As described, the gear shift moments are very per-player, depending on a lot of factors including specific position and mood. If several players are cooperating, the first one that shifts up a gear will leave the others in the lurch, like someone stick-shifting without a clutch.

Because of this, most multiplayer in these games happens on a more straightforward level, using flatter gameplay and relying on the players to get each other hyped to the proper degree.

Good example: GTA. GTA multiplayer largely involves stunt challenges, which are controlled by the players and therefore can be orchestrated pretty solidly. Even if they cooperate to go on missions, the missions tend to be pretty frenzied, skipped the first two phases and starting with "maybe find some cover before shooting".

There are many kinds of multiplayer, though. Asynchronous multiplayer or massively-singleplayer are both possible, and probably easier to program. Hm.

...

Wow, this essay got long. I guess I should stop analyzing.

I've been considering these things and how to make my hub exploration prototypes "feel right", and I think this offers a lot of meat to chew on. What do you think?

Friday, August 19, 2016

World Weaving

In the past few days I've been writing a lot about getting players to engage with procedurally generated or tool-assisted worlds.

The basic idea is that you have to get the player to actually engage with the content. That's the idea of the mining/survival gameplay in most of these games: mining resources and shooting monsters involves engaging with the randomized hills, sprayed plants and rocks, random monsters, etc.

I posted a lot of tips about how to improve that engagement, but then I read this tweet and something became obvious: you can make players engage with your content in a much deeper way by making gameplay that pushes them along a specific physical path. IE, a golf course.

An open-world golf game. Randomly generated golf courses make up the world. You can wander the world as you like, and if you feel like playing a hole, you can. The structure of the world matters because you have to painstakingly cross that terrain to get from the tee to the hole. Every variation will be felt. Every plant that can get in the way, every animal that will chase your ball, every boulder with a tunnel through it.

There are some other things I can think of that work like this: hunting, hang-gliding, racing, even grand-scale base-building. But when I started to prototype these things, I found only the golf version felt right. Why?

Well, only the golf game had underlying structure. The racing, hunting, base-building stuff was a layer that gave context to the world, but the world itself still felt unstructured and arbitrary. On the other hand, the golf courses created a fundamental pattern that could be sussed out, and you could feel that there was a structure you could embrace or ignore.

After experimenting with the paper prototype a bit more, I realized that this was not just an illusion: creating the world out of crisscrossing golf courses was fundamentally creating a world with rigorous overlapping patterns. I created a world where the green of each hole is placed in a simple grid pattern, but the rest of the course goes off whichever way it wants, twisting and turning, until you place a tee wherever you end up. They cross each other wildly!

This can be played up even further by scaling the courses - these are minigolf, these are short holes, these are long holes, these are giant courses that you play in a mech. Even the generation is easy - you can just make every course a simple path edged with local debris (trees, rocks, sand), but have overlapping zones turned into hazards. So two courses crossing over each other have a sand pit or waterway in the middle.

As I expanded on this concept, I quickly found that I could tweak parameters and overlap rules and suddenly I had a planet with rivers and oceans (megamaid-size golf hazards), mountains and valleys (courses at different altitudes), and so on. Moreover, basic rules allowed me to place houses, cities, etc (wherever there are a number of tees near each other).

By using structured challenges in my procedural generation, I could weave those challenges together to generate a complex, meaningful world full of a variety of golf challenges.

...

Well, this isn't about golf.

This same idea can be extended. We can build a world out of crisscrossing race courses - some for high-speed drifting, some for off-roading, etc. We can build a world about hunting as long as we make "hunting paths" where the player stalks a target that is taking a specific path. We can make it about hang-gliding where we define expected launch positions and paths of descending height...

As long as we generate our world out of paths, we can weave them like a tapestry. They don't even need to be individually complex at all, because their overlaps create the complexity.

So... we can generate a world out of paths!

The player can choose which paths to engage with, but they'll be affected by (engage) nearby paths as well when they do. Moreover, even if they just wander, they'll see natural flow and charming obstacles!

Neat!

We can...

...

Hey, we don't have to build physical worlds.

What if we wanted to generate NPCs?

We have to drop the idea of "quests". Those are points, we need lines. So each NPC has a variety of "directions" they want to "go".

The obvious answer is stats: what if each NPC has an "arc" of stats they want? She wants to gain 20 armorsmithing points and then gain 15 strength. You need to build her up using the least number of resources (moves, political energy, days, cash, goodwill, whatever). Trying to build strength first would be "hitting into the rough", although if you could find a way to gain both at once that'd be fastest.

But the key to this whole affair is that the paths cross each other. Unless another NPC interacts with her stat growth along the way, there's not much depth to this.

I think there are a lot of ways to do this, but one way is to tie matching stats. She wants to increase armorsmithing from 10 to 30, but there are NPCs with armorsmithing of 19 and 23. So on her way up, she'll run into them and have to work around them - either by defeating them in armorsmithing, winning a seasonal competition, charming them, frightening them, or pushing their skill up to 30+ as well.

An extremely simple algorithm can "carry" these collisions along, so that these same people continue to engage her as they automatically try to raise their skill to higher than hers, which naturally creates events where she's pulled into conflicts with her own recurring set of rivals.

Moreover, it's very easy to simply allocate a new arc at any time, and if we detect no NPC collisions (too skilled/population too low) we can either spawn new NPCs with the required stats or require that character to move to a new location with more skilled NPCs (making it in town/the big city/the capital/the celestial palace/valhalla).

This is a very simple algorithm but, as you can see, it creates a fairly compelling environment with recurring character conflicts, inherent drama, contests of skill, and so on. Adding in more details such as relationships, families, memory, and so on can make it even more compelling, but even at the basic level it's already more compelling than just randomly generating NPCs.

Because we can put the skill gain locations into the world (training halls, for example), this also links our NPCs to the world. While you can increase your armorsmithing stat in the armory, that's not the only place you'll go. In addition to always needing to increase another stat somewhere else, the conflicts that arise with other characters have solutions that involve going to other places. IE, who can make the best silver breastplate for the prince's seventh birthday? Well, meet the prince -> gather silver -> talk to the jeweler -> bribe the jeweler with wine from the coast -> gather gems -> meet prince again -> forge breastplate -> party & final judging.

This kind of setup could involve playing as those characters, but the strength of this approach is that it's "open world". Switching characters is valuable.

You can have a bunch of different games based on this.

For example, you play a helpful newcomer trying to earn their place in a new city. Or you play a ghost. Or you play Dumbledore. Or you play the floating head that recruits Power Rangers. Or you're the manager of a gym. Or you're collecting Pokemon.

...

Right now, we generate 'points'. Our worlds are filled with plants and animals and buildings and people, but they stand alone.

By finding ways to create "paths" the player can follow, we can weave those paths into a world. Whether that's a physical world or a social world or some other world. It creates engagement, creates meaningful patterns and variations, and allows the fundamental variations in the content (such as size, stats, or personality) to matter more.

That's my thinking this week.

What do you think?

Thursday, June 09, 2016

A Scaffold That Grinds Away

Last essay I talked about grinding. I did that to set up this essay, in which we talk about "writing" for open world games, especially RPGs.

In classic oldschool RPGs, there's a whirl of four kinds of gameplay, but each kind is very dull. Talking to folks, exploring maps, managing powerups, and fighting: individually, each of these elements is weak. Even combined, they're pretty weak.

A lot of RPGs have tried to become more interesting by changing out one or two of those elements for more interesting variants. That never seems to work. Why?

Look, RPGs are about the grind. There's no way around it. Even when you decide to stop grinding and fight a boss, you're still doing the exact same play, just with a different goal.

And that's the secret.

The power of an RPG isn't in the gameplay, it's in the pacing. You can grind as you like, and then when you're done grinding, you can easily prod the sleepy storyline into feeding you the next bit of content, the new grist for your grinder. New monsters, new target numbers, new setting, new people, new party dynamics.

All our effort has been spent on more realistic characters, lusher settings, better gameplay, adaptive music... but we've never really talked about new ways to feed the player.

We need to talk about grist.

How to make it, how and when to feed it to the player, how to tell how well they're absorbing it.

The term "roguelike" comes to mind. The computer generates the dungeons, and you walk endlessly through them. That is a roguelike's "grist": the neverending parade of dungeons. At first glance, you may think that's a linear RPG's grist, too. Maybe even an open-world RPG's grist. But it's not.

An RPG lives or dies based on the experience of spending time in that world. If we think like that, we can see that our grist isn't dungeons or random quests or generated characters: our grist is experiences in the world.

These are the things the game feeds us as we move forward in linear RPGs. A new town, new people, new plot elements, new character dynamics, new monsters, new world map, new dungeon, new background music, new spells, new equipment, new boss at a new level.

The difficulty is that grist has a flavor. If you deploy this stuff randomly, the player will get a mouthful of garbage. Arranging plots and characters and places and dungeons and monsters and bosses can't be done randomly. It has to be done sensibly.

I think there are three simple ways to choose sensible grist.

One is content packs. If you go to an icy place, you get an icy town, icy people, icy monsters, icy plots... the downside is: the more you do this, the less replayability and variation there is.

Two is arcs. By creating a progression across several grist packs, you can build a sense of permanence. IE, being chased by an imperial task force across three planets will give each planet's grist pack a connection to your experience, even though the planets are individually quite random.

Three is player response grist.

This one is important.

A big part of my enjoyment of old RPGs is having an "understanding" of how the major party members and NPCs "felt" about any given thing. The canon responses were limited, but I would fill in the gaps on my own. Essentially, I could write fan-fiction in my head as I played the game, imagining the characters responding to the random crap the game threw in my way. "Oh man, are you kidding? Another group of ten zombies?" grumps Lucca. "I will handle this group," Robo bleeps.

These stupid internal vignettes were a big part of how I enjoyed these games. My personal response as a player could be mirrored into the game world by the characters, discussed and properly contextualized.

I don't know how many players are like this, but it's important to me, so I'd like to talk about how to let the game help me do those things.

Dragon Age is an example of how to do this explicitly. The characters will frequently comment on random happenings, they banter among themselves, it feels very organic. However, in the end, this actually limits how freely I can shape the story of these characters.

None of the characters can have bad days, because their banter clearly shows them not having a bad day. None of them can have romantic relationships with each other, since their banter shatters that idea, too. None of them can become jealous, angry, happy, sad. None of them can find something interesting, or repellent, or confusing, unless the devs programmed them to.

Back in ye old days, the characters were unchanging, but they were blurry little pixel people who said maybe three lines outside of their personal arc events. You could imagine them doing or feeling anything you like, because they were too small and blurry to prove you wrong.

As our tech improved, we brought the characters into focus, but we left them as unchanging marionettes, simply increasing the number of personal arc events. When I drag Liara and Garrus around a starship for an hour, they never have any opinions or emotions, never feel anything, and I can see it very clearly due to the high quality of their modeling and voice acting.

Sure, games like Dragon Age try to get around this by filling the game with more voice acting and emotions, scripted by the devs. But that works against my enjoyment in many situations. I can't evolve the story as I grind the gameplay, because the devs don't know which direction I'm trying to take it.

There is a way to improve this situation. A surprisingly straightforward way.

We can see it in relatively mainstream games like Fire Emblem. Fire Emblem's devs don't know what sort of people we'll want to hook up with what sort of people, but they give us a mechanic where people that talk to each other in battle will advance their personal arcs. Not everyone has an arc with everyone, but it still allows the game to reflect the player's storytelling impulses.

As an even more mainstream game, we could use the recent Saints' Row or GTA games, where you can always just call people up on your phone to hang out with them. While they don't have programmed emotions while they hang out with you, you can drag them around into pretty diverse situations and they'll react interestingly - both due to their personality and due to their screwy AI that makes them freak out at random moments.

It's not hard to imagine scaling this up by offering more methods to guide the NPCs to behave in specific ways, either long-term or short-term, to reflect the player's personal story.

For example, a version of the GTA framework where the two people you call over will have an event together after they've left, and you'll get notified of the new social situation. A quick text with a picture of the two of them standing on top of a boat, for example. The event can be determined by how much money you made while they were following you around, or how much adrenaline you spawned, or how much damage they took, or where it left off...

Or let them get drunk or high as you pass them various inventory items. Or you can bring up something from their past by showing them a photo or taking them to their old house. Or you could just let the player freaking select how they want the NPCs to feel from a menu.

Wedding this kind of shaping into the grist of an RPG should allow-

Oh, yeah, grist. We're still talking about grist.

The player selects how the characters evolve. That can easily be limited so the characters stay "in character" and/or lined up for their long-term arc. Even with that limitation it's a powerful way to let the player trigger tasty grist.

When the player pushes a character to act in a particular way, why not have that character drag in a bunch of other content based on that? You get the berserker drunk and leave him stumbling around the rooftops, you're going to have a story event where he's caused trouble. It's a good excuse to introduce local law enforcement, a rich person whose roof got broke, people chatting about the weird, shadowy figure which must have been a werewolf stalking through the city at night, and several options as to how to break your buddy out of jail.

This is "piecemeal" content. It can be injected into almost any setting. If the town is big enough to drunkenly jump from roof to roof, it's big enough to support the subplot. It doesn't mean anything in the long run, although the NPCs you introduce here might recur later in other contexts. You can just throw it in and have fun.

Of course, the subplot should have variable long-term results - change the opinion of the town, change your karma rating, etc, who knows.

Fundamentally, this kind of random content is not too hard. Certainly not as hard as generating a good dungeon for a roguelike. The difficulty lies in making sure the actions the player can choose in order to reflect their personal take on the story can spawn these events without seeming overly random.

All of the moments that introduce grist in existing RPGs are already like this. You get new grist when you step on a trigger, and normally you can tell what is a trigger and what isn't. We're talking about the same exact situation, except that the content we introduce is generated instead of scripted.

The challenge is whether we can make that generated content "flow" from the player's situation. That applies for this piecemeal personal response content, but it also applies for arc content and content packs.

...

Well, in the end, I'd like to talk about how to set up the grist properly.

In my mind, we can radically improve RPG design by spitting grist in based on content pack chunks, arcs through multiple chunks, and introducing grist based on the actions of the player... as measured by actions we allow specifically to let the player choose how they want characters to develop.

What do you think?

Monday, June 06, 2016

Worlds, Characters, and Grind

I used to love "the grind" in games. When you take your party out into a dungeon and level up, fight random enemies, search for more treasure chests, buy the next weapon upgrade. Other people liked platforming, or shooting games, or racing games. I liked grinding.

Well, entering the Tower of Doom and fighting 8000 orcs isn't that much different from replaying a few levels of Super Mario, or running through a Doom chapter, or racing for a cup in some racing game. They're all just play within well-understood constraints, right?

But "the grind" has a very bad reputation. It's not fun.

Is it? Isn't it? It was when I was a kid. Actually, going back and playing FFVI, I still enjoy grinding. What's up? Why does it suck so much to grind in MMORPGs and other modern games?

What did I like about grinding? Why do I like grinding throughout FFI, but only in the first part of FFVI? What do Gau and Strago have to do with making grinding fun again?

Let's be clear: I like to grind because I like having a reason to spend time in that world with those people.

Modern games don't do that.

...

Right now we're coming out of a rut. For decades we've focused on silent and/or customizable characters, and now people have started to realize that marketing (both to consumers and to publishers) is much more effective if you can center it around energetic characters that resonate.

We used to market games based on visuals, gameplay, or plot. Now we market them based on characters. There's nothing wrong with that, but why do I not like grinding in any of these games? They have colorful, interesting characters in lush worlds, so what's up?

Well, I like having a reason to spend time in that world with those people.

I like having a reason to spend time.

Modern games don't give me a reason, and don't let me spend time.

...

The easiest example for me is FFVI. In the first half of FFVI, I loved grinding. Hanging out with Terra and Sabin and Locke and the other guy... Fred? Whatever. That was great! The world was beautiful, the music was grand, the characters were fun! I really loved their reaction when you first use magic in a fight: the game patiently waits for you to use magic, it doesn't just force the scene in wherever. It's damn near perfect.

How about the "reason" and the "spend time"?

Well, in a linear RPG, the "reason" is easy. There's a meat gate. You're stuck here until you can beat the meat gate, so you grind until you can.

The "spend time" is also easy: you measure your progress not in absolute power gains, but in gains relative to the meat gate. You're not "level 6", you're "two levels below where you need to be". How high we set the bar varies based on the player, but in the end you can't get around the meat wall. You have to grind through it.

You have a reason to be here (you're just stuck here) and you have a way to measure the passing of grind-time (your power relative to the meat gate).

The Kefka blows up the world, and you can go anywhere.

I didn't like this part as much for grinding. For non-grinding play, it was intense, and I appreciate that. But I couldn't spend much time in this world. Ironically, once the world opened-up, things got more goal-focused. While the goals were very well-written, they aren't very long and don't require grinding.

You can still grind, of course - kill baddies, gain levels. But there's no easy way to engage with the world or measure your progress - it turns into bland statistical grinding instead of being stuck somewhere intense making progress against a particular challenge.

I had no reason to grind, and no way to really measure time.

This changed when I remember Gau and Strago, two characters I'd written off as "annoying to use". These are characters that give you a reason to grind, and a way to measure grind progress. Not perfectly, but better than nothing. Plus, the music on the veldt is amaaaaaaaazing.

And, just like that, grinding became fun again. I had a reason (improving Gau and Strago's unique abilities) and a way to measure time (The list filling in) in that world with those people.

...

Open-world is not a curse. I love open-world games. I loved them back in the day, with Fallout and Wasteland. I love them now. And I can grind in open worlds, too. The process is a bit different, because instead of grinding "in place", I grind while exploring.

It's dangerous to equate the two kinds of grinding, because the first half of the sentence is different.

I like having a reason to spend time in that world with those people.

In a linear game, the reason is simply the meat wall before you can move forward, and the time is marked by your progress towards defeating it.

In an open game, the player needs reasons and something to mark time. Normally, the setup lets the player choose their reasons and the reasons have some kind of really clear progress built in, or at least can have some kind of progress put in as a limiter.

For example, in Skyrim I might choose to run vaguely towards the next town while grinding any encounters or dungeons I happen to stumble across. I'm grinding my character's chosen class - throwing fireballs, firing arrows, sneaking, stabbing, etc. Now, normally, grinding a class is incredibly dull, because your progress is measured in fractions of a percent of how far the class can go.

I mean, moving from 10 swordplay to 11 swordplay out of 100+ possible points isn't very interesting.

But Skyrim has a few fun ways to measure time. First, when you level up, you get a perk. The perks require you to have a specific stat. So if I want a big damage boost, I need to get to 15 swordplay and have a perk ready to spend on it. Going from 10 to 11 when your goal is 15 is very measurable progress! The chunkiness of the leveling also makes it more interesting than if you just get the damage boost at 15: you've got to weigh when you'll get a level, if you should save the perk, etc.

Another way to measure time is movement across the map. I'm theoretically going to the next town, but there's all sorts of random crap just off the road to lure me aside. That's great. I can see how far I've come, how far I have to go, and I can decide how quickly I want to get there and what detours I want to take.

I can also just strike out in any random direction, but since the map has major destinations and limits built in, I'll eventually reach a natural "stopping" point where I can reassess my goals and methods.

A lot of people don't like Skyrim, probably because this is the primary gameplay. Everything works like this. Want to be a thief? Well, measure how many people in the city you haven't robbed yet, how many buildings you haven't burgled, how much stuff is in this room, how much is worth taking. You have a goal and a way to measure the time you're spending on achieving it.

This seems to be a powerful way to build open world games, given that Skyrim is still popular. Lots of people don't like it, but lots of people still play it even after all this time.

What do you folks think? Are you the same way? Do you have different ways of playing?

Well, what I really want to talk about is how to make characters in that sort of setting, how to create an interactive world, how to make the player avatar act in deep and interesting ways without forcing a particular character onto the player, how to set up NPCs so they have character arcs that react to the player's activities in an open world, and so on.

But, uh, maybe that should wait.