[MUD-Dev] Re: MUD Design doc (long)

Thinus Barnard thinus_barnard at bigfoot.com
Mon Dec 14 10:03:50 CET 1998


Benjamin D. Wiechel wrote:

> -----Original Message-----
> From: Thinus Barnard <thinus_barnard at bigfoot.com>
> To: MUD-Dev <mud-dev at kanga.nu>
> Date: Friday, December 11, 1998 4:56 AM
> Subject: [MUD-Dev] MUD Design doc (long)
>
> >Hi,
> >
> >Here is a design doc I am writing for my MUD. If anyone has such
> >documents I would love to see it. Maybe some of these docs can be
> >published on the MUD-Dev web site..? I find design documents very
> >instructive and much more understandable than source code. I hope this
> >doc helps someone.
> >
> >Cheers
> >Thinus
> >
>
> I am curious, what sort of MUD system is this designed around?  As
> I come from an LP background, specifically, hanging out on CDLIB
> these days, I found that, while top level descriptive, some of what you
> described definitely is abnormal to LP mud.

I am not really designing around a specific system. I use to play some LPs
so my design might be influenced by that.

> The other part that I'm curious about is, is this a help file for coding
> wizards, or is this a descriptive plan of what you are trying to
> accomplish?  When you ask for design docs, are you talking about
> general "How to build a mud" docs, or help docs pertaining to
> various muds/codebases?

More a descriptive plan for what I am trying to accomplish.I am talking
about general "How to build a mud" docs. I believe most of the design should
be as generic as possible. If someone can take your design doc and implement
the system in a language of choice then you have written a good design doc.
Unfortunately you have to make some world specific decisions in your design,
for instance the skill system, combat system, etc. What I plan to do with
implementation is to first build a world where there is no combat and no
rooms except the starting room. Building can then start from there. I will
implement the skill system and combat system at that time. Most of the
commands will also be added then as they become necessary.

> It think one thing that could be an interesting project would be to
> build a HOWTO at a general level for MUDs, although I'm sure that
> this would tend to be codebase specific.  Assuming that, a HOWTO
> that would help beginning mud admins select a codebase would
> probably be appropriate, and also interesting to design.  Is there
> significant value to doing this?

I am sure that it does not need to be codebase specific. You can do
different HOWTOs for the core parts of a MUD. Say HOWTOs on the following:

Networking and sockets
Just a basic explanation of what routines you need. Say you need a NewCnct
routine that informs the library that a new connection has been established
and a new player object should be created and a login handled. Then you need
a routine for when an error occurs, a routine for when a connection is
dropped and a routine to send a message to the socket. This document can
then also take a look at what pitfalls to avoid, general problems with
sockets, binary approach, etc.

Command handling
How to implement commands in your mud. When and where should a command be
handled? Should NPCs and players have different command sets? What about
free text commands? Some questions to address in a command handling doc. Can
also be more specific with a design of a command handling system with the
focus on how easy is it to use and add new commands, how easy is it to
customize commands and how much can code duplication be reduced.

Timing
The first time you need a timing system will probably be for combat. Also
for weather, seasons, scheduling of mud events, etc. How to implement a
system that can handle all these timing issues and still be flexible enough
to add custom timing routines?

Combat system
This will be more specific. The combat system will integrate with the timing
system. The combat system must determine what amount of damage is done, what
messages to display to the different characters involved in the combat, what
attibutes is necessary for weapons and for armour, etc. This will differ a
lot from mud to mud. Maybe a few different systems can be discussed in this
doc.

Skill system
Also very specific. There will be several designs dealing with classes,
races, skills, spells, levels, experience, etc. The core of a few systems
can be listed to give an insight to the different types of approaches.

Player object
What should all go into the player object? Should it be very different than
your NPC object? Should you have a different login object and a different
player object? What physical statistics do you need for a player object?

NPC object
How to do guards. How to do mobiles. How to do AI.

Most of these docs will overlap and influence eact other's design. It will
also not be very general. It will however give someone who wants to develop
his own MUD a great place to start from. It will tell you about all the
different parts of the MUD and how they fit together.
My doc is an attempt to do this but only for my MUD. It is an abstract
discussion of all the different aspects of the mud. The one part I don't
handle in my doc is networking. The reason for this is that I have a module
that handles all the networking and I don't need to design or code anything.

Cheers
Thinus
mailto:thinus_barnard at bigfoot.com

PS: Another example of a design doc can be found at
URL:http://www.cd.chalmers.se/project/so2403/so2403_toc.html





More information about the mud-dev-archive mailing list