[MUD-Dev] Mud-Dev FAQ

Adam Wiggins nightfall at user2.inficad.com
Sun Jan 4 12:47:01 CET 1998


[Ling:]
> Mud-Dev FAQ

Here's a few additions I would suggest.

> 4. What has been discussed previously?
> 
> [Could someone provide this?  JC, did you not make a post last summer which
>  summed all the threads posted up to that point?]

I'd say this is a very important section, and could stand to be longish.
A few topics off the top of my head:

Low-level system stuff:
  Mud databases - RAM or disk based?  Event-based or polling?  Conflict
resolution in multi-threaded systems.  Generating and handling unique
IDs or handles.

Mid-level stuff:
  Space handling - rooms, containers, landscapes, fluid dynamics, line of
sight, obstructions, opactity, and scale.
  Character advancement - levels, experience, skills, and other options.
Skill trees and webs - how to regulate skill learning and decay.  Game
balance - areas (particularly protected newbie areas), equipment (limits
of some sort, or simple de-emphasis of eq), skills (avoiding 'jack
of all trades' while not limiting which skills are learned), and stats.
  Command parser - NLP, a 'smart' (learning) parser, use of seperating tokens
vs spaces, distinct commands vs verb binding.
  Object identification - generated descriptions versus created by builders.
  Character memory - giving unique names to objects, object recognition
(time and changes in recognizable traits), learning names (introduction,
learning from a book or wanted poster, character doing own naming),
name decay and other methods for keeping down the amount of required RAM.
  Vision and other senses - markup languages, system-constructed descriptions,
stealth (hiding self or objects).
  Skill resolution - how much is random, how much is actually simulated
by the system?  Storing skill rolls, using fixed random seeds, and other
methods for making skill resolution less arbitrary from the player's
perspective.

High-level stuff:
  Character creation - history, ability generation, length of time required.
  Death - permanent?  If not, what is the penality?
  PK/Psteal - code blocks to prevent or discourage it?  What about other
player-offensive effects, such as charm, paralyze, silence, curse, or
picking up and placing in a paper bag with a dragon?
  Combat system - how realitic?  Hitpoints, limb-based damage, regen,
types of damage, flow of melee combat, large groups, spacial issues,
ranged weapons, instant-kill abilities, task management (ties in with
events?), pain, character recognition of danger.
  Seperation of character from player - what can the character figure out
on his/her/its own?  Choices range from a twitching hunk of meat that responds
exactly to player commands, to an semi-intelligent being that may not
be able to or even choose not to follow certain player commands to the letter.

Admin stuff:
  Admin's responsibilities to the game and the players - are there any?
House analogy - what rules should they or can they make, and how can
they enforce them?  How should trust be given out to non-implementor members
of the staff?  What position should builders get?
  Ethics of logging and snooping - can they do it whenever they please,
or is there a code they should follow?  Is it fair to log absolutely
everything without warning?  What if there is a warning?
  Player rights - harassment in all its forms.
  Jerks - how to spot them, how to deal with them.

Making your mud accessable:
  Helpfiles - well written, consistant, up to date.  How to organize them?
  Communication with others - tell, channels, the 'who' command.

Roleplaying:
  Where is each character's personality defined - character creation,
gradual evolution during play, completely in the player's head before
play begins?
  Where is the line between roleplaying an evil person and being a jerk
defined?
  How much of what defines the game should be part of the game system
(commands, objects, and scenarios) and how much should be left to the
players via emotes and other freeform tools?

There's plenty more, maybe others can chime in and we can create a
list of the most important topics dicussed.  It would probably be nice
to flesh this out a bit, so that there is a brief explanation of each
topic.  I'd be happy to write it once we assemble the list.

> 			    2. The Members

Never did post my bio, so here it is.

Adam Wiggins
Occupation: Lead programmer for Cinematix Studios, Inc
Location: Phoenix, Arizona, USA.
Address: nightfall at inficad.com
Personal details:
	- Primary interests for a mud are enhanced 'realism' and internal
	  consistency of the game world, mainly getting rid of all the
	  old kludges (hitpoints, experience, levels, classes, tell)
	  and creating a much more detailed and complex world.
	- Proponent of skill-based systems which encourage roleplaying
	  by making the charcter one plays act and respond as befitting
	  their race/temperment.
Server: Strife mud
Signature:

Adam


> 			  3. Glossary of Terms

> Multi-threaded: Pretending the computer has more processors than it has.  In
> this list, the threads are usually light weight.

Is it necessary to define normal technical terms?  If this is the case
then there are quite a few that would need to be covered - DB rollbacks,
contention, object-oriented, parsing, NLP, node weighting, polling, etc.

Here's my suggestions for the glossary:

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 on a mud.

global namespace - Referring to the fact that most muds rely on characters
(and sometimes other objects) are given a single name.  Typing 'who'
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.

event - An alternative to polling.  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.

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.

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.

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.

realism - This is not necessarily corespondance to the real world, but rather
refers to internal consitency.  In many cases using the working of real
world systems (physics, for example) is a good example for how to build
a consitent system for a game world.

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

GoP - Short for 'game-oriented play' or possible 'goal-oriented play'.
This is a compentative style of play usually oriented around the accumlation
of various resources (money, power, combat ability) which is frequently
found on LP and Diku muds.

mud - In all lower case, 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.


Other things I thing should be in the FAQ are general posting guidelines
including how to quote, when to change thread headers, attributions,
what discussions are frowned upon (ie codebase wars), list privacy (ie,
not putting stuff on publicaly accessable websites), explanation of
the convention for example scenarios (and who the hell Bubba, Boffo, and
Buffy are), etc.

Plus a list of references for specific scenarios, with either a location
to find the full text (ie the Bungle doc or the Habitat stuff) or the
scenario itself (Great God GooGoo, Crystalline Tree, recognizing Sting
in the weapons shop, etc).




More information about the mud-dev-archive mailing list