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!".
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: