Re: Player positions

From: George Greer (
Date: 01/17/00

On Sat, 15 Jan 2000, Daniel A. Koepke wrote:

>Not speaking in an official capacity:
>The formats of the database files use too many numbers for enumerated
>constants, anyway.  E.g., 8 instead of "standing" -- why build the code
>system to rely upon the position of the numbers, then restrain the coder
>from changing those positions by adding an entire layer that relies upon
>the positions as they are?

It was done that way historically and simply wasn't changed. That doesn't
mean I don't want to change it, though.

>Just out of curiousity:
>When is enough *enough*?  That is, when is beta software sufficiently
>stable to where the developers say, "The other problems are with the
>design, and as much as patching the design with kludges emulates progress,
>real progress won't be made until we re-approach the problem from the

When is empty.

>If, however, we have a sufficient database backend where the mechanics of
>the objects can be held indepedent of hard-coding (such as, say, would
>happen with Berkeley DB or SQL) and a sufficient virtual machine and
>scripting language for implementing the core mechanics, then perhaps ANSI
>C is the way to go.

I really want the independence although I think C99 (they just missed C00)
would be better to use than ANSI C.

>What is more clear to me is that 4.0 should be multi-threaded.

Strangely enough, we can have "real" threads or "fake" threads as well.
Using sigsetjmp() like in the PTH threads can get us the appearence of
multi-threading without the system impact of actually having that many
threads.  We may prefer to have "real" threads, but it's an interesting
option especially when you think of newbie coders and race conditions
between threads.

>A while ago George posted (privately to the developers) a summary of
>various Event Models for the networking code.  These included some
>threading models that I (or he) had tried, some we had talked about, the
>current single-threaded networking event model, and a SIGIO based model.

One example being my ugly-as-sin CircleMUD 3.0-threading patch.

>Services not shown include the database service and the virtual machine.

And splitting the network accepting to a separate process to prevent
crashing problems with disconnect.

Perhaps also splitting the world out so it doesn't need to reboot in case
of a game crash.  Databases such as SQL would give that for free.

George Greer            | Death's Gate Scripts   |

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

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