@@TITLE Using Melville@@
There are several pieces of code that you can start from when writing your own MUD Library. One choice is Melville, written by MobyDick (aka Stephen Schmidt). You should compare and contrast with other choices, like the Kernel Library, Phantasmal, and perhaps others like Lima, LDMUD, ColdCore, or even Diku-based MUDs like ROM, Merc or CircleMUD.
Many of these reasons are taken from a piece of email written by David Jackson some time ago. While the email is getting older, the reasons are still basically correct.
Melville may be a very minimal framework from which to operate, but the structure for something very functional and very powerful is there. This is a good thing. The code is very well commented, and it's very, very easy to extend. For instance, David Jackson says: "I added functional, working, and debugged code for doors in less than an hour."
Most standard features are documented somewhere within the code, or within the DGD documentation itself. Mobydick's coding may not be the most elegant, but it is certainly very, very readable and easy to follow. This is a good thing. Melville is getting older, and DGD is advancing rapidly, so some newer features like LWOs, statedumps and atomic functions aren't included, but that also helps to simplify the code.
It's very easy to spot areas that you may want to extend it. This is a good thing. Mobydick was wise enough to point out exactly where the code might need to be extended, or where he simply did not feel compelled to add functionality. This makes it very easy to gain a higher grasp of what is going on in the lib. This is a very good thing.
Melville's author actually suggests that it's now the wrong place to start. He believes that the Kernel Library, or (better yet) something based on it makes more sense. Melville was a good, powerful state-of-the-art beginning when it was written, but its organization and features are better for building a 1994-era MUD than a modern one. Melville's structure is very familiar, but can be significantly limiting if you don't want to build Yet Another LPMUD.
Melville also fails to take advantage of a number of powerful DGD functions like additional AUTO objects and all the functionality mentioned above as too new for Melville. Much of it would be more difficult to retrofit into Melville's structure than it would be to write new structure from scratch.
Similarly, Melville fails to have a lot of the structure that makes the Kernel Library so powerful, and it would be very difficult to hack that functionality into Melville.
@@INCLUDE cancel_input_to@@