MOO News
For some background information I've been interested in MUD/MOO servers for some time. Not so much playing games on them, but the technology and maybe "serious" applications. A common design is to have a combined network daemon & programming language compiler/interpreter; and a "core database" that uses this to implement some user-facing system like a game. A rather influential such network daemon/language system is "LambdaMOO", a later fork of which is "ToastStunt". These are usually paired with the LambdaCore & ToastCore databases respectively.
LambdaMOO
I was interested to see that LambdaMOO (the server part, not the core database) recently made a new release, so obviously the project is still active. The main new feature is a compile-time configuration setup to enable/disable features such as Unicode support.
Things it has that ToastStunt doesn't are:
- Autoconf-based compile-time plugin system. I might prefer CMake personally, but it's not my project ...
- C implementation
Things ToastStunt has that LambdaMOO doesn't:
- TLS. In my opinion this should be a mandatory feature, not an optional plug-in.
- CMake build system. But not really designed to support plug-ins, except for the extensions.cc that can be added to.
- MCP built-in to the core database (ToastCore). Although on the other hand installing this manually looks fairly manageable.
- Some of the code has been converted to C++
- Many other features
I looked into switching back from ToastCore to LambdaMOO for simplicity and the only two features I'd really miss are TLS and MCP. TLS could with enough time be converted into one of their new plug-ins (it's something of the order of 50-100 C #ifdef statements). MCP however is a core database feature, so I had to look for something like a plug-in for MOO code, I didn't feel the instructions on the MCP page were very friendly.
Core Database Plug-ins
As above, this seems to be the main new feature for LambdaMOO's C code, they chose to do it at compile-time. I was looking for something similar for the core database (where about half of features end up implemented).
I found "MOO Package Manager". However, I'm not sure it's usable for my purposes. The main thing I wanted was to package up the MCP implementation, but most of the objects in this are supposed to be owned by an unprivileged user for security reasons. But from some playing around with MPM, it seems to create everything owned by a Wizard. Still, for anything where it can do the job, it looks great.
Conclusion
I may eventually want my own server. But in the meantime as a foundation for prototyping, it looks easiest to keep using ToastStunt/Core.