[MUD-Dev] Virtual machine design

Ola Fosheim Grøstad <olag@ifi.uio.no> Ola Fosheim Grøstad <olag@ifi.uio.no>
Sun Apr 18 15:37:23 CEST 1999

Chris Gray wrote:
> I think the rule from other areas of programming applies to MUDs as well:
> something like "as soon as you give them a significant boost in speed or
> power, they are already thinking of things that will require 10 times as
> much".

Well, I think the problem is that the more power you get, the more flexible
or bloated or badly designed code will be written.  When programmers wrote
in assembly code in very limited space, skipping the design faze was not an

Another problem is that MUD programmers don't know how to effectively write
simulation code in all the different areas that applies to such a diverse
field. They will be, and should be, happy if they get something running at
all! To contrast this; in the "well-developed" field of raytracing you now
talk about rendering a scene in seconds while the same scene would take
hours some years ago.  10 times faster or 100 times faster hardware is of
little use if your problem is O(n^2) or if you don't understand the
bottlenecks of your hardware (or are unwilling to optimize for it).
Compilers can't optimize your algorithms...

> This list has talked about simulating economies, and how you
> have to approximate them because you can't truly simulate them. Give us
> 100x more speed and maybe a reasonable economy or ecology *can* be
> simulated.

I don't agree here either. I don't think the problem is in accurately
simulating economies or ecologies (unless you talk about meta-evolution).
The trouble is that it isn't fun nor fair from a gamer's point of view. In a
real ecology then it is completely sound for the playerkillers to
successfully destroy all other players. Robust evolution is however very
slow, especially when it comes to players which are obviously out of reach
for speedups :-).  In a real economy it is completely sound for some players
to accumulate wealth while others are enslaved and starving to death. 
Actually, it is bound to happen without a government changing the rules to
balance off the negative sideeffects. My points is: dysfunctional economies
and ecologies are realistic!  Basically, emergent behavior is hopeless as
the basic designparadigm unless you accept to govern it manually. What you
want for a hands-off MUD is a goal-oriented constraints based approach.
(that is, you need to automate or internalize the government in your design)

> I'm hoping that my server, on this box, will be able to
> run about 2000 machines (mobiles/robots) when I'm done with it. Is that
> enough? Never!

200 MIPS/2000 = 10000 instructions per second per mobile. That's a lot! Are
you slowing down the refreshrate for mobiles which players does not interact
with? Have you considered updating mobiles of the same class in batches for
optimal speed? Have you considered using bit-wise calculations? etc..

Another point is, I believe most MUDs do very straightforward iterative
simulations, while they could use statistical models and filling in the
details retrospectively. For instance, in a fight, you could statistically
determine the outcome in advance and then use some rewrite rules for
creating the description of the fight. Or you could use tables and some very
fast statistical methods.

Basically, there is a lot you can do to optimize your system, if you just
know where to look and have insight into several scientific/programming
fields from which you can collect ideas. Knowledge transfer is perhaps the
most effective form of invention?
Ola Fosheim Groestad,Norway      http://www.stud.ifi.uio.no/~olag/

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

More information about the mud-dev-archive mailing list