Wednesday, January 7, 2009

Dynamic World

Dynamic Worlds. The holy grail of game design in our time.

Lets start with a thank you to Dr. Paul Sincock. While the ideas and concepts herein are mine, when I shared them with Paul, he was able to refine them and add a great deal of meat to them that solidified these concepts. Thank you Paul for your work and insight.

The next step is a Definition:

Dynamic World:
A game environment that starts in a predetermined state, but then changes of it’s own accord based upon the random actions of the world, the actions and influence of the players upon the environment and the actions and influence of players towards each other.

This is so we know intellectually what we are discussing. Next, lets create a player vision on how this would work.

The Vision:

A game world where the actions of a player or a group of players alters the types of encounters, the feeling, the flavor, the personal abilities, influence, prices etc of the game world. Where what we do as players makes a difference not only to us, but also to other players and guilds and we can and often do, change the environment forever.

Next, lets take a look at the big concepts then work down into details on how this will work.

From a design standpoint we know about spawn points. For investors and others that may not understand this, these are the locations in the virtual world where the various critters that the players fight are created. In most games they are static locations that do not change, and the type and amount of these critters also do not change. From a players perspective they are where the “Orcs spawn” or where those “Skeletons” are located.

Some of this is good. I have seen and believe that it is important for most of these MMORPG’s that there needs to be a “training area” where players can get to know the game, controls, and what they are getting into. After that, is where everyone is having problems and what this concept is aimed at solving.

Now comes the shift in perspective, so pay attention. Lets take that concept of a “spawn point” and make it just that: a generic location where something will spawn. Not something specific, just something that will be determined. So as we look at the game map we see thousands of generic “spawn points”, or predetermined locations where something will spawn. Later we will expound upon this concept, but for now, it is a nice starting place.

The next shift in perspective, and this one is a bit trickier, is that we will employ something called “Spheres of Influence”. In the end, we will have many types of flavors of spheres of influence, but for now since we are human and can only handle a few things in our head at a time, lets keep it simple and temporarily define these spheres of influence as “race”. Spheres of influence literally influences what is possible to really spawn at a spawn point. If the spawn point has multiple spheres of racial influence, then it randomly picks from a probability table (discussed later), what will spawn in that location.

Stop at this point and take a breath. This is the point where some programmers like to tell me that we do not have the technology to do this.

Please consider this interesting concept. Every week or so we must take down our servers for a period of hours to clean up and fine tune them for optimal performance. If we do this on a regular basis, the same time every week then what we have effectively is a measurement of time. A regular measurement of time that we can use as a game “Heartbeat”, where we can review and total the player and game actions and make changes to those spawn points. Imagine that during this time we delve into a database and compute the effective changes and resolve what will spawn during the spheres of influence and modify those very same spheres. Please note something important here. This is all done when the players are OFF-LINE, and behind the scenes. What is done ON-LINE is only capturing counts of when key things are done, such as when a building is constructed, a key NPC killed, or one of a thousand different actions that can modify (or in some cases, create) a sphere of influence. (I will get much more detailed into this in the following posts.)

So, what the hell does this mean? Lets look at this simple example: Imagine that we have a base race of “Nature”. Nature supports “wolves”, “Deer”, “Mountain Lions”, and “Bear” as spawns. Thus if we had a spawn point and the only influence on it was the racial sphere of influence of “nature”, one of these four (as per this example), types of creatures would spawn.

Then imagine that a player decides to make a nearby Elven village his home and starts to invest in the local economy, or builds a small fortress nearby. The elven village also has a sphere of influence around it and the more things that happen in favor of the village (new buildings, guilds basing themselves here, player positive actions) the stronger the racial sphere of influence of “Elf” will be around the village. When the sphere of influence reaches out to our spawn point as discussed above, then we may see “Elven Hunters”, or “Elven woodcutters” instead of “Wolves”. Note also, that the more things that happen to the Elven village that are negative (such as the guards killed, the buildings burned, civllians killed etc), the less influence it will have. Lets move forward here with the Elven Village growing in influence for our example.

During the “Heartbeat”, we determine what is possible to spawn here, assign relatively strengths to the various spheres of influence, then randomly pick which “Race” will be predominant here, then again, randomly pick what sort of spawn will occur from that influence.

That is the basic concept, now the next several post, we will examine how to make it useable in a dynamic environment. We will be exploring different types of “Spheres of influence”, and different types of “Spawn Points”. Together with a couple of other concepts these will come together and show how a game world can be sustained by creating its own content.

Best,

Jim

No comments: