Sunday, October 24, 2010

Empty Worlds Plus

A steadily increasing number of indie games are following the Dwarf Fortress trend: the point of the game is to build. The world is normally a randomly generated mess to give everything variety, but the focus is definitely on construction rather than exploration.

This is part of a trend towards larger game worlds in general, but games with an actual budget tend to try to populate their large worlds themselves rather than relying on the player. However, I'd like to focus on player-generated worlds for now.

Most player-generated worlds are generated for the entertainment of the player generating them. If you play Dwarf Fortress, you're probably mostly interested in seeing how far you can stretch the game world.

A few newer games are beginning to add human (by which I mean player-human, not game-world human) elements. For example, in Minecraft it is pretty common for players to get together on a shared server to build. Even in Dwarf Fortress, shared fortresses and long, amusingly-told war stories are common.

It's clear that sharing player-constructed worlds with other players in various ways is a concept with legs. One way to do this is through shared construction or management of a world, and another way is through creating artistic sets and allowing other players to experience/use them. Both of these have merit, and they both have, at their core, something that isn't in the game: other humans.

Whether you're interacting with other humans in real time or delayed, whether they have management rights or are just here for the view, these humans are experiencing the world through their own filters, their own judgment.

This sounds painfully obvious, but this is actually an important point that isn't addressed well enough in these games with player-generated shared worlds. What we could really use is some mechanism for helping players to share their thoughts with each other in game space.

Text or voice chat is more or less all that exists right now, and it serves well enough that people don't tend to think about better options. However, if you look at any out-of-game sharing, you'll see an immense amount of emotional value added through pictures, music, camera control, snarky voice- or text-over that's linked to specific times or camera angles.

This kind of machinima is certainly not unique to shared, constructed worlds. For example, there are whole series using this kind of stuff with the Halo engines. However, I think that shared, generated worlds have a much higher need for this sort of thing and need to have it integrated into the game itself.

It's a kind of scripting. Can't use normal scripting languages for an interface, though, because they're not really suited for what we want to do. We almost certainly need a scripting language to actually control the world, but it's overly cumbersome for sharing our emotions and judgments.

So what can we use?

Well, what do we want to do? We want to allow players to inject their own values to the experience of other players. For example, if there's a part of the map with an incredible view, we want to lure players into looking out over the map from that viewpoint and hopefully have them struck by the same sights in roughly the same way. Or we want the player to be able to tell a story about the people who lived in a given place through tiny details that can be discovered by investigating, leading you on a cross-map treasure hunt.

To a large extent, a simple tagging system would work - allowing players to add text or other media to in-world locations or objects. Of course, you would also have to be able to add a camera vector and a "flag" to alert nearby players that there's a thingie to trigger.

Unfortunately, the sort of experience we're talking about isn't really "chunky". It's theoretically possible to cleverly put down triggers such that they cause a more continuous flow of... what other people think... but it would require an extremely deft touch.

Instead, we might want to think about how to allow players to sculpt the world on not just a spatial way, but an emotional one.

The problem isn't the sculpting - there's a thousand ways to do that. The problem is how to give it to the other participants as they pass through the world without (A) stealing their control or (B) being irritating.

The three ways I can think of are music, avatar animation, and companions.

Music is probably the best way, since music is so good at causing emotions. If your game has a music generator in it, it should feed partially off the "emotional sculpting" the players have been doing. It probably is less about the exact spot you're standing on and more about the emotional content of the spots you can see. So if you look out over a vast plain of nostalgia-covered lands, the music should get extremely nostalgic. If you're in a tight space, able to only really see walls, the claustrophobic lack of other areas with music triggers will be reflected in the music.

Still, adaptive music may not be something you can do. So two more options.

Avatar animation is suitable for third-person games. By allowing people to make "points of interest" or "ideal camera angles", you can get the avatar to look in that direction, signalling to the player to do the same. Emotional values in the landscape can affect the avatar's gross animation or coloration as well.

The last option I can think of is similar to avatar animation: a companion follows you around or, at least, is nearby. The companion would be scripted to do specific kinds of things, but this scripting should be open to disruption rather than rock-solid. Companions might be ghosts, people, fairies, dogs - anything that can move around and can show an emotion. They can be aggressive like Navi, or completely passive inhabitants of the region.

The companion option requires a pretty powerful pathfinder and adaptive scripting system, though, so it's not quite as easy to do as you might think.

Anyway, those are my quick thoughts on the matter. What are yours?


Patrick said...

I think the best approach to this would be economic, a solution that the Minecraft Alpha and indeed much of the play in Dwarf Fortress hints at. If you can get people to vote with their scarce tokens, and there are feedback loops involved, that would be very elegant and interesting.

Craig Perko said...

Hmmm, it's tangential to what I'm talking about, but you're right. Scarcity is one way to help define and refine worlds and shared content.

Personally, I think I'd probably take a slightly different approach. There are some drawbacks to a purely economic take on things.

Patrick said...

What would your slightly different take be?

Craig Perko said...

It really depends on the game's overall structure. How the world is made and shared really matters.

For example, if your players are all working in one endless but shared space, an economic method is reasonable because it can keep players from getting too much control and limit their griefing.

However, if you are instead working with a kind of "island" model where each player has their own world, then it's not as important to limit a player's capabilities. Instead, you simply need to control how the worlds are shared and make sure it's all reasonable.

In such cases, the idea of "infinite resources" can be a lot more useful than the idea of "limited resources". Your problem becomes not "who gets to draw water from the well, when" but "how do we navigate the ocean".