[DGD] Persistance

Shevek shevek at btinternet.com
Thu Dec 27 00:55:39 CET 2001


>Yes. The question of what to do with the user and player objects
>of a user who is connected at shutdown time is an interesting one.
> >From a system management standpoint it's probably best to destruct
>them. From a gameworld standpoint, it's not clear that it is. One
>of the issues that really interests me is this: If a world is
>persistant, so that objects are expected not to vanish and reappear
>causelessly, then what happens to a player character when the
>associated user logs out? It seems to me that the PC should still
>have some kind of passive existence in the game even when the
>user is not connected. Precisely how to handle this is not clear,
>and would vary from game to game anyway. A mundane solution is
>to give each player a house with a bedroom, or a castle, or some
>other permanent location. (Perhaps you could quit only in that
>location, though then dropped connections are a problem.) More
>fantasy-oriented solutions involve players changing plane, or
>changing from trance to life and back, or other, more creative
>alternatives.

I'm playing around with this problem myself in my own little embryonic 
mudlib. The way I'm doing things right now the player's have a spirit 
object that associates itself with an actual body object. At 
logoff/disconnect the spirits get destructed and the body remains wherever 
they left it (So some safehouses would be available in any final mud). It 
also allows for a spirit to occupy different bodies (With different 
abilities) throughout the player's existence on the mud, or even for 
player's to share/possess the bodies of others (Think there may have been a 
discussion on this in the archives). I don't know how common this is to the 
various mudlibs, but it seems a nice enough way of doing things.
The only real problems arise in making sure that when a player logs in 
their spirit gets associated with the correct body and the easiest way of 
doing that is use a save file of some kind. I'm not 100% sure that counts 
as true persistence.

I don't like the idea of making the bodies of offline players passive. 
Instead I'm looking into a system whereby the actions of a player in 
specific situations are logged and go into building up a picture of how 
they do things (Eg % of times a player runs at low hit points). Then when 
offline the player's body can react to any of those specific situations in 
a similar style (It can't ever be exact) to the actual player. I'm also 
toying with letting them set a location (Eg Home, Guild, etc)  for a body 
to try and reach if they are disconnected/quit, although that would mean 
some pretty good route finding code.

I guess for me persistence means the environment and only the environment 
is persistent. Everything else should be able to restart itself at any 
point and still produce the correct results. So when you start the driver 
from a statedump you can just issue a simple command and have everything 
cleaned up.

Cheers,
         Shevek

_________________________________________________________________
List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list