[MUD-Dev] Mud Dev FAQ - Part 2

Marian Griffith gryphon at iaehv.nl
Thu May 12 22:46:38 CEST 2005


                        Mud-Dev FAQ
                          part II
                        -----------



Last modified:   20 September 1999
                 14 November  1999
                 16 Januari   2000
                 13 April     2000
                 11 June      2000
		 24 March     2001
		 25 Januari   2001
		 08 September 2002
		 08 December  2002
		 10 August    2003

 1. Introduction
 2. Frequently Asked Questions
 3. Previous Topics
 4. Scenarios
*5. Resources
*6. Glossary
*7. Changes, To Do & Acknowledgements

(* chapters found in this part of the FAQ)

A web based version of this FAQ can be found at:
<URL:http://www.kanga.nu/FAQs/MUD-Dev-L/>

Please email any corrections, suggestions or constructive criticisms
to Marian Griffith at gryphon at iaehv.nl


Recent Changes:
16-01-2000
    Resources: Added Asheron's Call, Everquest, Legends of Futures Past,
               Terris, Treshold and Sojourn to the list of muds.
               Changed the address of The Eternal City.
               Added mudwords.com, mudconnector, mudlinks and gamecommandos
               to the mud resources
20-04-2000
    Resources: Changed the adress of Medievia, added two muds (BloodDusk
               and Realms of Despair.
               Started a new section for FTP sites
    Glossary:  Replaced Adam Wiggins's example code on his request by
               something more print friendly.
11-06-2000
    Resources: Started a list of muds that are run by members of this
               list to distinguish them more clearly from other notable
               projects.
24-03-2001
    Resources: Added references to the MUD timelines by Raph Koster and
               Jessica Mulligan

25-01-2002
    Resources: added new adress for habitat. Added a resource site by
               Bruce Mitchener

07-09-2002
    Resources: Various changes to mud adresses, listings and new muds

08-12-2002
    Resources: Various changes to mud adresses. Added resource site
    by Skotos.

10-09-2003
    Corrected url for website of Dark Age of Camelot mud. Updated the
    description for Terris

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
				5. Resources



Anything notable and mud related that should be read/investigated.


  Mud-Dev site
   <URL:http://www.kanga.nu/lists/listinfo/mud-dev/>
   <URL:http://www.kanga.nu/library.php3>
   Especially the searchable archives and the library. There is a
   much larger collection of design related web articles there than
   can be included in this faq.

Webpages:

  MUD Tree/Timeline
    <URL:http://www.legendmud.org/raph/gaming/mudtimeline.html>
    Raph Koster's timeline of the development of MUDs

  MUD Timeline
    <URL:http://www.happypuppy.com/features/bth/bth%2Dvol8%2D36.html>
    The start of Jessica Mulligan's timeline of MUDs (3 more pages)

  A Rape in Cyberspace
    <URL:http://www.apocalypse.org/pub/u/lpb/muddex/vv.html>
    The infamous article by Julian Dibbell.

  How it really happened...
    <URL:http://www.apocalypse.org/pub/u/lpb/muddex/bartle.txt> or
    <URL:http://groups.google.com/groups?hl=en&threadm=1427@thar.UUCP>
    Richard Bartle's early history of MUDs.
  Also by Richard Bartle
    <URL:http://mud.co.uk/richard/academic.htm> and
    <URL:http://mud.co.uk/muse/speke.htm> For a dictionary of MUD1
    and MUD2 terms.
    <URL:http://www.skotos.net/articles/DAWNOF.shtml> Richard Bartle's
    column on engineering muds.

  Imaginary Realities
    <URL:http://imaginaryrealities.imaginary.com>
    Online mud orientated magazine.

  Killers Have More Fun
    <URL:http://www.wired.com/wired/6.05/ultima.html>
    An article by Amy Jo Kim.

  Lucasfilm's Habitat
    <URL:http://www.communities.com/company/papers/lessons.html>
    <URL:http://race-server.race.u-tokyo.ac.jp/RACE/TGM/Mud/habitat.html>
    <URL:http://www.communities.com/people/crock/habitat.html>
    <URL:http://beta.communities.com/>
    Detailed documents about an ambitious graphical mud. [JCL]
    May currently be located at <url:http://www.vzones.com> [Mats Lidstrom]
    also several of th documents may no longer be at the indicated location

  Lydia Leong's MUD resource collection
    <URL:http://www.godlike.com/muds/>
    [Raph K]

  Marian Griffith's !Overlord project
    <URL:http://www.iaehv.nl/users/gryphon>
    Full of information useful to mud designer/admins.

  MUDDex
    <URL:http://www.apocalypse.org/pub/u/lpb/muddex/>
    A collection of documents including Bartle's, Dibbell's mentioned
    above. [Raph K]

  Raph Koster's Website, Gaming Section
    <URL:http://www.legendmud.org/raph/gaming/>
    <URL:http://www.legendmud.org/raph/gaming/links.html>
    Lead designer on Ultima Online, plenty of snippets on muds, particularly
    those pertaining UO itself.  Many of the above sites are index in the
    links section.  Raph's Laws of Online World Design can also be found
    here.

  Skotos Articles Archive
    <URL:http://www.skotos.net/articles> Regular columns on game design,
    development, engineering and playing.

  Bruce Mitchener's Agora website
    <URL:http://agora.cubik.org/>
    knowledge base for mud-related topics.


Mud Finders:
  Mudwords
    <URL:http://www.mudwords.com/>
--  This site seems to be suspended  --

  Mudconnector
    <URL:http://www.mudconnector.com/>
    I think this site took over when Doran's mudlist stopped due to an
    overwhelming number of muds that made it impossible for a single
    person to keep up.

  Game commandos
    <URL:http://www.gamecommandos.com>
    Mud connector and peering review of muds.
--  This site is now defunct --

Muds:

  AlphaWorld: <URL:http://www.cs.cuc.edu/~sopwith/aw/>
    Anyone care to comment?

  Anarchy Online

  Armageddon: <URL:telnet://ginka.armageddon.org:4050>
    To my knowledge the ONLY truly successful full-bore RP environment
    based on a Diku-style server with full combat and the like. Often
    cited as such at any rate. [Raph K]

  Asheron's Call: <URL:telnet://??:??>
    If I recall correctly this is one of the first first-person graphical
    commercial muds. (after Ultima Online and its predecessors)

  Aturion Dynasty: <URL:http://aturion.com:4444>
    Almost all the muds done by Owen Emlen have interesting design 
    features to them too. [Raph K]
    [See also EmlenMud II]

  Avalon: <URL:http://www.avalon-rpg.com>
    Commercial text muds. Avalon has an interesting newbie tutorial
    mode, and room description generation code that is nifty
    too. [Raph K]

  Cold: <URL:telnet://ice.cold.org:1138>
    A branch off the ColdMUD (below) using the Genesis driver, sometimes
    referred to as Cold/Genesis or ColdX/Genesis.

  ColdMUD: <ftp://ftp.kanga.nu/pub/MUD/Servers/ColdMUD/>
    ColdMUD is for all intents and purposes dead.  Greg Hudson officially
    stopped development of it back in 1994, and I just 'branched' the
    ColdX/Genesis from it, rather than making an issue with people and
    continuing to call my development of it 'ColdMUD'. [Brandon Gillespie]

  CoolMUD: <URL:http://csclub.uwaterloo.ca/u/sfwhite/coolftp>
    Incredibly elegant server design. [JCL]

  Dark Age of Camelot <URL:http://www.camelotherald.com><telnet n/a>
    Big commercial graphical mud

  Dark Sun Online: <URL:http://www.ssionline.com>
    Commercial graphical mud with turn-based combat in a real-time
    environment. [Raph K]

  DartMUD: <URL:telnet://dartmud.com:2525>
    A very ambitious LP mud with lots of good ideas which never seemed
    to have gelled together correctly.  Plenty of bugs.  A sequel is
    being worked on.

  DragonRealms (Gemstone): <URL:http://dragonrealms.net>
    Gemstone was and probably still is the most popular mud in the
    world, period. It evolved into DragonRealms. [Raph K]

  Duris: <URL:telnet://duris.org:6666>
    A pk mud with economy?! [Down? Jul 1998]
    Changed name to Duris: Land of Bloodlust, <URL:http://www.duris.org>

  Eternal City, The: <URL:http://www.eternal-city.com/>
    Commercial mud using the Cold server.

  EmlenMud II: <URL:http://degu.cs.indiana.edu:6669/em2.html>
    Looks like Owen Emlen is in the process of making a new mud.

  Everquest: <URL:telnet://??:??>
    A commercial graphical mud

  Furcadia: <URL:http://www.realtime.net/furcadia/>
    A commercial graphical mud by Dr. Cat.

  LambdaMOO: <URL:http://vesta.physics.ucla.edu/~smolin/lambda/>
    One of the pages for this MOO.

  LegendMUD: <URL:telnet://mud.legendmud.org:9999> <http://www.legendmud.org>
    First classless mud? Historical theme, since Feb. 1994. Uses
    inheritance and attachable internal scripting system. Raph Koster
    still forced to advise. Mud run by Kristen Koster
    [Source: email:kaige at legendmud.org]

  Legends of Futures Past
    An excellent commercial text based mud [Ilya]
    This mud closed its doors at dec 31st 1999

  Medievia: <URL:telnet://medievia.com:4000>
    The most popular free gaming mud I know of. Pioneered the use of
    things like in-game spam ads for themselves and lack of due credit
    given for code (:P) but also has things like ASCII map terrain,
    large algorithmically generated areas, etc. [Raph K] 

  Meridian 59: <URL:http://meridian59.neardeathstudios.com/>
    Possibly the first graphical first-person (commercial) mud.

  Mortal Conquest: <URL:telnet://199.74.98.37:9999>
    That game I can't remember with the whities and the darkies. [JCL]
    By Own Emlen. [Down, 1st March]

  MUD2: <URL:telnet://mud2.com:23>
        <URL:http://www.mud2.com>
  or    <URL:http://www.british-legends.com/> (version recoded in C)
    A licensed copy run by Bartle.

  MUQ: <URL:http://muq.sourceforge.net/>

  Northern Lights:
    <URL:http://www.ludd.luth.se/mud/aber/northern_lights.html>
    <URL:telnet://aber.ludd.luth.se:6715>

  Realms, The: <URL:http://www.realmserver.com>
    Realms is a commercial graphical mud from Sierra.

  Realms of Despair: <URL:telnet://realms.game.org:4000>
    Popular mud and development ground for the Smaug codebase
    [Derek Snider]

  Shades: <URL:telnet://games.world.co.uk:23>
    TODO - get Bartle's comment here.

  Skotos: <http://www.skotos.net>
    A community of online games, including two text MUDs: Grendel's Revenge
    and The Eternal City, a text MUSH: Castle Marrach, and a strategy game:
    Galactic Emperor: Hegomony.
    Also offers designers the ability to build new games using the skotos
    tool kits.

  Sojourn: <URL:telnet://toril.org:9999> <URL:http://www.torilmud.com>
    Predecessor and sister game to Duris. A strongly PK oriented mud
    [Apparently no longer in existence.
     anybody willing to write a post-mortem?]

  Sojourn3: <URL:telnet:sojourn3.org:9999> <URL:http://www.sojourn3.org>
    Apparently the current version of Sojourn
    (source: Elia Morling. email:elia at familjen.se)

  Terris: <URL:telnet://??:??> <URL:http://www.legendofterris.com>
    A text-based mud. Initially accessible through AOL, but currently
    independent (www.onlinegamescompany.com). Modular build and with
    a powerful building language for both building and quests. Aims
    to be without reset. Cooperative gameplay (no PvP or PK)

  Toril: <URL:telnet://torilmud.com:9999>
    One of two offshoots of Sojourn (other being Duris).
    [Apparently no longer in existence. Anybody willing to
     write a post-mortem?]

  Treshhold:
    TODO: Ask Ilya about this one.

  Trash: <URL:http://games.world.co.uk>
    Somewhere in the webpage with Shades.  [Down, Sept 1998]

  Tron: <URL:telnet://polaris.king.ac.uk:3000>
    An out and out pk mud, more of an arcade game using ASCII maps than
    a mud in the conventional sense.  Not one for the faint hearted.
    Should you want a game but can't find anyone, drop me a bell.
    Start learning with disc or spider.  Be prepared to break your
    keyboard. [Ling]

  Underlight: <URL:http://www.underlight.com>
   A technically/GoP modest, socially interesting RP first-person
   graphical mud. [Source: Dave Kennerly email:Dave at Nexon.com]

  UOL: <URL:http://www.ultimaonline.com>
    Ask Raph K.

  VR1 Crossroads
    TODO: Ask Ilya about this one

  Worlds of Carnage: <URL:telnet//carnage.labs.emich.edu:4000>
    The first Diku mud with an internal scripting language, called
    "easyacts." This code formed the basis of the MobProgs put into
    Merc 2.2. LegendMUD is a spiritual offshoot of Carnage, and Cythera is
    a literal offshoot.  (Interestingly, Damion Schubert, a designer on
    M59, was also a Carnage immort alum). Imperium Gothique's scripting
    was derived from either mobprogs or Carnage, not sure which. Carnage
    definitely had a lot of influence on the world of Dikudom. [Raph K]



Muds run by list members

  Achaea, Dreams of Divine lands: <URL:http://www.achaea.com/>
     A commercial mud by Matthew Mihaly <the_logos at achaea.com>
     running the Vortex server

  AmigaMUD: <URL:telnet://mud.graysage.edmonton.ab.ca:6666,6668,6669>
    Chris Gray's custom mud.  Moving site. [Jun 1998]
    Mud is infrequently running.

  Blood Dusk <URL:telnet://mud.dusk.org:7000>
     <URL:http://dusk.org/BloodDusk>
     Mud ran by listmember Adam Wiggins <adam at treyarch.com>

  Dark Ages <URL:http://www.DarkAges.com>
     Graphic MUD with player-controlled politics and religions
     Mud previously run by listmember Dave Kennerly <dave at darkages.com>

  Discworld <URL:http://discworld.imaginary.com>
     A custom lpmud that has been running since 1991, still administed
     by the same person, David Bennett <ddt at discworld.imaginary.com>.

  Nexus: The Kingdom of the Winds <URL:http://www.NexusTK.com>
     US version of Asia's first graphic MUD (1995)
     Mud previously run by listmember Dave Kennerly <dave at darkages.com>

  Retromud <URL:http://www.retromud.org>
     An LP-mud with 5 years custom development by Rayzam <rayzam at home.com>

  VieMud <telnet:http://viemud.inetsolve.com:2500>
     <url:http://viemud.inetsolve.com/>
     Mud run by listmember Alex


Notable muds yet to be found:

  IOWA Project, The:
    Rememeberance pages are at <URL:http://www.iowa-mug.net>

  Island:
    Did this not die some time back?  [Thouhg Keegan may yet resurrect it]

  MUD1:
    Although MUD2 is up above.


Not so mud related webpages.

  ANSI and VT terminal codes in general:
    <URL:http://www.cs.utk.edu/~shuford/terminal_index.html>

  And in case you wanted to know more about VT-### in particular:
    <URL:http://www.sdsu.edu/doc/texi/screen_10.html>
    <URL:http://www.mhri.edu.au/~pdb/dataformats/vt100.html>

  Or ANSI terminals:
    <URL:http://www.mhri.edu.au/~pdb/dataformats/ansi.html>

  AI Nodes/ANN:
    <URL:http://206.107.246.21/packhste/5/>

  Amit's Games Programming Page:
    <URL:http://www-cs-students.stanford.edu/~amitp/gameprog.html>

  Anti-Mac interface:
    <URL:http://www.acm.org/cacm/AUG96/antimac.htm>

  BSP trees:
    <URL:http://reality.sgi.com/bspfaq/index.shtml>

  Image formats (esp PPM):
    <URL:http://www.dcs.ed.ac.uk/~mxr/gfx/2d-lo.html>

  R-Trees:
    <URL:http://www.cs.cuhk.hk/~drsam/methods.html>

  VR programming tutorial:
    <URL:http://www.cs.virginia.edu/~rg3h/networkVR/paper.html>


Programming references to get the budding scratch mud coder started:

  BSD Sockets: A Quick And Dirty Primer
    <URL:http://world.std.com/~jimf/papers/sockets/sockets.html>

  With other relevant papers pointed to by:
    <URL:http://www-users.cs.umn.edu/%7ebentlema/unix/>

  Vic Metcalfe's (vic at brutus.tlug.org) unix-socket FAQ can be found at
    Text version:
 
<URL:http://unlser1.unl.csi.cuny.edu/faqs/sock-faq/usenet/unix-socket-faq.us
enet>
    <URL:http://www.ibrado.com/sock-faq/usenet/unix-socket-faq.usenet>
    HTML version:
 
<URL:http://unlser1.unl.csi.cuny.edu/faqs/sock-faq/html/unix-socket-faq.html
>
    <URL:http://www.ibrado.com/sock-faq/html/unix-socket-faq.html>

  There's a nice leader page for the FAQ with other related pointers at:
 
<URL:http://unlser1.unl.csi.cuny.edu/faqs/sock-faq/html/unix-socket-faq-1.ht
ml>
    <URL:http://www.ibrado.com/sock-faq/>

  The TCP/IP applications FAQ can be found at (of course):
 
<URL:http://www.faqs.org/faqs/internet/tcp-ip/applications-FAQ/index.html>

  The TCP/IP FAQ from comp.protocols.tcp-ip (probably also on news.answers
  etc) can be found at:
    <URL:http://www.dc.net/ilazar/tcpipfaq/default.htm>

  The raw IP networking FAQ (most interesting to those of use doing
  custom clients or server inter-connects) can be found at:
    <URL:http://www.whitefang.com/rin/>

  The TCP/IP resources list has all sorts of useful pointers:
    <URL:http://www.faqs.org/faqs/internet/tcp-ip/resource-list/index.html>

  Including the various BSD socket programming tutorials:
    <URL:http://ftp.std.com/homepages/jimf/sockets.html>
    <URL:http://ccnga.uwaterloo.ca/~mvlioy/stuff/ipc_intro_tut.txt>
    <URL:http://ccnga.uwaterloo.ca/~mvlioy/stuff/ipc_adv_tut.txt >

  The Unix Refence desk is another good reference:
    <URL:http://www.geek-girl.com/unix.html>

  As is Unix Guru Universe:
    <URL:http://www.ugu.com/>

  And of course, W R Steven's page:
    <URL:http://www.kohala.com/~rstevens/>


FTP resources for MUD code

  ftp.game.org

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
			  6. Glossary of Terms



The list has managed to come up with its own jargon.  Here are some of
the current buzzwords:


Cooperative role-playing: Refers to a specific kind of RP where each
  player's personal 'storyline' is paramount.  All players are aware
  of, and sensitive to, the needs of each player for their story, and
  all actions are completely consensual.  This is a type of play often
  found on MUSHes.


Event: A system design alternative to polling loops.  Objects generate
  events, which are processed in their proper order by the event
  handler.  This is frequently clearer and far more efficient,
  especially with large numbers of objects.  Examples are a torch
  generating an event to burn out in two hours, or a spell generating
  an event for an earthquake to occur in four seconds.

  The following is a compilable example of generic event-handling code in
  C courtesy of Adam Wiggins.

---<begin code>---

#include <stdio.h>

typedef float Tick;               /* Time counter type */

/* Defines for event types */
enum { EVENT_ALPHA = 0, EVENT_BETA, EVENT_GAMMA, NUM_EVENTS };

/* The event structure itself */
typedef struct SEvent
{
   int Type;        /* EVENT_x */
   Tick RipenTime;  /* time at which event ripens */
   void *Data;      /* any extra data to be passed to the callback function */
   struct SEvent *Next;      /* next node in the linked list of events */
} Event;

/* Defininiton for the callback function type */
typedef void (*EventCallback)(void *);
#define EVENT(x)    void (x)(void *)

/* Event function prototypes - these should be defined somewhere else, like
so:

    EVENT(EventAlpha)
    {
         code to execute on event completion;
    }
*/
EVENT(EventAlpha);
EVENT(EventBeta);
EVENT(EventGamma);

/* Master list of event callbacks, by type */
EventCallback EventCallBacks[NUM_EVENTS] =
{ EventAlpha, EventBeta, EventGamma };

Event *EventList = NULL;        /* Master event list */
Tick GameTick = 0;              /* Current game time */

/* Call this to add an event "time" ticks into the future */
void AddEvent(int type, Tick time, void *data)
{
   Event *newEvent, *e, *prev;

   /* Sanity checking */
   if (time <= 0)
      return;

   /* Create the event */
   newEvent = (Event *)malloc(sizeof(Event));
   newEvent->Type = type;
   newEvent->RipenTime = GameTick + time;
   newEvent->Data = data;

   /* Descend the list until a later event is found */
   for (e = EventList; e && e->RipenTime < newEvent->RipenTime; e = e->Next)
      prev = e;

   /* Insert the new event before that event */
   newEvent->Next = e;
   if (prev)
      prev->Next = newEvent;
   else
      EventList = newEvent;
}

/* Call the function below during your update loop */
/* The parameter is how many game ticks have passed since the last update */
void EventUpdate(Tick ticks)
{
   Event *e, *next;
   int update = 0;

   GameTick += ticks;

   /* Execute each event that is due to ripen */
   for (e = EventList; e && e->RipenTime <= GameTick; e = e->Next)
   {
      (*EventCallBacks[e->Type])(e->Data);
      update = 1;
   }

   /* Second pass, delete all ripened events */
   /* This part is done in a seperate pass in case one of the event callbacks
      adds a new event, to avoid munging up the event linked list */
   if (update)
   {
      for (e = EventList; e && e->RipenTime <= GameTick; e = next)
      {
         next = e->Next;
         free(e);
      }

      EventList = e;
   }
}

---<end code>---


Faucet->Drain economy: A virtual economic system wherein there is an
  ongoing influx of new items into the game (usually via a reset model)
  and a hopefully corresponding outflow, usually accomplished through
  object attrition involving equipment damage, rent fees, etc. It is worth
  noting that traditionally, designers have been unable to easily come up
  with a big enough drain to handle all the 'water.' This is as opposed to
  a "Closed economy" in which an attempt is made to close the loop,
  creating new objects only when old ones are used up. [Raph K]


Fixed random seeding: Using a fixed value (such as a character's
  unique ID, or the character's position in XYZ space) to seed the
  random number generator, assuring that the same random number will
  always be rolled if the circumstances are exactly the same, but
  requiring no storage.  This allows parts of the world or its
  behaviour to be dynamically generated from the seed value as
  needed, and yet to have each "new copy" be the same as all the
  others because the seed value hasn't changed.


Fluidity of Identity: Referring to the difficulty of positively identifying
  a single person who takes many guises in a game world.  Any particular
  action against one of those guises is fairly ineffective; they choose
  another and continue.  This makes it very difficult to pin down
  trouble makers.  ATtempts at identifying people based on their hostname
  (site deny/allow), e-mail address (email registration), credit card number
  (for commercial ventures), or just asking really, really nicely are all
  easily circumvented, especially when it is easy to create new characters
or
  accounts (that is, the process is short and automated).  This frequently
  makes it difficult to implement 'real world' solutions to in-game problems
  such as psychotic killing sprees.  Once you catch someone and lock them
away
  or put them to death in RL, they are gone.  When you do this on most muds,
  they just log on two seconds later with another character.


Full world reset, aka "groundhog day" muds: Muds wherein resets occur
  globally, simultaneously (sf reset and repop). [RaphK]


Functional roleplaying: A kind of gaming, whilst GoP motivated, is heavily
  tailored to the in-game reality.  There's no thee's or thou's, or even
  pretension of IC/OOC separation, but an awful lot of attention is spent
  by the player in working his character thru the game realities rules as
  it controls and affects his character.  Examples would include
  negotiation of reputation and influence systems, votes, political systems,
  clans and guilds and other similar structures, etc.  Appearance is not
  the key.  Function is. [JCL]


Global namespace: Referring to the fact that most muds rely on characters
  (and sometimes other objects) are given a single and unique name.
  Typing 'who' on most muds gives you a list of these; if you see
  someone named Bob you know that he is the only Bob in the world, and
  can't be confused with anyone else.  This is as compared to a system
  of generated descriptions to which players can attach proper names
  as they please, which may or may not overlap or match up with the
  names assigned by other players.


GoP: Short for 'game-oriented play' or possible 'goal-oriented play'.
  This is usually a competitive style of play usually oriented around
  the accumulation of various resources (money, power, combat ability).


Levels: For the purpose of keeping discussions generic, this term may be
  used as an abstract measurement of a character's ability, skill or
  expertise whether the game system is level-based or skill-based.
  Eg: "If a low level character tries XXX a high level character..."
  The precise details are not of interest as opposed to the impact and
  result of the undefined imbalance.


Lockless server or DB:

  Events request objects from the DB.

  If the object is not in the cache, the DB loads the object.

  The DB replies to the event with a read-only shared reference to the
    object.
    
  The event is added to the "interested parties" list for the object.

  If the event attempts to modify the object, a new local, event-specific
    copy of the object is made, and the changes are made to that.  A copy
    of the original reference however is still kept.

  The event (loosely) attempts to keep track of what members of the
    object it referenced.

  During the execution of an event. all external IO is buffered and held.

  Upon the event terminating it compares its copy of the original object
    (the local reference) with the object that's actually in the DB (may
    have been changed by events committing during the current event's
    execution).  Some intelligence is attempted here to only compare those
    values etc which were referenced by the event.

  Should the original copy and the current-in-DB copy compare OK, then
    the event commits, the IO is released, and all its changes in its
    written-to copies are committed atomically.  This is the
    Compare&Commit, or C&C.

  If the C&C fails, the event is thrown away, all the copies are released,
    the IO is discarded, and the event is rescheduled to try again.

  There is also some background intelligence here where the DB watches
    the objects that are affected by event's C&C'ing, and will signal the
    other events that are members of those object's interested party list
    that they may be invalidated by the other event's C&C and so should
    kill themselves and reschedule.
    
                                  ref: DEMOS and the DOME project (JCL)


Markup language: An internal set of codes used by a server to generate
  semi-dynamic messages.  An example is "%c dives %I %o" which might result
  in "Bubba dives behind the wall", "A woman dives into the pool", or
  any number of other strings.


mud or MUD: It is not an acronym.  It is a collective term for all the
  types of games discussed on this list, including both RP and GoP.
  [NB: Another description may be found at the list's homepage
       <URL:http://www.kanga.nu/lists/listinfo/mud-dev/> ]


Mule: Character created on goal-orientated muds those sole purpose is to
  supplement a player's primary character by supplying services such as
  equipment repair.  Mules usually have skills that cannot be obtained
  without creating a new character but are perceived to be undesirable to
  play.  For example, an alchemist class could be considered unenjoyable
  to play but due to their special ability to repair equipment, the regular
  players create mule alchemists just to access that ability.


Object: Because most of the servers discussed here are
  object-oriented, the word object is being used in its general
  programming sense to include characters, locations, inanimate items,
  and so forth, rather than referring to only inanimate items as is
  typical in some mud servers.


PK, player-killing: The intentional killing of a player character by
  another player, with or without the first player's prior knowledge,
  agreement, or consent. [JCL]


Psychological disinhibition: The term for when people act less inhibited
  than normally because of circumstance. All behaviours online tend to become
  less inhibited, and the greater the absence of identity cues for the
people
  you are interacting with, the less inhibited the behaviours tend to get.
  [RaphK]


Realism: This is not necessarily correspondance to the real world, but
  rather refers to internal consistency.  In many cases using the
  working of real world systems (physics, for example) is a good
  example for how to build a consistent system for a game world.
  To quote:

  "This is, of course, partially my invention, to suit the gaming world
   we are working on, and is not intended to mirror Real Life - just to
   borrow enough bits and pieces from it, so that it is recognized as
   somewhat structured (rather than totally whimsical) to the player."
							- Holly Sommer


Repop: See Reset.


Reset: Usually a function called in a mud at irregular intervals, the
  purpose of which is to put back the game, or some fragment of the
  game or game world into a known state.  Typically this might mean
  locking an opened door, or resurrecting an NPC that was killed by a
  player and putting him back to guard the door,  Resets and repops
  are common on games that promote repetitive actions for advancement.


Skill net: A single layered skill web. Skills are directly weighted to
  each other.  See skill web (NY)


Skill tree: A skill system where skills have a single parent and
  several children.  A skills at the bottom of the tree being very
  specialised.  Skills higher up the tree will affect the value of
  skills further down.


Skill web: a non-hierarchical two layered skill system wherein each
  skill is weight-related to an arbitrary number of attributes, and
  the improvement of skills therefore automatically improves related
  skills. Examples of skills might be rowing and flycasting, examples
  of attributes, strength (upper arm) and precision (forearm).
  
  [Note: I triple weight my skill web, so that there are direct
  connections to the condition of the character's body and mind, and
  so that the resilience of same are improved by conditioning. Nathan Y]
  
  [Note 2: The web is modelled after a simple neural net design I found in
  Dr. Dobbs' Journal. Nathan Y]


Verb binding: Attaching verbs to an object, such as 'fly' to a
  jetpack.  The command essentially does not exist when you don't have
  the jetpack.


Virtual sociopath: a player who shows no empathy towards any other players
  and therefore is a willing killer of them) but who is perfectly normal
  in real life--someone whose disassociation from others only occurs in
  an online setting, because of their lack of empathic connections to
  other players. See "psychological disinhibition." [RaphK]


World state: a mud which saves world state is one in which there is
  persistence not only of characters but also of objects other than
  characters. Worlds which do not save world state (such as muds derived
  from Dikus) only save character data and the world itself (other than its
  static map) is not persistent over reboots. A snippet from my website:

  --->
  The "middle layer" referred to is the one of the three layers of
  significance in a virtual world: that which is the static database, that
  which is the play of data on said static database, and that which is the
  dataset of players themselves. Depending on the method of state-saving of
  the mud, they may save one, two, or all three of these things. As an
  example, a classic Diku saves only the third layer: players. Ultima Online
  saves both players and the environment. A typical MUSH saves players, the
  environment, and also the actual map and setting which holds the
  environment, since MUSHes allow dynamic alteration of the static data.
Some
  early muds did not save any of the three, and thus were not truly
  "persistent." 
  <---

  [RaphK]



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		7. Changes, To Do & Acknowledgements



990613 -- Frequently Asked Questions: Brought up to date with current
affairs.

990514 -- Resources: New link to Imaginary Realities, a mud magazine.

990417 -- General correction of Frequently Asked Questions.  However,
	  have not been able to get to kanga to verify new addresses.

990321 -- Scenarios: Added two more scenarios, The Stamp Collector's Dilemma
		     by Dr. Cat and The Tailor Problem by Marian Griffith.
	  Glossary: Appended generic event-handling C source code to the
term
		    "event" courtesy of Adam Wiggins.
		    Added new definition, "mule".

990112 -- The Members: Whole section removed.  Look forward to an HTML
	  version to appear on kanga sometime soon (this weekend hopefully).

981213 -- The Members: Updated Adam Wiggins' bio.  Subjectively stripped
	  the bios of members that haven't posted recently, includes:
	  John Bertogio; Reed Copsey, Jr; Marc Eyrignoux; David Love (aka
	  Sauron); Katrina McClelan; and Greg Munt.  Expect the whole
	  section to go in favour of an HTML version in the New Year
	  integrating the thread titled "Current Projects".

981110 -- Just found a long lost email for FAQ alterations.
	  FAQ: Changed MUD-Dev links from /index.html to /
          The Members: Minor alterations to JCL's bio.
	  Resources: Link and brief for original ColdMUD added.
		     More links for Habitat added.
		     Displaced programmming links with those supplied by
JCL.

980907 -- Resources: All things ansi and telnet related added.

980811 -- The Members: Matthew R. Sheahan's bio added.
		       Greg Underwood's bio amended.
	  Resources: Amit's Games Programming Page added.
		     Whole bunch of programming references added.
	  Glossary: "Fluidity of Identity" added.

980708 -- Snipped signatures from members' bios suggested by Alex Oren. :(
	  Minor typo and adjustments suggested by JCL.  Overdue addition
	  of MUDDex and Lydia Leong's MUD resource collection to Resources.
	  "Faucet->Drain economy" term for Glossary added.  Stole list
	  charter from homepage to act as a welcome message of sorts.
	  Small reorganisation of sections 1,2,3.  Added Bartle's early
	  MUD history to web link in Resources.  The Bungle link in
Resources
	  disappeared, added back in, though different site.  Quietly
dropped
	  Derrick Jones' bio (was empty).

980506 -- Moved the changes list to a section in the back, only the most
	  changes since the last post appear here now.  Appended Holly
	  Sommer quote to "realism" glossary term.  Added "functional
	  roleplaying" glossary term.  Updated Frequently Asked Questions.
	  Added networking tutorial web link to Resources.  Added Bungle
	  web link to Resources.

980428 -- New scenarios section,a couple more glossary terms and more
	  member's bios.

980308 -- Mailing list invite.

980301 -- Even more addresses for the resource section.

980201 -- More bios, more addresses for the resource section.

980107 -- Added a few more questions.  Previous topics now has its own
	  universe as suggested by Adam Wiggins.  Plonked in a resources
	  section.  Took out standard technical terms as suggested by Adam
	  Wiggins.

971201 -- FAQ created.


To Do:  

  Conventions of example scenarios (Bubba, Boffo, Buffy, etc)

  List of references for specific scenarios/docs (Habitat/Great God GooGoo,
  Crystalline Tree, recognising Sting in the weapons shop, etc).

  Solutions for the scenarios?

  Obtain addresses for the muds in the resource section.

  Statement of topic definition (cf welcome message).

  Update previous topics section.


Acknowledgments:

  Everyone on the list who contributed with a bio, everyone on the
list who posts and special thanks to Jon A. Lambert, Adam Wiggins,
Nathan Yospe, Raph Koster and lastly but definitely not the least,
J C Lawrence.





Marian
-- 
Yes - at last - You. I Choose you. Out of all the world,
out of all the seeking, I have found you, young sister of
my heart! You are mine and I am yours - and never again
will there be loneliness ...

Rolan Choosing Talia,
Arrows of the Queen, by Mercedes Lackey


_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list