Phantasmal MUD Lib for DGD

Phantasmal Site > Development

Development on Phantasmal

Naturally, this being a sourceforge project, we welcome developers. This section will tell you how to join, how to contribute, and what coding standards we use.

Temporary notice: Phantasmal development is frozen. Shentino is taking inventory of his shiny new project, and unless he hears otherwise from one of the existing developers, all development is on hold while he sets up the website. The sources are likely to be in solo flux.

Doing Phantasmal Development

Documentation

Maybe you're helping to add features to Phantasmal. Maybe you're developing your own MUDLib and you're starting from Phantasmal. Both work pretty much exactly the same way, and either way this document has some tips for you.

First off, you need to read the documentation. I'm aware there's a lot of it out there, at least compared to similar Open Source projects. I consider that a good thing. This web site ( http://phantasmal.sourceforge.net), the DGD-specific sister site ( http://phantasmal.sourceforge.net/DGD ), those are obvious. Also, read the documentation directory within Phantasmal itself. You'll find it in /doc/design and /doc/api. It's often out-of-date, but it documents several things that are simply not mentioned anywhere else. Feel free to submit improvements and updates to it, you're helping the larger community by doing so.

The SETUP text file in Phantasmal's root directory contains a bit about its overall architecture, and you'll get a bit in README and INSTALL as well. Make sure to look through them. These files are prominently placed. That's because Phantasmal aims at developers rather than "end-users" who will use the MUD as supplied. We don't want a lot of stock MUDLibs, so try to be creative :-)

The final sources of documentation are the community itself. Look to the DGD mailing list and the Phantasmal Sourceforge forums. I try to fold the information from the list and forums into the web site, but I'm only human. Nothing beats the original source for detail and elaboration. And speaking of "the original source", remember that the DGD community is still small. That means there are limits to what you can find within it, but it also means that anybody you can find is happy to answer questions. I love to do so (I can steal my answers back and put them on the web site). Steve Schmidt the Melville author (aka mobydick), is also quite pleasant and polite. He's still active on the DGD mailing list. If you've got a question related to Phantasmal or Melville, you'll find the DGD Mailing List is an appreciative forum.

In the extended DGD community is Skotos -- they keep Dworkin fed by paying him money. They keep DGD humming along and they occasionally contribute to the mailing list. They frequently write new articles. You can find a little "Phantasmal's Best Of" for those articles here.

The Source Tree

After you've read the documentation, it's time to grab some sources and play with them. Before you start developing a MUDLib or DGD itself, make sure you can use the regular code-drops. That means making an experimental version of DGD from 1.2.50 and a bunch of patches. Then grab the latest release of Phantasmal from SourceForge. There's a lot of documentation on how to do that on the DGD site and in the INSTALL text file in Phantasmal. Alternately, skip all that and grab the bundled version, but it's harder to do SourceForge development for Phantasmal that way.

There's a choice you're going to have to make if you're developing your own MUDLib -- will you keep up with mainstream Phantasmal, or will you branch off at some point and do stuff on your own? Phantasmal is in the public domain so you can legally do either, or you can do a hybrid of both. If you're keeping up with Phantasmal or taking a hybrid approach then you'll need to keep a Phantasmal source tree around. Then you can keep it up to date with regular diffs and patching. Features that you want to keep, you can fold right in. Anything that conflicts with your own work, you'll need to adapt or discard.

(to be updated, we use Subversion now)

So get the latest CVS version of Phantasmal and keep it well-updated. Once you've set up the repository, make sure to run "cvs update -Pd" regularly. Those options will prune away empty directories, which is usually a good thing, but can occasionally be irritating.

There are a lot of other things that may be useful for your project. To see my recommendations for development, check out the document for SourceForge Phantasmal Development.

This last bit is just a matter of courtesy, but I'd love to know how you're doing with Phantasmal. Let me know what parts you like, what parts you hate, and where you think I was obviously smoking something illegal with my head up various of my orifices. If you have problems that you think might be caused by what I wrote instead of what you wrote, or especially problems you fix, let me know about it. I'll put you on the Credits page if you ask, or if I happen to think about it :-)

And bear in mind -- more than anything else, development is a state of mind.