Covenant MUD

2016 Newsletter

This is my first Covenant MUD status update in many years. It takes the form of a letter to some our old “immortal” staff.

First of all, welcome back to all of you. Everybody who got this letter was a part of the MUD's development in the early days, before the long hiatus. Life got in the way, as it often does, and there were other priorities. I won't pressure anybody into investing a ton of time, but every one of you will always be welcome to participate in the new MUD at whatever level you feel comfortable with.

I actually kept the MUD running all these years, and would log in from time to time from the local shell where the MUD is hosted. When I decided to start working on it again for real, I discovered that the server lived on was no longer accepting outside telnet connections, and worse, the major MUD directories listed Covenant as "dead since 2013"! So I found myself looking for a new host, and actually found a provider that is both cheaper AND more reliable, so thats an improvement all around.

Covenant started out life as a Dale MUD and we eventually migrated to the much more stable SMAUG codebase. However, we don't live in the 1990s anymore, and the codebase we were using was at least 15 years old. That's 15 years of development and improvement that passed us by. I saw the MUD was at a crossroads, with two possible paths: (1) leave the old code as is, and try to upgrade it by patching in 15 years worth of bug fixes, or (2) start with a fresh, modern codebase, and redevelop all of our own features. Both paths involve a significant amount of work, but after some thought (and good advice from Gailyana and Wrathmolten), I decided to go ahead with option (2). The new MUD is running on a codebase called SmaugFUSS—the "FUSS" stands for "Fixed Up Smaug Source" and it received its most recent update in November 2014, so it is pretty fresh. I won't go into a lot of the technical details, but there are a lot of improvements under the hood around memory allocation (fewer leaks) and string handling (fewer crashes) and a number of other nice improvements.

I've added two more behind-the-scenes tools to bring us into the modern era. First of all, our new host comes with version control (git) as a standard feature, which means I can track every code change I make, roll back the code to any point in its development history, or even create "branches" so that I can work on new features without affecting the main operating code. Secondly, I've set up a ticketing system (Mantis) which helps organize code changes into logical groups and keeps a nice running "to do" list. When we get ready for some play testing, I'd like to set up some Mantis accounts for testers; there are a lot of tickets in QA status that are just waiting to be passed. :)

Now, here's the painful part of the new codebase: as stable and lean as it has become over the years, it is still stock SMAUG, and it has NONE of our cool features out of the box, but it does have a lot of junk we don't need. That means none of our races or classes, of course, but also no Realspace, no new skill and experience system, no intelligent furniture—not even banks or inns. Over the years, I managed to convince myself many of our features were standard, but it turns out a lot of our cool stuff was actually stuff that I wrote in response to your suggestions. We were ahead of our time then and in many ways, we still are.

It also turns out that our zones were sophisticated enough that they can't be imported in any simple way. Think of a building like l'Hotel Royale, where we load lamps on the end tables, put little bars of soap and brochures in the dressers, towels hanging on racks, and so on. All these little details need code support that isn't there yet. I'm rebuilding the Harrington-Lefcourt tower by hand (including everybody's old offices) and should be able to install the zone within a couple of weeks. I was also able to import the entire room layout of the City of Tierceron but it's a lonely, empty place at the moment because of incompatibilities with everything other than the rooms. I'm gradually re-introducing all of our mobs and objects, rebuilding missing features as I find them.

Here is a list of what I've managed to do in the first two months:

  • Fixed up a lot of the colours. Stock SMAUG is ugly (bright yellow room descriptions? really?) and we put a lot of effort into our look-and-feel. It's not 100% yet but I've cleaned up most of the colour in various displays.
  • Added the 'home' command so you can set your home room as an immortal and have a convenient location to return to. (I was convinced this was a stock feature. Apparently not.)
  • Re-implemented our own races and classes. We hadn't officially come up with any class skills yet so at the moment, the player classes are placeholders, but I thought it was important to get these in place.
  • Updated all of the object types, weapons types, liquid types, mob 'races', and languages to our own.
  • Added the object 'full' description. It baffles me that stock SMAUG doesn't have a standard field to hold what you see when you look AT an object (you have to use extra descriptions for that) when every object should say something besides 'You see nothing special.' We tried to give most of our mundane objects at least some sort of description, so we need that field.
  • Re-implemented the 'shelf' object type, which was an object that you could put things in or on, like a bookshelf or a towel rack, and when you look at a shelf you see its contents. Shelves are also closable and lockable, so you can create things like locked display cases or glass cabinets where you can see their contents even if you can't get at them.
  • Re-implemented our smart furniture—objects that you can interact with by standing, sitting, resting, or sleeping in, at, on, or under as appropriate. This was a fairly major undertaking; turns out my old code was buggy and leaked memory like a sieve so I had to rewrite most of it. This was one of our very cool features and although I've seen furniture in other MUDs, ours is by far the best.
  • Re-implemented the banking system. This feature depends on working furniture because you have to stand AT the teller's window to complete your transactions.

There's no reason that I have to reimplement everything as it was, so if there are better ways to do things, we can make changes.

So, that's all for now. That was a lot of work but I feel like I've barely put a dent in the project. As I go through rebuilding our work piece by piece I am continually blown away by the attention to detail that we put into every little thing. We've got something very special here and I want to make sure that all this pent-up potential doesn't go to waste.

The old MUD is running at 1750 and is exactly as we left it. You may or may not have a player account there depending on where we left off. If you want access for any reason, let me know and I'll set you up.

The new MUD is running at 1685 and is a work in progress. (Expect a few false starts.) Nobody has accounts on this new one yet so when you're feeling like it's time to join me I can set up your immortal there.

I'd love to get some discussion going again; I'm happy to shoulder the load of writing code but I'm always better when I have other people's ideas to work with. I have ALL our old discussions archived and it is fascinating stuff. Any interest there? Any suggestions on how to proceed? Mailing list? Forum?

As always, thanks for reading.


« PREV   2016 News   NEXT »