[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