Circle Architechture - was Re: [CIRCLE] DG-Script's crashing..

From: Patrick Dughi (dughi@imaxx.net)
Date: 05/31/00


        This last set of messages brings up an ongoing issue I have with
the circle code base as a whole.  I'm not sure exactly how to label it
though; perhaps I should fall back on my old line that 'circlemud is a
tense system'.  That is, you cannot push it very far, or it breaks.

Examples:

        I had for a while been afflicited with a crash involving
spec_proc'ed mobs which either removed themselves or others.  It was
sporadic, and not reproducable.  Turns out that the function that fires
the spec_procs simply iterates down the character list; whether it saves
the next mob in the list or not is irrelevant - that could be the pointer
to be freed upon death/purge.

        Two people editing rooms at the same time - one edits room 2000 -
a new room, and the other edits room 3000.  The 2000 finishes first, rnums
are instantly updated, the other suddenly has his exit room references
altered (though it still saves correctly). (may be an old ver of oasis)

        There's more, but the whole problem is not that the system is
unworkable.. each of these cases it would be simple to fix the specific
error.  However, this sort of situation is very easy to cause without
intensive prior knowledge, and lets face it, circle has it's fair share of
wet behind the ears programers.  Worse still, it's insanely difficult to
diagnose, or even discover.

        I believe an object oriented approach to the problem would be the
best bet - as much as I prefer C to C++, this is the direction I'm
leaning.  As an interim solution, perhaps much of the direct access to
structures/data should be replaced with a bit of abstraction, accessor
functions, or data manager functions (for the many lists, for example).
For now, until I can make..basically a mud API, I'm still fixing on a
point of conflict solution for each problem.

        I am curious though if anyone else is experiencing this issue, and
if so, what's being done about it for your mud.

                                                PjD


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 04/10/01 PDT