[MUD-Dev] Getting Started with Mud Server

Ross Nicoll rnicoll at lostics.demon.co.uk
Wed Apr 7 14:08:10 CEST 1999

On Sat, 27 Mar 1999, Stormblade wrote:

> As for servers of any type I'm a complete newbie. I wrote one in VB a
> while back using the Winsock control but that's about it. So I'd need
> some basic "Mud Server for Dummies" type info like what are the things
> the mud server is going to have to handle and things like that.

> Any pointers to sources will be appreciated but I'm really looking for
> your opinions and ideas on the design like what to include in the server
> and what to place in a dll and so forth.
Windows NT MUDs are rare, UNIX of one form or another is generally
considered a better platform.

First of all, I would recommend you look at the source code to a MUD
similar in design to what you have in mind.

If you are wanting a simple MUD, without any internal language, try
DikuMUD, if you want a MUD with an internal language, try LpMUD or

DikuMUD should be accessible at http://www.dikumud.com/, although I
cannot get a link. CircleMUD at http://www.circlemud.org/ is similar.

MudOS, which is the most popular
version of LpMUD, is accessible at http://www.imaginary.com/~beek/mudos/.

FuzzballMUCK was the only MUCK server I could find, and happens to be
available as a Windows NT version. It is at

I don't know of any other servers in C++ (my MUD server was in the process
of being converted to C++ when I had to drop the project due to time
constraints), but again maybe someone else does. I'd try to get it tidied
up for release, but I have two practicals, an essay, tutorial work and a
project that need to be done, and a whole pile of stuff that should be
done soon. Sorry.

The basics of what a MUD should do go like this:

Open a socket, bind it to a port, listen to the socket.
Load in as much of the database is needed.

Wait for connections on that socket, or any other sockets have input.
   If there is a new connection, create a socket for it.
   If there is new input, read it into a buffer. If a linefeed is
included, parse it.
   If there is output to be sent to a socket and the socket is ready, send
as much as possible.
   If any sockets have closed, or players have quit, tidy up.
Loop until server is told to shutdown

Flush the database from memory.
Close all sockets.

Hope that all helps!

MUD-Dev maillist  -  MUD-Dev at kanga.nu

More information about the mud-dev-archive mailing list