While Circle still retains the "look and feel" of the original DikuMUD, it has dozens of additional features and bug fixes, and much of the code has been rewritten to be more flexible, efficient, easy to understand, and easy to extend. CircleMUD's history began in January of 1992 when development on it started on one of the DECstation 3100's in Johns Hopkins' Department of Computer Science. Most current development takes place on a home-built 486 DX2/80 running Linux 1.2.
After a couple of weeks of learning how the DikuMUD source code was organized and adding a couple of elementary new features, my fledgling MUD was (covertly) tested for the first time by several of my friends and me. Dubbed 'CircleMUD' in honor of the DECstation on which it was running (circle.cs.jhu.edu), the MUD seemed to work well and (still covertly) was opened to players on a very limited basis.
Development and limited play-testing continued for several weeks, and Circle began to get a fair amount of word-of-mouth popularity on the Hopkins campus; between 8 and 12 people could often be found logged in at once. At this point (January 1992), I decided to take the big plunge and inform the Computer Science system administrator (at that time, Tim Stearns) of CircleMUD's existence, knowing it would either lead to the MUD's immediate demise or open the doors to running it in the open.
At first, Circle was plagued by the same problems many other MUDs have -- instabilities in the code and a lack of features. However, my advantage was that I was a programmer, whereas many other MUD administrators of that era (and even today) were solely game-players, not programmers, and weren't capable of fixing many of the more elusive bugs. Circle soon became and exceptionally stable and bug-free MUD -- a reputation which I think it still maintains to this day. I was also able to create other special features such as a MUD Mail system (commonplace today, but rare at the time.)
I never advertised CircleMUD in any public forum such as the DikuMUD newsgroup. Through word-of-mouth advertising alone, Circle became moderately popular; it became standard to find 30 to 40 people playing during the afternoon. The operating system under which Circle was running (Ultrix 4.0 on a DECstation 3100) limited the MUD to about 58 players -- a limit which was reached several times over the course of Circle's existance.
Not all Gods and Immortals were causing problems; indeed, many of them became close friends in "RL" (Real Life -- i.e., off the MUD). However, finding that I was devoting more time to politics than coding, faced with the imminent loss of the circle machine as a site on which to run the MUD, and given an offer to work solely as a coder (and not as a political administrator) on a new MUD running at Hopkins called JediMUD, I chose to permanently bring CircleMUD down on August 26, 1992.
The decision was certainly not made without much disappointment from many of Circle's players; indeed, at least 8 of them offered the use of their machines for me to use as a new home for Circle. However, not wanting to deal with the political problems of running a MUD on my own or dealing with a "foreign" site to run my MUD from, I instead archived the CircleMUD code and became a full-time coder for JediMUD at the beginning of September, 1992.
The few MUDs which had released their code publically were better than the original DikuMUD, but were often difficult to find (you usually had to get them from someone who knew someone who knew someone who had a copy), and some were quite old and did not have many modern features. At least one publically available MUD, SillyMUD, did have many fancy features, but was large and unwieldy. In addition, many people did not want to start with a MUD which had fancy features -- they wanted to start with a very "plain" MUD, so as to be able to add their own fancy features based around their own vision of how a MUD "should" be.
Another publically available MUD, Merc DikuMUD, was compact an efficient, but had a very different "look and feel" than the original DikuMUD -- in fact, much of the DikuMUD code and area files were not even compatible with Merc, turning many MUD implementors away from it.
All of the publically available code, with the notable exception of Merc, also suffered from the problem of portability: if the person who released it was using a Sun running SunOS, and your machine an SGI running Irix, you were in for some major headaches getting their code to work on your system.
In May of 1993, in light of all the above circumstances, in addition to the constant pleas on the USENET newsgroup rec.games.mud.diku from people asking where they could get a nice copy of DikuMUD source code, I realized that there was a big niche waiting to be filled in the DikuMUD world. A well-written, stable, bug-free, publically available and easily accessible DikuMUD code base was needed. A code base which was fancy enough to have the standard features which most contemporary DikuMUDs players and implementors expected, yet basic enough to allow each implementor huge latitude in customization, and which which would be easily portable to many different operating systems and hardware platforms. I decided that with a little work, CircleMUD would be perfect to fill that niche.
CircleMUD 2.0, the first public release of Circle, was quickly becoming a reality. Circle 2.0 was specifically written to be very small and efficient -- indeed, the basic system used only about 2 megabytes of memory (an unprecedented amount at the time -- most MUDs of its size used 6, 8, or even 10 megs.) Circle 2.0 was specifically designed to be flexible, easy to expand, and easy to debug -- a starting point upon which other MUD implementors could easily turn their dreams of what a MUD should look like into reality.
CircleMUD 2.0 was relased on July 16, 1993. Here is the post which accompanied it:
--------------------------------------------------------------------------- Wake the kids and find the dog, because it's the FTP release of C I R C L E M U D 2 . 0 That's right -- CircleMUD 2.0 is done and is now available for anonymous FTP at ftp.cs.jhu.edu! CircleMUD is highly developed from the programming side, but highly UNdeveloped on the game-playing side. So, if you're looking for a huge MUD with billions of spells, skills, classes, races, and areas, Circle will probably disappoint you severely. Circle still has only the 4 original Diku classes, the original spells, the original skills, and about a dozen areas. On the other hand, if you're looking for a highly stable, well-developed, well-organized "blank slate" MUD on which you can put your OWN ideas for spells, skills, classes, and areas, then Circle might be just what you're looking for. Just take a gander at some of Circle's nifty features: -- In-memory mobile and object prototypes and string sharing for decreased memory usage and blazingly fast zone resets -- All large realloc()s have been removed and replaced by boot-time record counting and a single malloc() for superior memory efficiency -- Split world/obj/mob/zon/shp files for easy addition of areas; plus, all the world files are still in the original Diku format for compatibility with existing areas -- Boot-time and run-time error checking of most data files with diagnostic messages a lot more helpful than "segmentation fault"! -- Player mail system and bank -- Rewritten board system: boards are now stable, robust, more intelligent, and easily expandable -- adding a new board is as easy as adding another line to an array -- ANSI color codes with a fully documented programmers' interface -- On-line system logs -- Optional automatically regenerating wizlist -- a final end to new immortals constantly asking you when they'll be added to the immlist! -- "config.c" file allows you to change aspects of the game such as playerkilling/playerthieving legality, max number of objects rentable, and nameserver usage -- WITHOUT recompiling the entire MUD! -- All text (help, mortal/immort MOTDs, etc.) is rebootable at run-time with the "reboot" command -- All players are given a unique serial number -- no more messy, time consuming str_cmp()s when you're trying to identify people! -- Fully integrated and robust rent/crash system -- allows normal renting, cryo-renting, crash protection, and forced rent (at an increased price) after an hour of idling -- All the standard wizard stuff you're used to: level-sensitive invisibility, settable poofin/poofouts, wizline -- Advanced 'set' command which allows you to set dozens of aspects of players -- even if they aren't logged in! "Stat" also allows you to stat people who aren't logged in! -- Intelligent 'autorun' script handles different types of reboots, organizing your system logs, and more! -- Circle comes with more than a dozen utilities, all fully documented, to make maintenance a snap! -- And much, much more! Unfortunately, the original Circle had more than its fair share of Bad People when it was alive, but it DID lead to an impressive list of security and "asshole control" features: -- 3 types of sitebanning available: 'all' to refuse all connections, 'new' to refuse new players, or 'select' to refuse new players and all registered players who don't have a SITEOK flag. -- 'wizlock' allows you to close the game to all new players or all players below a certain level. -- Handy 'mute' command squelches a player off of all public communication channels -- Handy 'freeze' command freezes a player in his tracks: the MUD totally ignores all commands from that player until he's thawed. -- Even handier DELETE flag allows you to delete players on the fly. -- 'set' command (mentioned above) allows you to freeze/unfreeze/ delete/siteok/un-siteok players -- even if they aren't logged in! -- Bad password attempts are written to the system log and saved; if someone tries to hack your account, you see "4 LOGIN FAILURES SINCE LAST SUCCESSFUL LOGIN" next time you log on. -- Passwords don't echo to the screen; allows 3 bad PW attempts before disconnecting you. -- Players aren't allowed to choose their character's name as their password -- you'd be surprised how many do! -- "xnames" text file specifies a list of invalid name substrings to prevent creation of characters with overly profane names. Listen to all the rave reviews of CircleMUD 2.0! "How long ago was that deadline you set for yourself?" -- My Friend "NO ONE should be denied the power of computation." -- My Professor "Multi-user WHAT?" -- My Mom Give it a try -- what do you have to lose other than your GPA/job, friends, and life? ---------------------------------------------------------------------------
Since its original release, the various releases of CircleMUD have been downloaded tens of thousands of times from its official FTP archive by users from every corner of the United States and from over 65 foreign countries. It has also been downloaded an unknown number of times from dozens of other FTP sites in the U.S. and abroad which started carrying it (most of them through Linux mirroring). A CircleMUD mailing list, with a readership of about 350 people in May of 1996, was established for users of Circle to discuss their experiences, toss around ideas, exchange code, and propose new directions for future versions of Circle.
Circle was designed to be highly portable on as many Unix systems as possible; it is known to run under Ultrix, SunOS, Solaris, IRIX, AIX, Linux, HP/UX, ConvexOS, and other versions of Unix using the GNU autoconf package. Using the WinSock API, it is even possible to compile and run CircleMUD under Windows 95 and Windows NT! In addition, CircleMUD users have also ported Circle to the Amiga and OS/2.
Hundreds of MUDs around the world are based on CircleMUD (here's a small list of a few of them). New Circle-based MUDs pop up almost every day, and I've recieved thousands of pieces of mail from thrilled users who love the code. Some use it to run huge MUDs intended to attract an international audience; others just use it to hack on at home and maybe share with their friends or schoolmates. It makes me very happy to know that I've contributed to the total amount of coolness inherent to the Universe, even if CircleMUD really is a small contribution in the grand scheme of things.