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.