Tuesday, June 09, 2015

Content Reuse and the RPG

A few genres of game rely very heavily on content. Adventure games are the most notable: many locations are only seen once, dialog is rarely repeated, and each puzzle element is unique. In fact, the basic gameplay of an adventure game is intended to gate and pace your progression through the content: there's not any significant statistical or skill progression, it's all about moving through the content.

This makes it a constant balancing game: how fast do you encourage players to move through the content? Do you let them skip cutscenes, even though the cutscenes are literally a third of the game? Do you let them fast-travel, even though walking through the setting is a huge part of the game? Do you let them get hints in-game, even though being confused and searching through previous areas is a big part of your content pacing strategy? And, of course, all of this depends on how dense, layered, and interesting your content is.

Role Playing Games are another genre that burns content to provide game. RPGs progress much like adventure games, and sometimes they borrow from each other. But, fundamentally, RPGs are about pacing and gating using mechanics instead of puzzles.

Method 1: Grinding
Fights are a common gating mechanism, and they are decided mostly by stats. You gain stats by fighting, both intrinsically (level-ups) and through secondary methods (buying better gear). Player skill does matter to some extent, but it can always be offset by more grinding.

Method: Hunting
Like an adventure game's "pixel hunt" challenges, maps in RPGs are embedded with resources to uncover. These are not puzzle elements and are almost never needed to proceed: instead, they simply exert pressure to slow the player down, convince them to spend time searching the setting more carefully. In most cases, this is a bounded and easily managed challenge, so the content stretching is a controlled factor... unlike a pixel hunt, where it could take a completely random amount of time to accomplish per player.

Method: Sidequests
Sidequests are usually manually programmed, but the amount of effort and content it takes to create a sidequest is relatively small. Nearly all sidequests are either fetch quests or kill quests, and literally just hook into the first two methods of extending content. Sidequests do change the context of that content slightly, so they are more efficient extensions than simply leaving the player to walk through the same content again without a goal. Sidequests can also highlight specific high-density content areas and serve as an introduction to confusing or overly dense areas by anchoring you on a single objective even when there are dozens of potential distractions.

Method: Minigame
A minigame such as a card game can add to a player's play time by literally making them play a different game for a while. It is rarely hooked into the core game in any meaningful sense, but as far as tricks to extend play go, it's a good one.

Method: Algorithmic Maps
Randomly generated maps extend gameplay considerably. The content required for generating maps is still considerable, but it is chopped into tiny pieces and combined over and over into theoretically infinite variations. On the plus side, this is a great way to hook a player directly into the content extension system without actually needing very much content. The downside is that it isn't nearly as potent as carefully crafted contiguous content: you won't have the carefully laid out, carefully scripted interactions with real-feeling characters and places since it's all chopped up.

Most algorithms have a method to insert larger chunks into the game. Nethack will drop preconfigured levels on you from time to time. You might see a character over and over throughout several randomly generated maps, each time evolving slightly. You might have a radio contact whose story evolves independently of the maps you pass through, but affects them somewhat. There's a lot of options to thread in dense, contiguous content among the chopped-up level pieces.

The issue
The issue right now is that most RPGs are stretched out too much, and along the wrong axes. We've gotten very good at using the aforementioned content stretch techniques, especially since the advent of the MMORPG. Too good: every RPG is full of so many sidequests and collectables and minigames and random maps that only a tiny, tiny fraction of players ever reach the end.

When an RPG boasts that it takes 40 hours to do "just the main questline", you have to consider whether their priorities are in the right place. We're looking at a game built on content tourism: the heart of the game is to visit interesting places and interesting people. If it takes more time to interact with them than it would in real life, you've stretched that out too thin.

I think we need to consider other methods of stretching, and stop pulling quite so hard in the one direction we've been pulling. None of these methods are new: they are simply hard to put in an MMORPG, so they were avoided in non-MMORPG RPGs as well.

