Fork me on GitHub

Leprechaun

Leprechaun is a public-domain mud library for DGD and its kernel library. So far, the Leprechaun system library has the following features:

Middle-weight Objects
Light-weight objects that emulate some properties of persistent objects, notably callouts. They can be used for the bulk of items in a mud.
Object Numbers
Persistent and middle-weight objects are assigned globally unique object numbers. Objects can be found by number. Object numbers are essential in avoiding automatic duplication of middle-weight objects when referencing them across execution rounds.
Inventory System
Classic inventory system with inventories, environments, and vetoable object movement. Only persistent objects can be environments. Moving an object from one environment to another is an atomic operation. Environments fascilitate middle-weight objects.
Program Database
The object manager tracks all program issues in the mud, including the kernel and system auto objects. The program issues can be explored as a directory tree using the pls command.
Creator Arguments
Pass arguments to the create() function when creating persistent clones and light-weight objects.
Hidden Master Objects
The master objects of clonable and light-weight objects are hidden. Like inheritable objects, they cannot be found or called by name.
Atomic Object Creation
An object can undo its creation by raising an error in the create() function.
Restrictions on Undefined Functions
Only inheritable objects can have undefined functions. (For now, this also means that objects with undefined functions cannot be privately inherited.)
Idiomatic Design
Designed with multi-processing and swapping in mind.

The Leprechaun distribution also includes a game library under development, intended to showcase the features of the system library. The game library currently has the following features:

For more information, see the project page at GitHub.