[MUD-Dev] Re: PDMud (was Re: Bruce Sterling on Virtual Community goals)

Hal Black hal at moos.ml.org
Wed Oct 21 18:32:17 CEST 1998


On Wed, Oct 21, 1998 at 11:58:51AM -0400, Darrin Hyrup wrote:
> At 09:58 AM 10/21/98 +0200, Niklas Elmqvist wrote:
> 
> >I am not entirely sure about the focus for the virtual machine (and it's
> >language). As I see it, we basically have two options:
> >
> >1) Use the VM (and language) to implement game systems as well as a "quest
> >and world programming language" (ala LPC or ColdC).
> >
> >2) Use the VM (and language) as a "quest and world programming language".
> >Period.
> >
> >One way to look at it is to ask ourselves this question: "Do we want to be
> >able to implement stuff like network code, DB handlers and event managers
> >with our VM?" If no, we'd go for option 2) and stick to putting this kind
> >of low-level/engine-specific code into dynamically loaded (there's that
> >word again :) modules. If yes, go for 1) and design an all-out .
> >
> >Personally, I am all in favor of # 2. I believe that an internal language
> >for a MUD should be tailored for use when programming the behavior of the
> >MUD world, not the MUD engine. The engine is "nothing" more than a sandbox
> >for the VM (cf JVM in browsers) which provides engine primitives such as
> >event managing, data channels, security, etc.
> 
> I've always been a fan of #2 myself.  Thats what I've done in my commercial
> projects.  Its much more efficient, and better lends itself to massively
> multiplayer projects (supporting 1000+ simultaneous players.)
> 
> If we need to change the handlers for the low level stuff, we can always
> implement a 'plugin' mechanism for such things without having to make our
> VM handle that.

One thing I'd really like to see, is have the modules made from VM code
completely interchangable with modules made from native code.  That way,
it would be a lot easier to replace VM code bit-by-bit with native code if
you need to do so for performance purposes.  This would be especially nice
if, say, the driver part was in C++, and there was a C++ to VM compiler.
Then, you could swap stuff in and out of VM mode as desired for profiling,
debugging, security, and so forth.

As for what language of choice for the project, I really like programming in
Java.  Unforunately, there just aren't that many Java to Native code compilers
out there compared to C++ to Native code compilers.  So C++ might be a better
choice.

I hate to harp on Java again, but have the would-be VM designers looked at the
Java Virtual Machine?  As far as I know, that spec is free to use, and there
are already some reference VM interpreters to test any one we would build
against.  I really don't know much about the JVM, so maybe it is inappropriate
for what we want to do, maybe people just want to have fun building a VM, I
don't know.  8')

Anyway, it sounds like a good project, I hope I can help out some.  I am more
interested in the game-level design (event engine, economy and ecological
models, world simulation, etc) and think that a modular starting point would
be very valuable.




More information about the mud-dev-archive mailing list