[DGD] just out of curiosity
Ragnar Lonn
prl at gatorhole.se
Tue Sep 11 21:20:33 CEST 2012
On 09/11/2012 07:58 PM, Shentino wrote:
> Geir Hansen's thesis document on distributed muds might be a good read.
>
> The gist of it is that it uses a similiar mechanism to atomic rollback
> to bounce objects between servers as needed to complete tasks.
Thanks, yeah, I read that. We actually had two very bright CS students
do similar work for their thesis projects back in 2005, and I had them
read Geir's thesis. One problem with Geir's solution was that it spent a
lot of time moving objects around between servers, as it required
objects to be local when accessing or modifying them. I think Geir
worked around this performance weakness by designing the world so that
objects were sparse at the corners of a region handled by a server. I.e.
because objects are likely to interact with other objects that are close
to them geographically, it makes sense to reduce the number of objects
around server boundaries (if boundaries are geographical).
We took this a step further and defined a max interaction depth - a
physical distance inside the game where objects could interact. By
making it impossible to interact with objects that were far away, we
simplified the problem quite a bit, and the compromise was very small.
If we can make a compromise that drastically reduces complexity while
still supporting 95% of all use-cases, it's a no-brainer in my book.
(interaction over large distances can of course happen anyway, but it
will be asynchronous). Our thesis students managed to produce a
functional implementation in Java that successfully distributed game
state across a large number of instances, with working state redundancy
and single-threaded semantics. Theirs was far from a fully functional
platform, but there might be some good ideas there.
/Ragnar
More information about the DGD
mailing list