the strange case of the man who would create a world

27
Confidential and proprietary – do not distribute or copy page 1 The Strange Case of the Man Who Would Create a World Virtual World Building: The Whys and Wherefores Mac Reiter

Upload: taurus

Post on 24-Jan-2016

47 views

Category:

Documents


0 download

DESCRIPTION

The Strange Case of the Man Who Would Create a World. Virtual World Building: The Whys and Wherefores Mac Reiter. Overview. What? How? Why!? Goals Use of existing pieces Problems Some background and previous attempts. What?. Constructing an artificial environment inside the computer. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 1

The Strange Case of the Man Who Would Create a World

Virtual World Building: The Whys and Wherefores

Mac Reiter

Page 2: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 2

Overview

What?

How?

Why!?

Goals

Use of existing pieces

Problems

Some background and previous attempts

Page 3: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 3

What?

Constructing an artificial environment inside the computer.

The user (player) controls a virtual person (avatar or Player Character) inside this environment.

The player interacts with the world and with the computer-controlled virtual people. Talking

Helping – resolving virtual people’s virtual problems

Hurting – taking out virtual frustrations on virtual people (hopefully “bad” virtual people, but that’s up to the tastes of the player)

Requires simulating (or faking) geology, physics, sociology, economics, psychology, theology, biology, and many other –ics and –ologies.

Page 4: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 4

How? The normal way

Lots of artists Terrain

Architecture

People

Lots of writers History

Quests

Lots of time Creating a world by hand one “item” at a time takes a huge amount

of effort

Worse, it takes much less time to experience everything in that world than it took to create it.

Page 5: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 5

How? The hard way...

Simulation Create initial setting, then simulate it forward until you've

accumulated enough history.

Terrain: create initial landmasses, then simulate erosion, tectonic movement (including collisions that form mountains), volcanism, etc.

People, History, Culture: create initial nomadic populations, simulate psychology, economics, technology, and warfare until nations start to form, grow, and get wiped out.

This requires huge amounts of computation power before you start to get anything that you can use, even if you are simulating at fairly abstract levels. You have to run very long time periods to accumulate up an interesting history.

The advantage is that the world is never-ending. You can always simulate more for the player to experience.

Page 6: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 6

How? The slightly less hard way... Random noise, plus a good story

Coherent noise – unlike what we think of as noise, which is truly random, coherent noise merely looks random. It has two special and critical features that make it useful:

It is locally consistent and smooth – to within your definition of smooth. Unlike random noise, values don't just jump from one value to a wildly different value. Coherent noise tends to look more like clouds than like video snow (for those of you who remember what a television looks like with no signal)

Coherent noise is reproducible. Truly random noise is, well, random – if you want to reuse a value, you need to store it, because you can't reliably get it back. (Note that most computer “random numbers” are actually pseudo-random numbers, and you can actually recreate the sequence, but I digress) Coherent noise generates a reproducible but random looking field strength over a coordinate system of your choosing – two dimensional maps, three dimensional spaces, or four dimensional world histories.

Page 7: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 7

How? Yet more noise.

Terrain The standard approach is to use a 2D map and generate heights at

each point.

You could alternatively use a 3D volume and generate a density field. If you combine that with a spherical gradient, you get a bubbly surface on your sphere. This would allow for caves and overhangs, but might be much harder to display. It is also harder to remove “floating islands”...

People, Monsters, Buildings Use a 2D map and build population densities. Thresholds on those

densities can tell you where houses, villages, cities should be.

History Add a dimension for time. If you want to know about a particular time

period, sample the world at that time coordinate. Changes happen gradually in time, just like they happen gradually in space.

Page 8: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 8

How? Is the world just noise?

