About MudOS: Introduction

Excerpted from the LPC Timeline

LPC timeline authored and maintained by George Reese (borg@imaginary.com)

April 1989
Having fun playing Tinymud and Abermud, Lars Pensjö decides to write a server to combine the extensibility of Tinymud with the adventures of Abermud. Out of this inspiration, he designed LPC as a special mud language to make extending the game simple. Lars says, "...I didn't think I would be able to design a good adventure. By allowing wizards coding rights, I thought others could help me with this." The first running code was developed in a week on Unix System V using IPC, not BSD sockets. Early object-oriented features only existed accidentally by way of the nature of muds manipulating objects. As Lars learned C++, he gradually extended those features. The result is that the whole LPMud was developed from a small prototype, gradually extended with features.
April 1989
Lars starts the first public LPMud, Genesis.
Late 1989
Nanvaent opens as an LPMud at Strathclyde University in Glasgow, Scotland with Anjou, Aragorn, Bill, and Edacom at the helm. Nanvaent later converts to MudOS and is still going strong today.
Late 1991
After the retirement of Lars from Genesis, the Genesis admins move to create the first LPMud-derived server, CD. CD stands for Chalmers Datenforung, Swedish for Chalmers Computing Club, where Genesis and Igor existed. In spite of his retirement from Genesis, Lars continued to develop LPMud.
January 1992
Valhalla becomes a self-supporting through charging players to play. Though the MUD was given permission to charge players by Lars, this move was still controversial among the LPMud community who belived that Lars no longer had the right to give such permission given the amount of code which had been donated to LPMud from various sources.
February 1992
TMI, The MUD Institute opens to the public as a MUD for the development of a new LPMud server and mudlib. In addition to this development goal, TMI also puts forth a charter to teach LPC. Though the server portion of this project eventually disassociated itself with TMI, it eventually became MudOS. The mudlib portion of the project was never officially released, but it became the basis for the Nightmare and TMI-2 Mudlibs.
February 1992
Ancient Anguish opens to the public.
February 18, 1992
The LPMud 3.1.2-A project is renamed MudOS.

On the separation of MudOS from LPMud 3.X:

From an August 28, 1992 post by Wayfarer@Portals:

The project originally began because a few of us at TMI got together to talk about the driver. We sat down to do exactly what people have been suggesting, to try to pool everyone's personal mods and ideas for the driver together and do them, since Lars hadn't been responding to diffs that were mailed and rumor had it that he was going to stop taking diffs altogether. As you all know, this actually happened shortly after we started (we began development around the [LPMud] 3.0.52-3 time frame). We saw the need to continue enhancement and bug fixing on the driver. However, we also wanted to not be encumbered by strict compatibility with the Lars [LPMud] driver. Thus we have never claimed that we were compatible with Lars' driver.

When the project originally started, Whiplash and I were really the only ones maintaining the code. We were calling our version of the driver A (for American version). This worked fine at first, but as he and I made more and more changes, we were developing internal versions much more quickly than Lars was, so we began piggybacking on top of the A. So our version numbers began to look like this: 3.0.53.A2.2. Again. this worked fine at first, but then when Lars finally released 3.1 and the last two followups after it, it became very inconvenient to use this version numbering scheme.

Around this time, Truilkan started helping out as well, and things became even more confusing with three people at three different points in the country trying to do coherent version control.

Another thing that began happening around this time was that our incompatibilities were becoming noticeable to people using our driver. People who were using it on their sites and people at TMI were always complaining that certain things didn't quite work in the same was as their 2.4.5 driver or even in some cases, as their 3.0 driver. People seemed to assume that it would behave the same way, and didn't understand why compat mode didn't work.

In the end, we arrived at a name for the driver/mudlib combo we called 'mudos'. We weren't even talking about it with respect to the driver we were working on necessarily. It was just an idea.

So a few versions pass, and we finally got fed up with having to answer the incompatibility question and with having a broken version numbering scheme. So we decided that we wanted to start our version numbers over. We were originally just going to call it LPCA, but instead Buddha (or myself, I forget) suggested that we call it the MudOS enhanced LPmud driver. This was suggested jokingly, and we thought it was pretty funny at first, but eventually decided that it actually sounded pretty cool, and that if we ever decided to do the generic driver/mudlib project, that this would fit in nicely. We knew that we were going to be making a sizable number of additions and cleanups to the driver before we really thought we would be 'done', so we started at 0.8 rather than 1.0 on the version numbering. After a few versions down the line, we stripped the name in the version string down to MudOS driver rather than MudOS enhanced LPmud driver, because we felt the name was too unwieldy (it still remains as MudOS enhanced LPmud driver in our docs). Recently, we took out the word 'driver' for the same reason.

Now, you might argue that changing the name was premature at that point. We had changed a significant amount of code, but the incompatibility list was still relatively small, and it was essentially an LPmud with a few new toys on it and a few more bug fixes. I still stick by that original decision however. As you can see, none of the decisions to change what we referred to as the driver were to enhance our own personal glory or to try to downplay Lars' part in the driver (almost all of it). We changed the name in the version string because:

  • we're not compatible with standard 3.0 mudlibs.
  • we wanted a convenient version numbering scheme.
  • we wanted to differentiate ourselves from being "yet another custom hacked lpmud driver".
  • I'm sure that these are some of the same reasons that genesis' driver name was changed to 'cd'. They were able to restart their version numbering, they aren't confused with standard lp drivers, and they are definitely not thought of as just another hacked driver by most people. One further enhancement is what Johan pointed out: it's better marketing. It sounds cooler. We wanted people to use it (at least partly because tmi's mudlib depends on its features). However, we were never attempting to gain personal fame, or trying to degrade Lars. We didn't start calling our driver MudOS for any other reason than what I have described above.

    More from the LPC Timeline:

    November 1993
    With MudOS dying due to the speed of LPMud and elegance of DGD and simple lack of progress on the part of MudOS, Beek builds BeekOS. BeekOS is basically a MudOS core with dynamic compilation of LPC->C, linking the compiled machine code to the running server dynamically. These enhancements are later merged into MudOS once Beeks takes over MudOS development.
    June 26, 1994
    Beek, Robocoder, and Symmetry take over MudOS development. This marks a revival in interest in the MudOS server after nearly nine months of non-development.
    By 1995, Beek has become the primary maintainer of MudOS.
    Page design by Frank Jacquette & Tim Hollebeek
    Copyright (C) 1998 Tim Hollebeek & Frank Jacquette
    Back to MudOS