Details about LPMUDs
LPMUD is named after Lars Pensjo, the creator of the
concept. An LPMUD consists of two parts, a driver program written
in C, and a mud library written in LPC, a pseudo-C language
Lars developed. The C program can run on any POSIX environment, and
handles logins and network connections. It also manages all the memory
management of the LPMUD, such as data stacks, etc. In terms of
purpose, it is very much akin to the Java virtual machine. The mud
library consists of all the objects within the MUD. The entire world
is represented as a collection of objects with relationships and
interactions with each other. A mud library can work with its driver
regardless of platform. However, since various drivers may implement
different external functions (efuns), a mud library may not work with
other drivers.
Objects consist simply of pseudo-C files with textual descriptions,
data attributes, and functions for interacting with other
objects. Objects are only loaded when they come into contact with a
player controlled object. This saves memory, and as a result, LPMUDs
are generally much larger than DIKU MUDs. Because each object contains
its own functions for interaction, LPMUDs are much more feature filled
than DIKU MUDs. Each object can conceivably have its own custom
behavior for interaction. Combat, mining, harvesting, spell casting,
any manner of interaction can be modified and coded into the actual
object, rather than in the game program itself.
It is for these reasons our team chose to develop a MUD using the
LPMUD code base.
- The actual game mechanics are seperated from the low level
functions, such as parsing typed input and acception of network
connections.
- The mud library is modular and object oriented, making
modifications relatively easy, unlike DIKU MUD, where a small feature
change requires modifications to all files.
- Mud libraries work with their driver regardless of platform. The
library code is platform independant.