[MUD-Dev] Virtual machine design

Felix A. Croes felix at dworkin.nl
Sat Apr 17 16:26:38 CEST 1999

Ben Greear <greear at cyberhighway.net> wrote:

> I'm curious why so many people want to build internal languages into
> their MUD?  I don't mean to sound critical, it's just that I have never
> really seen the benefit.

There are several advantages, some for particular types of muds and
others for all kinds.

> These are the issues that I see:
> 1)  Common users can't program in any real language, so why implement one
> in the game.  Surely it would be easier to just write all the code in
> a 'real' language of your choice and then use readily available compilers
> to make it into a binary....

What constitutes a "real" programming language?  My guess is that you
consider internal programming languages too slow and not powerful

Too slow: taking a look at the history of the LPmud server family,
it is interesting to note that the "speed wars" which spurred much
of the development of the various servers until two or three years
ago have all but died out.  The reason for this is that with
current hardware, or even with previous generation hardware, most
of these muds have all the speed that they'll ever need.

Lacking in power: may be true for some languages, but not necessarily
for all of them.  Some are powerful enough that you cannot just write
muds in them, but any sort of internet server.

"Common users can't program in any real language": did you just grant
internal programming languages the status of "real language"?  Or do
you mean that since internal programming languages are not "real", it
is possible that common users may be able to program in them?

While a lot of users who attempt mud programming never master the
basic principles, it is be surprising to see how much they can
accomplish even so.  Anyone can make rooms and monsters, which may
have predefined behaviours implemented by more capable programmers.

However, those who stand to gain the most from an internal programming
language are not the commot users -- who may never see any code,
depending on the type of mud -- but the expert programmers, because
of the boost in productivity obtained by writing in a high-level

> 2)  Common users can script, so I definately see the need for simple
> scripting.
> 3)  I understand that many people strive for a basic interpreter type of
> shell, which is incredibly flexible, and then use this language to write
> their game particulars in.  However, to me this looks a lot like re-writing
> the OS.


Of course, there would be no point in redoing the operating system as
it is.  There have to be specific advantages to make it worthwhile,
such as:

 - Programmers cannot crash the mud.  Nothing as silly as dereferencing
   a NULL pointer is possible.
 - Any change can be made without taking the mud down, and takes effect
   immediately.  If necessary, it can also be instantly undone.  A well-
   run mud doesn't have to reboot.  This is particularly interesting
   for commercial muds, where downtime means loss of revenue and/or
   customer dissatisfaction.
 - The mud can be made enormously complex without affecting the
   complexity and reliability of the basic server, which can in fact
   be smaller and simpler than what would be needed for even a
   medium-sized mud without internal programming language.

Felix Croes

MUD-Dev maillist  -  MUD-Dev at kanga.nu

More information about the mud-dev-archive mailing list