It's free to join Gamasutra!|Have a question? Want to know who runs this site? Here you go.|Targeting the game development market with your product or service? Get info on advertising here.||For altering your contact information or changing email subscription preferences.
Registered members can log in here.Back to the home page.

Search articles, jobs, buyers guide, and more.

by Crosby Fitch
Gamasutra
December 29, 2000

Time for a Revolution

Resource Prudence

Ownership

Who's God?

Printer Friendly Version
 
Discuss this Article

 

 

 

Letters to the Editor:
Write a letter
View all letters


Features

Cyberspace in the 21st Century
Foundations II

Object Lifecycle

Who's God?

In the beginning someone has to create the virtual world. In fact it maybe necessary for the creation process to be an ongoing one even whilst the world is being explored by players. We just grant creation privileges to certain people who can import or create new objects in the virtual world as they see fit. These objects will be implicitly, initially owned by their computer, and will be immediately up for competitive ownership requests from any other computers operating in the vicinity. For example, if a god drops a bear into a forest, there may be no avatars in the vicinity whose computers would be interested in owning the bear, however there may be a large computer that has a current interest in the forest and all its denizens (because of a large previous interest in that area) and it may well make a bid for ownership of the bear. Alternatively if the god has an avatar in the forest near where the bear has been placed then the god's computer may retain ownership. Who knows? It's all a matter of heuristics.

How do Objects Create New Objects, and Who Owns Them?
Behavioral modeling is duplicated, but this is because it is safe to do so in the knowledge that divergent state will be overridden by incoming updates. This is because state is uniquely named and it is possible to map divergent versions to the respectively named objects.

The question is though, as to who creates objects in the first place? A player may wave a wand and create a chicken, and this will be replicated on the computers of any witnesses' computers. However, what about the eggs that the chicken lays? Does each chicken (the original and its duplicate shadows) lay an egg independently and somehow they all have the same sequence of serial numbers and thus the eggs coincide that way? How about if the number of eggs were dependent on an environmental factor? It might be that some shadow chickens would produce more than others because the environment was slightly different. And who owns the eggs? Each egg can only be owned by a single owner, and while it may seem logical that the owner of the chicken is a good candidate as the initial owner of the eggs, who owns the spurious egg generated by a divergent shadow chicken?

Nope, to keep things manageable, we'll have to require that object creation is a privilege of an owned object, i.e. that whilst behavioral prediction is ok, creational prediction is not. The shadow chickens will go through the same egg-laying motions, but the eggs will not appear until a state update arrives with details of new egg objects in the vicinity.

Object Transformation

Now it may seem a bit disappointing that whilst one can exploit predictable behavior, one cannot exploit predictable creation. There is a way round this problem and that is predictable transformation - which is just a different perspective on behavior really. What you do is you have a couple of eggs lying around inside each chicken, created in advance - you don't wait for the laying process to create the objects. This means the egg objects can undergo a predictable transformation from invisible and internal, to visible, external and independent. All the shadow chickens can now predictively lay their eggs, and have them appear, because they were cached.

That actual creation is so difficult is all well and good I suppose, because it is difficult in the real world too. Objects tend to be constructed out of collected components, rather than simply materialize out of thin air. Torpedoes are loaded into a submarine, fired at some point, and then explode into debris - like many objects they'll travel with the object that issues them.

Object Destruction
Object destruction is quite strange really. Once an object has gone through its lifecycle from 'new', through any phases such as 'in flight', 'exploding', 'exploded', 'invisible', and is finally of no relevance to anyone, it doesn't get destroyed as such, it's simply of no interest. It will eventually fall out of everyone's database as one of the lowest priority objects you can have. There's no need to specifically ensure that the object must be removed from everyone's computer. In fact, it's probably safest that way, because a prediction that a shadow object has blown up, may be overruled a second later by an update from the owned object that says it didn't*.
[*Don't start complaining about these anomalous glitches now. Remember we've sold our souls to get a corrective glitch that lasts a second instead of taking 10 seconds to make sure we don't make a mistake in the first place.]

Object Over-Production

It's possible I suppose that there may be some nefarious gods out there that might think it fun to create a broomstick or some kind of automata that auto-replicates without end: "Hey let's bring the system down by filling it up with bunny rabbits!".

Hey, let's bring the system down by filling it up with bunny rabbits!


I guess one just has to create a disease object that attaches itself to a bunny that attaches itself to any other bunny it gets close to, which shortens the lifespan of the bunny depending upon the rate of contact, i.e. the more bunnies there are in an area, the quicker they die off.

Remember that a computer is never obliged to store details of everything. Indeed the rules of interest may determine that the 100th bunny is inherently less interesting than the 1,000th bunny, and so over-population may not present too much of an operational problem, even if it causes a pollution problem.

One will just have to try and secure the privileges that enable god-like powers. And here we touch on security, but this is another article all by itself.

What Next?

Other things that remain to be discussed in the next installments:

  • Implementation Details
  • Solving Connection and Network Problems
  • Security
  • Administration
  • Designing Worlds, Designing Games

Discuss this article in Gamasutra's discussion forums.

________________________________________________________

[Back to] Time for a Revolution


join | contact us | advertise | write | my profile
news | features | companies | jobs | resumes | education | product guide | projects | store



Copyright © 2003 CMP Media LLC

privacy policy
| terms of service