MUD Design Digest V1 #56

coder at ibm.net coder at ibm.net
Wed Nov 27 20:20:39 CET 1996


Taken from the ColdX mailing list:

--<cut>--
From: Brandon Gillespie <brandon at glacier.cold.org>
To: Frank Crowell <frankc at maddog.com>
cc: Cold Stuff <coldstuff at cold.org>
Subject: Re: [COLD] How easy is it to animate things in ColdX
Sender: coldstuff-owner at cold.org


On Tue, 26 Nov 1996, Frank Crowell wrote:
> How easy is it to animate objects and NPCs in ColdX?
> Anyone have samples such as triggered events, roving
> NPCs, fuses, and other animated type objects?

How easy is it to do in MOO?

It really depends upon how you approach it.  I would not suggest a tick
model (where every object receives a tick).  What I would suggest is a
trigger/callback system.  Have many reactions trigger based, and have the
creature schedule its own periodic heartbeat.  This way it can devalue its
own heartbeat over time if it is idle (i.e. reduce its heartbeat until
about an hour or so, or completely shutoff)--and have activity turn up the
heartbeat again.  This allows cold to push the inactive object to disk.

Doing a tick model is bad because it is constantly requiring all objects
to be active which demands them to be in memory at all times--thus
increasing the memory profile and object cache.  This works against the
way cold is optimized.

-Brandon Gillespie
--<cut>--

As concerns go for animation design I think this is an interesting one -- possibly most so since I take a very similar tack, arrived at for slightly different reasons.  It clearly illuminates the difference in design of ColdX (not really an Event Driven s
ystem), event drivn systems (like mine), and the more general run of monolothic servers which operate off polling loops, ticks, pulse propagations, etc.

Mine is an event driven system, which by its nature automatically defines minimising the event density as "A Good Thing".  Additionally, everything for me is disk based.  The disk is the final repository of "known correct" data.  Memory may or may not be 
correct -- whch means that minimising the general working set allows the cache to optimally do its.

Oops -- was going to gen into a general discussion here -- but have to run.  

--
J C Lawrence
----------(*)                              Internet: coder at ibm.net
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...



More information about the mud-dev-archive mailing list