[MUD-Dev] Virtual machine design

Niklas Elmqvist d97elm at dtek.chalmers.se
Sat Apr 17 10:26:34 CEST 1999

On Sat, 17 Apr 1999, Ben Greear wrote:

[Ben Greear:]
> 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.  

Indeed, why do we use programming languages at all? Why don't we program
in pure machine code in our respective OS:es? The basic answer is of
course that program languages in all forms raises the abstraction level
and moves the focus to a specific problem domain. It is infinitely easier
to do systems programming in C than in pure machine code. By designing
your own internal MUD language, you are able to raise the abstraction
level even further and adapt it to the needs of the MUD (the problem
domain), making it that much easier to solve the problems that come up
when programming the MUD. Now people that don't view themselves as
programmers maybe can get their hands dirty and write some quality game
code. This will most definitely not happen when these people are faced
with the prospect of navigating a lot of #ifdefs and curly braces in order
to do the same things in pure C. 

We are seeing this kind of development in almost all areas of software
development. In the computer games industry, for example, the trend has
been to increasingly build *engines* and then use them as a base to build
upon when making individual games. This means that the programmers are
faced with the challenge of building code that must be generic and
flexible. Designers, artists and level designers will be the people adding
real content to the game, not the programmers themselves. This often rules
out using real programming languages for extending the game. The solution
often is to build a miniature programming language for use by designers
and such when adding content.

There are other arguments for internal languages, of course. Security is
one thing -- you can design rather nifty security systems which prevents
game code to run amok and allocate too much memory or resources, for
example. With an internal MUD language, you can also do on-the-fly
compiling (to byte-code, for example) and use it without having to reboot. 
I am sure a lot of people could help me out here and give some more good

> Ben Greear (greear at cyberhighway.net)  http://www.primenet.com/~greear 
> Author of ScryMUD:  mud.primenet.com 4444        (Released under GPL)
> http://www.primenet.com/~greear/ScryMUD/scry.html

-- Niklas Elmqvist (d97elm at dtek.chalmers.se) ----------------------
  - "Are you a physicist?"
  - "Me? I don't know anything about science!"
  - "Marvellous! Ideal qualification!"
           -- Terry Pratchett, Johnny and the Dead

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

More information about the mud-dev-archive mailing list