Monday, November 23, 2015

Open World Epic

So, recently I've been revisiting some of my favorite old sci fi things, and watching some trailers for more recent sci fi things (for example, this Cyberpunk 2077 trailer). I thought I'd talk a bit about making stories, worlds, and scenes with impact.

Now, in linear media, this is pretty well-understood. Books, movies, trailers, songs: all have pretty clear techniques to make things deep, moving, and epic. But games are not really well-understood, typically borrowing from those other media without being able to apply it very well.

If the game is linear, this might not be a huge issue. Linear RPGs and FPS games are quite comfortable dropping into movie-trailer-style cutscenes whenever they need to, and this works to some extent.

But this falls apart when a game is nonlinear. A good example is the proliferance of "open world" games like GTA, Minecraft, Witcher, Fallout, etc.

Most of these games have a linear storyline that progresses in fits and spurts as the player reaches for the next plot element. Right now, the key is to ask permission to take control. You let the player know what they have to do to progress the plot, and when they do that thing they are prepared for the long, noninteractive cutscenes. This works reasonably well, but has some very serious flaws.

Chief among those flaws: bad mood control.

The world has its own feel. In a linear game, the world changes as you progress, so the feel can change. But in an open-world game, the world is largely unchanging - or, at least, the mood of the world rarely changes. In fact, the mood is typically super-bland so that the player never feels alienated by the world.

This means that even if a player is willing to do the next plot event, there's absolutely no guarantee that they are in the right mood. If you want to something moving and epic, you have to spend several minutes prepping the player, pulling them into the right mood, and that's just the worst way to design an experience. This is even nastier if the player dies and has to redo the mission: they either skip the prep and are in the wrong mood, or they sit through it all again and get annoyed.

The good news is that I think there's a pretty easy way around it: work with the player during their open play experience.

One way to do this is very similar to adaptive difficulty. Detect which of the basic gameplay modes the player is in, and expose missions based on that. If they're in an epic fight, have a big boss show up. If they're hiding from the cops, have the hunter squad come in. If they're cruising down the highway, have companions start chattering or a new road show up, or whatever. If they're walking through the streets feeling mellow, pop up quests based on that - a companion shows them their favorite place. A villain invites them to sit at a cafe and have lunch. A street vendor tries to sell them a weird old talisman that he swears is magical.

This basic system relies on a pretty clever system which detects the player's activities and can create or surface good responses without stepping on anyone's toes. This would require a bit of work, and there's no industry standard method of doing it.

There's an easier way, though, one that leverages the open-world nature of the game: have your open world have different places in it.

This sounds obvious, but open-world games typically do not focus on the places in their game, instead only focusing on the "content" in those places. You go to Elvisburg because it has the next mission in it, not because it's a cool place to be. If we can change that, we can make each neighborhood have their own mood, and have missions in each neighborhood reflect that mood.

For example, if you wanted a plot event where a good friend was murdered, you'd make it happen on Murder Row, the brutal neighborhood. In Murder Row, the mood is always suitable for a moving death scene, so the player would be entering the right mood before they even reached the quest marker. Whether they are drawn into the neighborhood seeking the quest marker or whether they just wanted to explore, they'll be in a suitable mood.

It's not quiiiiite that simple, though. There are a few more things required.

1) A reason to stick around. If each neighborhood is just a place to store quest markers, nobody will stay in a neighborhood long enough to absorb the mood. This can be collectibles, hacking passerby, scaling buildings for burgling opportunities, hunting missions, managing local resources (expanding shops, furnishing buildings, harvesting crops, etc). It can also be more passive things, like only regenerating mana while you're standing still, or being able to spend time with a date literally anywhere, or having to talk to locals to level up in various ways.

2) Less permeable neighborhoods. Restrict fast travel (both in terms of high-speed vehicles and in terms of clicking on a place and teleporting there). If you have fast cars, encourage the player to put a beacon on their map in the place they are trying to go, and then use that beacon's location to establish music, palette, and other things, so they are drawn into the mood as they are underway. A big problem with establishing mood is that the player tends to go straight to their destination without spending any time on the intervening space, so we need to fix that.

3) Progressive music. It takes less than a minute for good music to pull a player into the right mood, so have regional ambiance that pulls the player into the proper mood. Musical progression will automatically make the player want to hang around, which will automatically make them discover the various things to do in any given place.

All of these things are fundamentally about wasting the player's time, but the point is to waste small amounts of their time to make your world feel real and your events feel epic, rather than wasting their time on a cut scene to do the same thing.

It has limits, of course. It's hard to set up any epic murders on the beach, because the mood is always wrong. Well, you could change the beach's mood if the next plot event is on the beach and dark.

Either way, in the end this is opportunistic events. When you know what the player will feel, you can place events that suit that mood and are epic. Whether you monitor how the player feels, or whether you draw them into feeling the right thing, it is still a solid approach.

But... it's not very well-suited to a linear plot line. The linear plot line of most open world games is a chain of specific events, one after the other, while allowing the player to run around as they see fit between. This system works better if you have many chains of events with many different moods, so that no matter what the player is feeling, something cool and suitable will happen.

Character-driven stories are a good fit, here. If you have a dozen important companions, you can have each have their own linear story. Paced properly, there will always be an event for each mood. Just be careful: if a player really hates a particular mood, they could push all the character plots forward until everyone's next event is in that mood, then get stuck trudging through ten missions in a mood they hate. It's probably better to have two mood variants for ever character's next step, so that doesn't happen.

Anyway, that's my idea. It's not complicated, but I like it.

I think it will make open world games feel "right". The weird, clumsy feel they have today is probably just because nobody's really taking advantage of the nature of an open world.

No comments: