Neolith is an open-source project of LPMud driver forked from the MudOS v22pre5 code base. Most of the efforts are to improve the code quality, code stytle consistency, portability, performance and other design issues.
The priject goal is to provide LPMud builders a minimalist code base with concise design and easy-to-read coding style.
A LPMud Driver can be illustrated as below architecture:
block
columns 6
Mudlib("Mudlib"):6
style Mudlib stroke-dasharray: 5 5
block:group1:2
SimulEfuns("Simul Efuns\n(Kernel)")
Master("Master\n(Policy)")
end
Objects("LPC Objects\n(Programs)"):3
Backend["Backend\n(Clock & I/O)"]
block:group2:3
columns 1
LPCC["LPC Compiler"]
Lexer["LPC Lexer"]
Preprocessor
end
block:group3:3
columns 2
LPCI["LPC Interpreter"]
Efuns
end
block:group4
columns 1
stralloc
xalloc
end
Simulate["Stack Machine\nSimulator"]:5
style SimulEfuns fill:#474,color:#fff,stroke-dasharray:2
style Master fill:#291,color:#fff,stroke-dasharray:2
style Objects fill:#a21,color:#fff,stroke-dasharray:2
style Backend fill:#d92,color:#fff
style LPCC fill:#228,color:#fff
style LPCI fill:#228,color:#fff
style Efuns fill:#66f,color:#fff
style Simulate fill:#666,color:#fff
Neolith is always released as source code. You need to build the Neolith executable from source code on your target platform. See INSTALL for detailed instructions on setting up build environment.
To utilize modern compiler toolchains and adding features from other packages, the build system of Neolith has been migrated to CMake. Several CMake presets are added to enable WSL + VS Code development:
cmake --preset linux
cmake --build --preset ci-linuxIf the build finishes successfully, the neolith executable can be found in out/linux/src/RelWithDebInfo/.
See CMakePresets.json for details.
To start a MUD using Neolith LPMud Driver, you need a Neolith configuration file. Make a copy from src/neolith.conf and customize the settings for your needs. You can launch the MUD by the command:
neolith -f /path/to/neolith.confIf you are new to Neolith, the follow documentations are for you:
The decades-old C codes from MudOS/LPMud is quite messy and buggy in terms of modern C/C++ standards. Neolith project intended to make a good minimalist LPMud code base where open source contributors can start their LPMud not only with mudlibs, but also extensions to the LPMud Driver.
Please take a look into the following documents before you jump in:
Neolith is a LPMud Driver that run the Eastern Stories 2 MUD (up since 1995). The code was modified from MudOS v22pre5 which is derived from the original LPMud by Lars Pensjö. Credits to original authors can be found in Credits.LPmud and Credits.MudOS.
The Neolith project is intended to be distributed under GPLv2, with the copyright notices from original authors of LPMud and MudOS still applies.
Important
Although GPLv2 allows commercial use, this project contains additional restrictions from original authors.
- "May not be used in any way whatsoever for monetary gain" (restriction by Lars Pensjö, origin of LPMud)
- GPLv2 (open source required, must comply all restrictions from all authors)
With all these terms combined, Commercial Use is NOT ALLOWED.
See Copyright for details.