No (as much as I'd like it to be) Anything that can be simulated by coherent noise does not require

pre-calculation or storage. It can be generated on the fly as the player approaches that area.

The easiest example of the problem is roads. There isn't any particularly reasonable way to generate roads from noise. You need your roads to connect population centers based on some form of reasonable path-finding approach that looks like something a human might have done. This will require generating the world, and then laying in roads between the randomly generated population centers based on slopes on the randomly generated terrain. Because it requires knowledge of multiple population centers, some

of which may be MANY miles away, road generation requires generating a much larger section of terrain than we otherwise need. (Fortunately, it can be generated to a much lower detail)

Page 9: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 9

Why!?

Because everybody needs a challenge?

Because I enjoy power-adventuring in existing partial virtual worlds For the gamers: I don’t really “role play”, and I don’t enjoy the

combat enough to “power game”. I like getting and solving quests and gathering loot. I enjoy problem/mystery solving quests more than combat or delivery quests. These points will definitely show as a bias in my goals.

I dislike “massively multiplayer” anything. Adventuring with a small group of friends is fun, though.

I’ve used up all the parts I like in all the games I can find, so I’d like to make a world where you can’t “do everything” and there is always something new.

Page 10: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 10

Goals

Random generation Terrain Populations Cities, Villages, Castles, Farms, Roads History, Politics, Factions, Families, News

Different historical periods and technology bases

Quests – mysteries, spy, military, personal

Realistic, but Fun Separable reality/difficulty settings

A system that can itself create something that I can’t – more than the sum of its parts. (Considering the philosophical and theological ramifications of this last goal are left as an extra credit exercise for the reader)

Page 11: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 11

Goal 1: Random Generation

Terrain – the simplest of my goals, and already partially solved by others. The following is from the creators of libnoise. It generates a planet surface to a resolution of about 7.5m in about 2 hours.

Page 12: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 12

Goal 1: Random Generation (cont)

Populations and everything that goes with it (habitations, history, politics, etc)

To have large scale quests, you need large scale settings. You can’t generate an intricate murder mystery without histories of the people involved, and you can’t generate a spy thriller (well, a good one at least) without history of the political interactions of various countries.

And, of course, you need the various cities and buildings for the action to take place in.

I’d like the architectural style to be randomly generated, so that discovering a new city, country, or civilization would offer some immediate visual interest.

Page 13: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 13

Goal 1: Random Generation (cont)

Historical periods and technology Take ideas from civilization building games to have technology

trees

As civilizations develop, they move along the technology trees, taking branches probabilistically.

Certain points in the tree should provide self-destruction capability to wipe the slate and provide story hooks for the “history of the ancients”. This does not actually require nukes – highly efficient agriculture and medicine without a matching sense of population balance can lead to population explosion and then destruction. Any form of military overexpansion can lead to spreading resources too thinly and collapse from invaders or internal revolt. Given a long enough timeline, an industrial society might emigrate off a burned out planet, which then slowly rebalances itself and spawns new civilizations that discover clues to the mythological ancients.

Page 14: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 14

Goal 2: Realistic, but Fun

Everybody has different ideas about what is fun: Some people want frequent difficult combat and find “all this talking

and reading” to be boring. Others (me) want combat as an occasional stress releaser and enjoy talking and researching to work through problems.

Should NPCs have realistic schedules (easier to steal from, harder to find when you need) or stand in one place all the time (easier to find, breaks the immersion to buy fruit on a street corner at 3am)?

How obvious should the quests be? Too much handholding, and even the most intricately plotted quest becomes boring, but too few clues and even the most dedicated player can’t find the next step to finish. (This second concern, “losing the thread”, becomes more dangerous in a randomly generated complex world)

Should the player have to worry about rent, eating, sleeping, bathing, etc? More realistic, and may be necessary for maintaining a workable economy, but it can be extremely tedious, too.

Page 15: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 15

Goal 2: Realistic, but Fun (cont)

Saving progress The ability to save and reload a game removes dramatic tension –

“Yea, though I walk through the valley of the shadow of death, I will fear no evil: For I have 20 save games”, BUT:

The inability to save and reload a game causes frustration, game controller destruction, and shelving of games (when the character you’ve lovingly built up for the last two months dies in a sudden ambush in a valley that you’ve walked through hundreds of times before)

For any questions like these, the system should have either a slider or at least a yes/no control to let the user adapt the game to their preferences. In some cases, the user can be assumed to not use features they don’t want (Example: if saving destroys your sense of immersion, don’t save…)

Page 16: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 16

Goal 3: Creation from (almost) nothing

I’m a software designer and programmer. I am not: A novelist

A screenwriter

A historian

An artist

An architect

I want a system where I can take examples from other worlds (real or imagined), attempt to extrapolate rules (actual constraints or just rules of thumb) for that content creation, and then generate random new pieces of a world as I need them, while following the rules. Constraint rules should be followed absolutely, and rules of thumb should be followed probabilistically.

Page 17: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 17

Goal 3: Creation from (almost) nothing

Final goal: I want to be able to walk around in a world that I could not create on my own, but which was created by a system that I did create. I want to encounter places, people, and stories created by a system whose rules I understand, but still be surprised (hopefully in a good way).

Page 18: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 18

Use of Existing Pieces

Graphics Engine – there are a LOT of these, and I would just be wasting my time to make another.

Physics simulation – there are several of these, and they all work better than anything I’d come up with.

Terrain generation – as shown, this is pretty much done already. I definitely would use existing noise generators, but might design my own interconnections (I want the system to be able to generate new terrain types that I didn’t envision).

Artificial Intelligence – I might try to use someone else’s library, but they tend to be little more than path-finding routines and combat action cost/benefit analyzers. Useful, but probably not enough.

Parameterized People Models – these exist, and I’d definitely use one so that I can have lots of people, who all look different, but hopefully don’t look too mutated (I’d have to try to implement some constraints on the random person generator to keep them looking reasonable)

Page 19: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 19

Problems

Where to begin? Artificial Intelligence for a single being is an unsolved problem. I

want to simulate millions of beings with vastly different cultural biases. Fortunately, groups of people are actually easier to simulate than individuals. Running different simulations at different levels of grouping should help. I also hope to use the “noise with a story” approach for large scale situations.

Once the world is generated, how can I keep track of changes in that world that the player is causing? Noise-based values can have an image overlaid to provide deltas. The image can fade over time.

How can the NPCs communicate? Even if the player’s statements to the NPCs are limited to some subset of topics, the NPCs need to be able to build sentences that are reasonable for their culture, gender, age, personality, and current frame of mind. And they need to be able to do so without the sentences getting repetitive (the problem of dungeon Legos™ applied to sentence fragments)

Page 20: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 20

Problems (cont)

Random architecture? Well, at a rough level we’ve got decisions like “how tall?”, “wood or stone?”, “lines or curves?”. Then, say it decides on stone – I have to generate a texture for that stone. Another decision – should it look like nearby stone (a pragmatic architect) or deliberately not look like nearby stone (an architect working for people who want to show off their wealth by wasting it dragging rocks across half a continent). And on, and on, and on. Another unsolved problem.

Economies. Working sustainable economies have not been created even in virtual worlds where actual human players trade resources between each other. How can I create an economic model where the player has incentive to go out and loot yet another dungeon/temple/grave/evil wizard’s lair/local merchant guild? Every CRPG I’ve ever played tends to lead to the player having a huge hoard of stuff and then losing interest in doing anything else (no reward). A truly epic hero running around in the world toppling evil necromancers also has a tendency to topple economies with the resulting loot.

Page 21: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 21

Problems (final)

Time… I’ve just listed a handful of problems, each of which has been studied by teams of people for decades. Barring an immortality treatment (in the real world), I don’t stand a chance. Which brings us back to “Why!?”

I believe that the goal of life is to discover what you are capable of. You only do that by trying to do more than you think you can and seeing how far you get.

I enjoy thinking about how these problems might be solved, as an abstract puzzle.

I think that if I could do even part of this, I might be able to convince others that the whole project could be done.

Even a partial solution could be fun to run around in (Adventure, Rogue, Arena, Daggerfall, Morrowind, and Oblivion were!)

Page 22: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 22

Some Background: Arena (review)

I feel that Arena had the best world generation system I’ve seen. The ability to generate roads, farms, villages, cities, and dungeons that all make sense has not been matched since.

The memory limitations and resulting inability to clear out an area was my largest complaint.

The randomly generated quests were pretty simplistic, as was the main (human written) quest itself. Lots of room to play in, but not much guidance in what to do. This is a weakness for me as an adventure player, but is not a problem for true role-players.

Page 23: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 23

Some Background: Daggerfall (cont)

With more memory, Daggerfall could now keep track of changes you make to a dungeon or other contained area. You could now “clean out” portions of a dungeon. Unfortunately, if you left the contained area, when you came back it would be re-generated and fully stocked with monsters.

Graphics engine: Fully 3 dimensional. Maps were mind-bending 3D mazes. The

ingame map system was very powerful, but 320x200 was insufficient detail in many cases.

Sprites still used for all non-building items

More realistic environment harder to randomly generate. Designers chose to use “reach blindfolded into my bucket of dungeon Legos™” approach, leading to insane and unreasonable dungeons.

Page 24: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 24

Some Background: Daggerfall (review)

Outdoor world generation still random, but much weaker. Undulating plains with randomly placed scrub, no roads, no habitations.

Quest generation random and much more powerful. Quests can have multiple stages, have different types of missions, and are generally timed.

Unfortunately, Daggerfall is quite buggy, even in the final patched version. The complexity of the world provides a tremendous number of places for bugs to hide.

People don’t act very reasonably. It is trivial to loot a town blind and sell the equipment back to its original owners, and yet you can accidentally get every guard in town mad at you because you touched something the wrong way.

Randomly created dungeons are horrible. They twist around for no reason, are ridiculously large, and are extremely confusing to navigate because the repeated use of pieces makes landmarks useless.

Page 25: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 25

Some Background: Morrowind (review)

Nothing is randomly generated: Excellent landscape, because hand generated.

Quests all created by the authors.

People still act unreasonably, mostly through telepathic guards and “neighborhood watch”, combined with everyone everywhere knowing about every misdeed you might commit (some of which are required for quests)

Came with a construction set that end users could use to make their own extensions to the game world. These extensions fit into the world, instead of replacing it like other games do. The “modding” community is still active, releasing multiple new mods every day, even five years after the release.

Page 26: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 26

Some Background: TES IV:Oblivion

Bethesda Softworks, 2006 Todd Howard (my nemesis) was completely in charge of this project

(and the role player and adventurer programmers had already left partway through Morrowind in disgust), so this is more of a slasher.

Computer requirements (roughly): as much as you can throw at it… Quad core, dual video SLI, GBs of RAM, and more GBs of HD will all help. (Can be played at 2GHz, 512 MB RAM, GeForce 6 with at least 64MB VRAM)

World Size: Cyrodiil province of Tamriel Estimated 16 square miles. ~1000 NPCs. One ending.

No random generation of land, cities, or quests.

Page 27: The Strange Case of the Man Who Would Create a World

Con

fid

en

tial an

d p

rop

rieta

ry –

do n

ot

dis

trib

ute

or

cop

y

page 27

Some Background: Oblivion (review)

Like Morrowind, but bigger, brighter, fancier. Oddly enough, it actually seems smaller, due to less

variety of scenery and setting. Uses the “bucket of shiny, bumpy, highly detailed dungeon

Legos™”, but otherwise much the same. PC and Xbox 360 versions very similar, to the point of

weakening the PC interface to match the Xbox 360 version. (Unlike Morrowind, where the PC interface was good for PCs, and the Xbox version was good for Xboxes and televisions)

Lots of marketing hype about Radiant AI. All actual self-determination heavily constrained before release to minimize “emergent behavior”.