Friday, March 07, 2014

Massively Tweaked Randomness

I've been thinking about player created content in vast, open-world RPGs.

Consider Minecraft. Here's a kind of content sharing that could have been implemented:

Whenever the player edits a chunk, there is a chance that the edited chunk is saved (along with all its edited neighbors) to the server. Then there is a chance that, whenever a player stumbles across a zone with the same basic parameters, the other player's saved structure is pulled into their world instead of the default terrain. Of course, if this player edits that newly spawned structure, there is a chance it gets saved again, as a new spawnable... in this way, interesting structures proliferate as players build within them, push buttons, etc, while boring structures fade out of the pool as players walk through without interacting.

This is a very simple system that would add a lot of player-generated content to everyone's experience. Yes, it would "unbalance" the game if you suddenly spawned in the port city of Atlantis, but who cares? You could even tweak the way spawning works by allowing players to find "maps". If you are following a map through unexplored terrain, it will spawn in player content, otherwise it won't.

Anyway, let's consider an adventure RPG, like Mass Effect.

You can generate random places. You can even generate random NPCs giving out random quests. But they don't feel right. The reason is because an adventure RPG has a very particular feel to it. An adventure is not simply about seeing new places, but about being pulled into them and pushed to experience them. When you arrive in a new place, it spends as much time pushing at you as you spend pushing at it.

You enter a new city and look around a bit... but the NPCs and situations are not wholly passive. A scene unfolds where some cops arrest a man but he escapes. Someone rushes up to you with a question. You overhear some people talking about a curfew. You are attacked by hooligans wearing a dog skull emblem. The weapons shop is gone, burned down. On a subtler level, perhaps one of your party members comments that their parents lived here, or that they know that person, or that something is 'despicable', or that they found a secret door.

These are all "draws". They pull the player into caring about the local environment and the people within it. These people aren't quest hubs, they are people who need help. Yes, the player might think "oh, side quest!", but at the same time they are thinking "she needs help with this monster before all her fields are destroyed".

This can be automated to some extent, and you could probably build a pretty good game out of it. But it'd still be random, disjointed.

This is where "massively tweaked randomness" comes into play.

Asking a player to design a whole city is a bit much. Even asking them to design a sidequest chain is probably a bit much - few players would care to. But you can ask them to tweak what exists.

For example, let's say that there's a lost child and you decide to return him to his family.

Why give him a defined mother or father? Leave the quest open-ended if the player is playing in creative mode. The child needs to be returned to his parents. So ask the player to choose which NPCs are the kid's parents.

Now that it's defined, the NEXT player that comes through will see a kid that needs to be given to his parents, and the parents will already be determined. So they can add in a complexity - send the parents off for some reason, or make it impossible to reach that side of the city from here at the moment, or spawn a kidnapper that's trying to grab the kid away from you.

Or they could add complexity after the quest is over: the kid and family are now a unit again, might as well attach a new quest to one of them. Let's see what quests we have in our bag of fate: oh, here's someone whose factory burned down and it needs investigating. Let's attach that to mom. Mom's factory burned down and needs investigating.

The next player who comes by, maybe he encounters the mom character before the kid character. She's not willing to give out her burned-factory quest because it's waiting on the "reunited with kid" quest. So she says something like "what a nightmare! First my factory, now my kid?!"

In this way, we can allow players to iteratively build a fully-fledged adventure world. Ask each player to donate just one idea to the setting. One new NPC, one new location, one new tweak. Each time, the location gets richer and more interesting.

We can also store variants and allow the player to choose between them. For example, let's say someone adds a mostly-naked troupe of dancing orc girls to the elven village, just randomly out of nowhere. Subsequent players, upon seeing this, can remove it. It gets less and less likely to show up in a new player's experience the more people remove it. On the other hand, if subsequent players explain why they are there and steadily work them into the tapestry of the experience, they become steadily more likely to exist. The more connections they have to other places and people, the more likely they are to exist.

Anyway, it's an interesting thought. It'd be interesting to come up with the in-game logic for why the player can reshape reality slightly.

This would really only flourish if the players were also allowed to flat-out add content, allowing for completely new places, peoples, things, and gameplay to arise long after the game's release.



Christopher Weeks said...

That's a super-great idea. It might even be best if the game pseudo-randomly asked you to contribute content. I'm not envisioning what specific triggers would be but if the game might at any moment ask you to tweak the setting with a new NPC or an altered bit of terrain or a new room in the dungeon or a new event that can be triggered, or whatever -- but it was geared up to be somewhat sensible and more likely where there's a dearth of those things, then you get the emergent gameplay stuff being steered by what the algorithm thinks is needed.

Craig Perko said...

Well, it'd be best to keep it simple for the first generation.

Ellipsis said...

I do really like the idea of players "tweaking" content over the course of play to organically create/improve content. The most important thing to make it work in my mind is that you want it to feel like an integrated part of the gaming experience, so that you get lots of input.

One way to do that is to make the ability to tweak reality a resource the player can earn and spend, and encourage them to spend it by making it a necessity to complete certain goals/quests. For instance, you need to define the lost child's parents in order to complete the quest yourself, or you need to make a potion with X property, but one of the ingredients doesn't exist - spend creation points to insert your own custom plant with the correct alchemical property into the world, and you can use it yourself (and then it may propagate to nearby worlds).

And I agree that you could also incorporate it into the narrative somehow. The world could be a semi-post apolcalyptic world that was hit by a Neverending Story style cloud of "nothingness" that erased parts of reality and made others incoherent.

Craig Perko said...

Yeah, that's what I was thinking.