Method: Adaptive Content
Right now, all our content is "fire and forget". The NPCs we meet will give us a quest, we'll do it, and we'll go on our way, never to see them again. Our towns serve as a hub briefly, but then we move on and never really come back. Revisiting NPCs is extremely rare.

Rather than focus on creating more thin towns and NPCs, it's worth considering making fewer, denser asset that can be stretched further without fraying. Make it so every NPC can join your party. Make it so you never leave your hub town, you just evolve it piecemeal. Make it so that NPCs can have relationships with other NPCs.

The key to this is to embed stretching methods straight into the content from the start. Rather than creating a town that exists to be traveled through, we're creating a town that exists to be gripped by the player's time. We want to let the player sink time into our town, our NPCs.

One method is to allow the player to grind NPCs - level them up, change their gear, and so on. The more you make this pay off, the better - we can easily learn from "raising games" like Pokemon. Another method is to let the player socially adjust NPCs - changing how they dress or act, where they live, who they spend time with, who they like, etc. It doesn't need to be player-centric: having the player able to hook NPCs up with other NPCs is actually more powerful because we are squaring the content rather than just linearly extending it. A cyclic method of bringing NPCs into the highlight is also valuable, such as birthdays or aggressive sidequests.

Similarly, the town can be grown and altered, has lots of weather effects, holidays, etc. We can learn from farming games such as Harvest Moon on this front. These should be tradeoffs rather than a linear progression, and we should allow the player to undo and redo the allocations to experiment in a bunch of directions. The city needs to have a powerful personality, but also needs to have statistical effects depending on how it is arranged. Using this in conjunction with more complex NPCs can extend both of them.

Moreover, these also stack with our well-established stretching methods. NPCs which create new challenges depending on their mood, place new collectibles, adjust maps...

Method: Reusing Content
I think short RPGs are also more powerful than people give them credit for. I'd like a bunch of 6-hour RPGs over one 50-hour RPG. But creating enough content for an RPG and then having it be only six hours long is a huge waste.

Well, now we have a lot of ability to reuse content. Instead of content being developed and used solely by one team, we have a good baseline of content available to everyone.

Each game is short enough to be achievable by even a relatively unskilled group. Because they can share assets between them, each one has a much lower content creation load.

They can focus mostly on creating the personality they need to create: the unique NPCs, the stories, the layouts, the missions. The trees and roads and minor NPCs and so on are all inherited from a common repository.

This is the "RPGMaker method", I guess you could say. Except that RPGMaker came out at the wrong time and has the wrong feel. A new tool would be 3D (2D RPGs are niche) and have a much stronger, more adaptable content system. Basically, Unity or Unreal if they had a really good RPG plugin: applying morphs and recolors to content, plugging it in, scripting up dialog... yeah, it's viable.

Method: Sharing Content
The big thing coming down the road is obviously player-created content. There's a lot of different kinds of content: mods, content packs, custom quest lines, character sharing, guilds, role play events. From a dev perspective, it's almost entirely free, depending on how much tech support and policing you want to do.

This is a neverending stream of content. If it could be harnessed, you wouldn't need to ever stretch content! In fact, you have the opposite problem: content swamping. Like Spore. Too much player content shared too aggressively means that everywhere you look is a dense collage of context-free content spam.

I personally think we'll see a growing amount of "contiguous player content". Right now, player content is treated like randomly generated content. It's chopped up and recombined largely at random, presented with little context. But that's a stretching mechanic, and we don't need it any more. Instead, we can focus on allowing players to create a flow of experience, a thread of content as they prefer, and sharing the whole thing with interested others.

Let me repeat that:

Randomly generating levels is a method of stretching a small amount of content to fill a large amount of player time. We don't need to randomly include player-generated content into our randomly-generated levels, because we will never need to stretch player content. There will always be plenty more.

Instead, we should generate levels unrandomly. Unstretched, uncompressed.

Anyway, maybe food for thought.

No comments: