February 2001
- Rogue-Like Mud? Ron Moore
- Issues of Copyright (was Ebay bans character selling) geoffrey@yorku.ca
- brazil the_logos@www.achaea.com
- Dogma 2001 Frank Crowell
- Dogma 2001 David Turner
- FW: Article on Global Verbs & Bulk Bug Christopher Allen
- Slightly extreme reaction to IP and auction Frank Crowell
- Slightly extreme reaction to IP and auction Greg Underwood
- Slightly extreme reaction to IP and auction the_logos@www.achaea.com
- bandwidth the_logos@www.achaea.com
- Is immersipresense going to make a come back? Frank Crowell
- New Scientist Article... Eric Rhea
- New Scientist Article... Alistair Milne
- New Scientist Article... rayzam
- New Scientist Article... Hans-Henrik Staerfeldt
- New Scientist Article... rayzam
- volunteers the_logos@www.achaea.com
- volunteers Timothy Dang
- volunteers Jon Morrow
- volunteers the_logos@www.achaea.com
- volunteers Timothy Dang
- The Aedon rule system (was: FW: Article on Global Verbs & Bulk Bug) Federico Di Gregorio
hi *,
i read this article with a lot of interest, because it presents some
problems a discussed with a friend for some months now. the problem of
local/global verbs and consistency is, imho, foundamental in a text
only mud. after a couple of nights spent talking, we found what we
tought to be a nice solution, "stacked parsers" and "rules." i also
wrote a testbed mud server to test those and other ideas. it is not
finished, but we are slowly adding the missing parts. in the meantime,
maybe some of you is interested in something i wrote to explain what
we mean by "rules". it was put togheter pretty fast, for sending it
to the sourceforge ML after a discussion in IRC. "stacked parsers" are
another story and i'll explain them another time, *if* someone ask for
them. maybe what follows is more than enough to bore to death all of
you...
ah. the prototype mud server (called aedon) is available by anonymous
(no password) cvs (module aedon) at:
:pserver:anonymous@cvs.initd.org:/var/cvs
ciao,
federico
The Aedon Attribute and Rule System
***********************************
0. Introduction
This document describe some ideas about how to write and extensible
and easily maintainable rule set for a MUD. A testbed implementation
(written in Python) is available as the Aedon MUD server. Please
contact the author, Federico Di Gregorio <fog@debian.org> for more
information, cvs access and the like.
1. Definitions
The term ``instance'' is used to refer to an object in the OO
programming language choosen to write the MUD server. Objects in the
MUD world are referred as ``concretes.'' The term ``attribute'' is
used when talking about concrete attributes, like size, weight, et
al. When referring to object attributes the term ``value'' is used
(yes, this is bad but I am not english and I have a limited
vocabulary.) ``Rule'' is used to refer to both game rules and server
rules.
2. Concretes
Every object present in the simulated world is represented by an
instance of the Concrete class in the server. Concretes are organized
in a hierarchy but this has nothing to do with the OO hierarchy of the
programming language used to write the MUD server. Every concrete has
a *classes* attribute that lists the full number of classes the
concrete belongs to. By looking at the classes attribute one can
extrapolate the full hierarchy tree, but that's all. There is no
inheritance or instance and class methods: nothing of the classical OO
programming. A concrete can belong partially to a class. For example,
a rotten apple is still edible, just not as edible as a good one. We
can express this concept by assigning a value in the range [0,1] for
every class the concrete belongs to.
Some examples:
Note 1: I'll use the python grammar for representing attribute
values (omitting `"' for the strings.)
Note 2: the first name below is the object id.
Note 3: sytara is my favourite human character.
sytara.classes = {living:1.0, human:1.0, edible:0.9}
apple.classes = {vegetable:1.0, fruit:1.0, edible:1.0}
rotten_apple.classes = {vegetable:1.0, fruit:1.0, edible:0.6,
poison:0.1}
wolf.classes = {living:1.0, animal:1.0, wolf:1.0, edible:0.9}
sword.classes = {weapon:1.0, sword:1.0, iron:1.0}
The classes attribute is used by the server to choose what rules and
constructors to apply. Read on...
3. Attributes
Apart from classes, a concrete can have any number of attributes. An
attribute is completely defined by its id (or name), its value (int,
float, string, list, map), and tree sorted lists of triggers, get
filters and set filters. A concrete is born with a relatively small
set of attributes (usually a concrete is created by copying another
concrete or an archtype, i.e., a concrete that has been saved to
static storage for future use by developers) but gets more while
interacting with other concretes.
When a concrete is asked for an attribute it does not have, the system
select and applies a *constructor* for the attribute. Constructors are
overloaded. That means that there are different constructors for the
same attribute and one is selected depending of the concrete class.
A little example: the rule system specify that the attribute used to
determine how much food an edible provides is called food_value. The
wolf attack and kills sytara (sic!) then eats the corpse. But a human
hasn't the food_value attribute so the system looks up the food_value
constructor table:
food_value (DEFAULT) [
return 0
]
food_value (O.IS_OF(living):1000) [
return O.get('food')
]
The default is to return 0, i.e., the concrete does not provide any
food. But, if the concrete is a living (like sytara was) the second
constructor is applied and the value of food_value is the current food
attribute (sytara had her breakfast just half an hour ago... what a
lucky wolf!)
Attributes can also have sorted lists of filters that gets called in
order on a get() or set(). That's usefull to resolve the effects of
temporary changes to the attributes. Moreover the filters get a handle
on the concrete requesting the get() or set() and can return different
results to different classes of concretes. An example is a spell that
makes sytara less appetible to wolves. The spell resolve its effect by
placing a timed filter on food_value attribute. If a wolf asks for
that attribute (the AI wants to target the concrete yelding the most
food) the filter returns a fake value (maybe even 0 if the spell is
strong enough.) Another way for the spell to work is to filter the
size attribute... maybe the AI does not attack *big*
creatures... eheh.
set() filters can be used in the same way to reduce damage, etc...
There are also triggers, that are called in prioritized order every
time an attribute is accessed until one of them returns a false value
and stops the chain. Triggers are usefull to implement reactions, and
thing like that but this is outside the scope of this paper.
4. Rules
Rules are the core of the system. A rule chain can be started by a
player command (eat apple), by a critter action (the AI governing the
wolf decides it's time to eat and attacks the nearest living, for
example), by a timed event (a spell expires) or by another rule.
A rule has always a *subject* (S) and can have an *object* (O) and a
*complement* (C.) In the examples above the subjects are the player's
character and the wolf, the objects are the apple and the living (my
poor sytara) and the complement the wolf's fangs (the weapon the wolf
is using in the attack.)
A rule is composed by a *master* part, a *default* part (also called
the master rule and the default rule) and by any number of normal
parts (also called simply rules or subrules.) The master part specify
how other parts are to be applied (that's the rule policy.) Policies
are:
* apply every rule that scores (see below) over a certain value,
apply default if no rule scores high enought.
* apply every rule that scores (see below) over a certain value, but
don't apply the default.
* apply only the top scoring rule.
* apply the top scoring rules only if it scores above the given
value, else apply the default one.
Scoring depends on subject, object and attribute classes and
attributes. A rule scores points when S, O or C are of the given class
(the score is multiplied for their class value) or have certain
attributes. Obviously, when the server is evaluating a rule no new
attributes can be created. Here's a little complete example taken from
the current server:
eat (MASTER, RULE_CUT_VALUE:750) [
pass
]
eat (DEFAULT) [
return 'Mmm... %s does not seems edible.' % O.short_desc
]
eat (S.IS_OF(living):500, O.IS_OF(edible):500) [
max_food = S.get('food_max', 5)
food = S.get('food') + O.get('food_value')/S.get('size', 1) * f
if food > max_food: food = max_food
S.set('food', food)
O.destroy()
return O.get('msg_eat', 'Tastes good.')
]
Some explanations: every rule that scores over 750 is applied. By
default an object is not edible, the default rule just print a short
message. If a living tries to eat something edible the last rule is
applied. It gets the food_value attribute from the object (if the
object does not have it, the server invokes the right constructor,
read above) and use it to calculate how much nurriture the object
provides (f is the factor, i.e., rule score/1000.) After that a custom
message (if present) or a default one is returned to the user and the
object destroyed.
Now, let's suppose we want to add a posioned apple to the game. Let's
also suppose that the rule for appling venom effects is already in
place. We can do it by adding the following rule:
eat (S.IS_OF(living):500, O.IS_OF(food):400, O.SHOULD_BE(poison):100) [
APPLY(poison)
return O.get('msg_eat', 'Tastes strange.')
]
This rules *requires* the object to be of class poison. But that is
not sufficient to apply the rule. It still has to score at least
750. If the player tries to eat a poisoned dagger, it gets the
"Mmm... the dagger does not seems edible." message, because no rules
score high enough and the default one gets applied.
If the wolf tries to eat rabbit killed by poison (classes {living:1.0, animal:1.0, rabbit:1.0, edible:0.8, poison:0.2}, because
the venom makes the rabbit a little bit lesser nutrient and a little
bit poisoned) this rule scores 500*1.0 (the wolf is a living) +
400*0.8 (the rabbit is edible) + 100*0.2 (the posion) = 840. The other
rule scores 900. So both are applied. The only effect of this rule is
to apply the poison rule. The message returned is the one from the
other rule (the one who scored higher): poison level is too low to be
tasted.
Note that the addition of this rule not only enabled us to add
poisoned apples to the world but every kind of poisoned food. It's
like adding some specialized methods at the right hierarchy level in
an OO paradigm, but the is a foundamental difference. We don't need to
care about how the other rules were written (the ancestor methods in
the OO world) nor we need to remember to call them.) Rules are
independent and is the system that selects the right ones to apply.
And that's almost all, waiting for comments,
federico
--
Federico Di Gregorio
MIXAD LIVE Chief of Research & Technology fog@mixadlive.com
Debian GNU/Linux Developer & Italian Press Contact fog@debian.org
Best friends are often failed lovers. -- Me - Content is Not King (from First Monday) Bruce
- [sweng-gamedev] BYOND game development system (fwd) J C Lawrence
- [sweng-gamedev] BYOND game development system (fwd) J C Lawrence
- Medievia interview Koster, Raph
- Medievia interview Alex
- Medievia interview Madman Across the Water
- Medievia interview Koster, Raph
- Medievia interview Joe O'Connor
- Medievia interview pyrographer@comcast.net
- Medievia interview J C Lawrence
- FW: Article on Data Inheritance Christopher Allen
- FW: Article on Data Inheritance Kevin Littlejohn
- job opportunities Koster, Raph
- Those (in)famous EQ stories bubba@bubba.mud
- Writing articles (was: FW: Article on Data Inheritance) Bruce
- Writing articles (was: FW: Article on Data Inheritance) the_logos@www.achaea.com
- Room-based vs. Coordinate based[Was semi-graphical muds] Ben Chambers
- Room-based vs. Coordinate based[Was semi-graphical muds] Warren Powell
- Room-based vs. Coordinate based[Was semi-graphical muds] the_logos@www.achaea.com
- Room-based vs. Coordinate based[Was semi-graphical muds] J C Lawrence
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC Russ Lewis
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC J C Lawrence
- Modular Design Issues RFC Bruce
- Modular Design Issues RFC J C Lawrence
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC J C Lawrence
- Modular Design Issues RFC Daniel.Harman@barclayscapital.com
- Modular Design Issues RFC Greg Lewis
- Modular Design Issues RFC Daniel.Harman@barclayscapital.com
- Modular Design Issues RFC Ben Chambers
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC J C Lawrence
- Modular Design Issues RFC J C Lawrence
- Modular Design Issues RFC Scion Altera
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC Kwon Ekstrom
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC Kwon Ekstrom
- Modular Design Issues RFC Ryan Rhodes
- Modular Design Issues RFC Kwon Ekstrom
- Modular Design Issues RFC Scion Altera
- Modular Design Issues RFC Jo Dillon
- Modular Design Issues RFC J C Lawrence
- Party at DundraCon Christopher Allen
- MUD-Dev digest, Vol 1 #246 - 6 msgs Dr. Cat
- MUD-Dev digest, Vol 1 #246 - 6 msgs the_logos@www.achaea.com
- Roundtable status, changes, and future. J C Lawrence
- Roundtable status, changes, and future. J C Lawrence
- Persistent Worlds Ryan Rhodes
- Persistent Worlds J C Lawrence
- Persistent Worlds Hulbert, Leland
- Persistent Worlds J C Lawrence
- Persistent Worlds John Buehler
- Persistent Worlds J C Lawrence
- Persistent Worlds John Buehler
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds John Buehler
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds John Buehler
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Travis Casey
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Scion Altera
- Persistent Worlds John Buehler
- Persistent Worlds J C Lawrence
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds J C Lawrence
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Travis Casey
- Persistent Worlds Hulbert, Leland
- Persistent Worlds Jon Lambert
- Persistent Worlds Ryan Rhodes
- Persistent Worlds Jon Lambert
- Persistent Worlds Ryan Rhodes
- Persistent Worlds Jon Lambert
- Persistent Worlds Ryan Rhodes
- Persistent Worlds J C Lawrence
- Persistent Worlds Jon Lambert
- Persistent Worlds Ryan Rhodes
- Persistent Worlds Miroslav Silovic
- Persistent Worlds Bruce
- Persistent Worlds Ryan Rhodes
- Persistent Worlds Phillip Lenhardt
- Persistent Worlds Miroslav Silovic
- Persistent Worlds Ryan Rhodes
- Persistent Worlds Jon Lambert
- Persistent Worlds J C Lawrence
- Persistent Worlds John Buehler
- Persistent Worlds J C Lawrence
- Persistent Worlds John Buehler
- Persistent Worlds J C Lawrence
- Persistent Worlds John Buehler
- Persistent Worlds msew
- Persistent Worlds rayzam
- Persistent Worlds John Buehler
- Persistent Worlds rayzam
- Persistent Worlds Travis Casey
- Persistent Worlds John Buehler
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds John Buehler
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds John Buehler
- Persistent Worlds Tess Lowe
- Persistent Worlds John Buehler
- Persistent Worlds Travis Casey
- Persistent Worlds John Buehler
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds John Buehler
- Persistent Worlds Kevin Littlejohn
- Persistent Worlds J C Lawrence
- Persistent Worlds Tess Lowe
- Persistent Worlds J C Lawrence
- Persistent Worlds Dave Rickey
- Persistent Worlds Eli Stevens
- Persistent Worlds John Buehler
- Persistent Worlds Nathan F.Yospe
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Nathan F.Yospe
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Jon Lambert
- Persistent Worlds J C Lawrence
- Persistent Worlds Jon Lambert
- Persistent Worlds J C Lawrence
- Persistent Worlds rayzam
- Persistent Worlds Nathan F.Yospe
- Persistent Worlds Christopher Allen
- Persistent Worlds Travis Casey
- Persistent Worlds J C Lawrence
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Travis Casey
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Travis Casey
- Persistent Worlds Corey Crawford
- Persistent Worlds Marian Griffith
- Persistent Worlds Travis Casey
- Persistent Worlds the_logos@www.achaea.com
- Persistent Worlds Marian Griffith
- Persistent Worlds Brandon J. Rickman
- Persistent Worlds Nathan F.Yospe
- Persistent Worlds J C Lawrence
- Persistent Worlds Ryan Rhodes
- MMORPGs: Pointers to System Specs? Lars Duening
- MMORPGs: Pointers to System Specs? Jake Song
- Shameless Plug. SavantKnowsAll@cs.com
- Shameless Plug. Travis Casey
- Shameless Plug. J C Lawrence
- Shameless Plug. SavantKnowsAll@cs.com
- Shameless Plug. J C Lawrence
- Shameless Plug. SavantKnowsAll@cs.com
- Shameless Plug. Christopher Allen
- Shameless Plug. J C Lawrence
- Shameless Plug. SavantKnowsAll@cs.com
- Shameless Plug. J C Lawrence
- enforced roleplaying the_logos@www.achaea.com
- enforced roleplaying Sanvean
- enforced roleplaying the_logos@www.achaea.com
- enforced roleplaying Christopher Allen
- enforced roleplaying Mark Watson
- enforced roleplaying Klyde Beattie
- enforced roleplaying the_logos@www.achaea.com
- Real Life Consequences Corey Crawford
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences J C Lawrence
- Real Life Consequences rayzam
- Real Life Consequences John Buehler
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences J C Lawrence
- Real Life Consequences Christopher Allen
- Real Life Consequences Kerem HADIMLI
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences Kevin Littlejohn
- Real Life Consequences John Buehler
- Real Life Consequences Kevin Littlejohn
- Real Life Consequences J C Lawrence
- Real Life Consequences John Buehler
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences Jeff Freeman
- Real Life Consequences Marian Griffith
- Real Life Consequences David Loeser
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences John Buehler
- Real Life Consequences David Loeser
- Real Life Consequences Rodney Lorrimar
- Real Life Consequences Michael Tresca
- Real Life Consequences J C Lawrence
- Real Life Consequences John Buehler
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences Daniel.Harman@barclayscapital.com
- Real Life Consequences Marc Bowden
- Real Life Consequences J C Lawrence
- Real Life Consequences Mike Niederer
- Real Life Consequences Jon Morrow
- Real Life Consequences Jeff Freeman
- Real Life Consequences John Buehler
- Real Life Consequences the_logos@www.achaea.com
- Real Life Consequences John Buehler
- Real Life Consequences Jeff Freeman
- Real Life Consequences John Buehler
- Real Life Consequences Jon Morrow
- Real Life Consequences J C Lawrence
- Real Life Consequences Jon Morrow
- Real Life Consequences J C Lawrence
- Real Life Consequences Michael Tresca
- Real Life Consequences msew
- Real Life Consequences Adam Casbarian
- MUD-Dev digest, Vol 1 #249 - 28 msgs Dr. Cat
- MUD-Dev digest, Vol 1 #249 - 28 msgs the_logos@www.achaea.com
- MUD-Dev digest, Vol 1 #249 - 28 msgs the_logos@www.achaea.com
- Job search Dr. Cat
- Pay for Play (or Commercial Rolecall) Ryan Rhodes
- Pay for Play (or Commercial Rolecall) J C Lawrence
- Pay for Play (or Commercial Rolecall) Marc Bowden
- Pay for Play (or Commercial Rolecall) Jeff Freeman
- Pay for Play (or Commercial Rolecall) the_logos@www.achaea.com
- Pay for Play (or Commercial Rolecall) Ryan Rhodes
- Pay for Play (or Commercial Rolecall) the_logos@www.achaea.com
- Pay for Play (or Commercial Rolecall) Dave Rickey
- Pay for Play (or Commercial Rolecall) Jeff Freeman
- Pay for Play (or Commercial Rolecall) Ananda Dawnsinger
- Pay for Play (or Commercial Rolecall) Dave Rickey
- Pay for Play (or Commercial Rolecall) Dave Rickey
- Pay for Play (or Commercial Rolecall) S. Patrick Gallaty
- Pay for Play (or Commercial Rolecall) Jeff Freeman
- Pay for Play (or Commercial Rolecall) Jon Lambert
- Pay for Play (or Commercial Rolecall) J C Lawrence
- Pay for Play (or Commercial Rolecall) the_logos@www.achaea.com
- Pay for Play (or Commercial Rolecall) Jon Morrow
- A new MUD-standard Ben Chambers
- A new MUD-standard Adam Casbarian
- A new MUD-standard Ben Chambers
- A new MUD-standard Christopher Allen
- A new MUD-standard Ben Greear
- A new MUD-standard Ben Chambers
- A new MUD-standard Ben Greear
- A new MUD-standard Ben Chambers
- A new MUD-standard rayzam
- A new MUD-standard katroutt@home.com
- A new MUD-standard Frank Crowell
- A new MUD-standard Bryce Harrington
- A new MUD-standard Frank Crowell
- A new MUD-standard Hans-Henrik Staerfeldt
- A new MUD-standard Ben Chambers
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Jon Lambert
- A new MUD-standard Frank Crowell
- A new MUD-standard Ryan Rhodes
- A new MUD-standard Ben Chambers
- A new MUD-standard Bruce
- A new MUD-standard Ben Chambers
- A new MUD-standard Chris Jones
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Ben Chambers
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard John Bertoglio
- A new MUD-standard J C Lawrence
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard J C Lawrence
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Bruce
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Kevin Littlejohn
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Bruce
- A new MUD-standard Kevin Littlejohn
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Ben Chambers
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Ben Chambers
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard Kevin Littlejohn
- A new MUD-standard Ben Chambers
- A new MUD-standard Kwon Ekstrom
- A new MUD-standard the_logos@www.achaea.com
- A new MUD-standard Frank Crowell
- Community (was: Semi Graphical Muds) Marian Griffith
- Defining a community Klyde Beattie
- Defining a community Dave Rickey
- Defining a community Jeff Freeman
- Defining a community Dave Rickey
- Defining a community Mark Watson
- Defining a community Koster, Raph
- Defining a community Ola Fosheim Grøstad
- "Doing a dungeon" (was: Permadeath or Not?) msew
- "Doing a dungeon" (was: Permadeath or Not?) the_logos@www.achaea.com
- "Doing a dungeon" (was: Permadeath or Not?) Daniel.Harman@barclayscapital.com
- "Doing a dungeon" (was: Permadeath or Not?) msew
- "Doing a dungeon" (was: Permadeath or Not?) Vincent Archer
- "Doing a dungeon" (was: Permadeath or Not?) msew
- "Doing a dungeon" (was: Permadeath or Not?) Brian Hook
- "Doing a dungeon" (was: Permadeath or Not?) John Buehler
- "Doing a dungeon" (was: Permadeath or Not?) Brian Hook
- "Doing a dungeon" (was: Permadeath or Not?) John Buehler
- "Doing a dungeon" (was: Permadeath or Not?) Brian 'Psychochild' Green
- "Doing a dungeon" (was: Permadeath or Not?) Travis Nixon
- "Doing a dungeon" (was: Permadeath or Not?) Koster, Raph
- "Doing a dungeon" (was: Permadeath or Not?) Travis Casey
- "Doing a dungeon" (was: Permadeath or Not?) Vincent Archer
- "Doing a dungeon" (was: Permadeath or Not?) msew
- "Doing a dungeon" (was: Permadeath or Not?) Brian Hook
- "Doing a dungeon" (was: Permadeath or Not?) Dave Rickey
- MUD Schools Ben Chambers
- MUD Schools David Bennett
- MUD Schools Alex
- MUD Schools David Bennett
- MUD Schools Marc Bowden
- MUD Schools Ben Chambers
- MUD Schools Michael Tresca
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") Tess Lowe
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") John Buehler
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") Ananda Dawnsinger
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") David Bennett
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") Adam Casbarian
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") J C Lawrence
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") rayzam
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") Travis Nixon
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") the_logos@www.achaea.com
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") Marian Griffith
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") John Buehler
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") Kwon Ekstrom
- Teaching ethics in MUDs (was "An essay on d00dism and the MMORPG") the_logos@www.achaea.com
- Teaching ethics in MUDs Tess Lowe
- Teaching ethics in MUDs John Buehler
- Mozilla as a client (was: A new MUD-standard) Bruce
- Mozilla as a client (was: A new MUD-standard) Kwon Ekstrom
- GoPers are ants at RP picnics!... was Pay for Play(or commercial rolecall) Jon Lambert
- Condsiders Daniel.Harman@barclayscapital.com
- Condsiders J C Lawrence
- Condsiders Jeff Freeman
- Condsiders J C Lawrence
- Condsiders Marc Bowden
- Condsiders Ryan Rhodes
- Condsiders Klyde Beattie
- Condsiders John Buehler
- Condsiders Klyde Beattie
- Condsiders rayzam
- Condsiders John Buehler
- (no subject) msew
- Phantasy Star online article Koster, Raph
- Phantasy Star online article the_logos@www.achaea.com
- Phantasy Star online article Koster, Raph
- Phantasy Star online article the_logos@www.achaea.com
- Phantasy Star online article msew
- Myn ynd Wymyn (was Teaching ethics in MUDs) Ananda Dawnsinger
- Myn ynd Wymyn (was Teaching ethics in MUDs) Ananda Dawnsinger
- Myn ynd Wymyn (was Teaching ethics in MUDs) Adam Casbarian
- Myn ynd Wymyn (was Teaching ethics in MUDs) Ananda Dawnsinger
- Item Distribution in Areas Jim S
- Item Distribution in Areas Brian Hook
- Item Distribution in Areas Vincent Archer
- Item Distribution in Areas rayzam
- Item Distribution in Areas Dave Rickey
- Game Developer Conference Proceedings? Ola Fosheim Grøstad
- Game Developer Conference Proceedings? Koster, Raph
- Game Developer Conference Proceedings? Timothy Dang
- Game Developer Conference Proceedings? the_logos@www.achaea.com
- New Bartle article Koster, Raph
- New Bartle article Richard A. Bartle
- New Bartle article Koster, Raph
- New Bartle article Richard A. Bartle
- New Bartle article the_logos@www.achaea.com
- New Bartle article rayzam
- New Bartle article Dave Rickey
- New Bartle article Richard A. Bartle
- New Bartle article Dave Rickey
- New Bartle article Daniel James
- New Bartle article the_logos@www.achaea.com
- New Bartle article Freeman, Jeff
- New Bartle article the_logos@www.achaea.com
- New Bartle article Vincent Archer
- New Bartle article the_logos@www.achaea.com
- New Bartle article Vincent Archer
- New Bartle article the_logos@www.achaea.com
- New Bartle article Adam Martin
- New Bartle article Richard A. Bartle
- New Bartle article Jeff Freeman
- New Bartle article Richard A. Bartle
- New Bartle article John Buehler
- New Bartle article Richard A. Bartle
- New Bartle article John Buehler
- New Bartle article Richard A. Bartle
- New Bartle article johnbue@msn.com
- New Bartle article Richard A. Bartle
- New Bartle article John Buehler
- New Bartle article Richard A. Bartle
- New Bartle article John Buehler
- New Bartle article Richard A. Bartle
- New Bartle article John Buehler
- New Bartle article Phillip Lenhardt
- New Bartle article the_logos@www.achaea.com
- New Bartle article John Buehler
- New Bartle article msew
- New Bartle article Richard A. Bartle
- New Bartle article Brian Hook
- New Bartle article Richard A. Bartle
- New Bartle article Vincent Archer
- New Bartle article Richard A. Bartle
- New Bartle article the_logos@www.achaea.com
- New Bartle article Jon Lambert
- New Bartle article the_logos@www.achaea.com
- New Bartle article Brian Hook
- New Bartle article the_logos@www.achaea.com
- New Bartle article Brian Hook
- New Bartle article the_logos@www.achaea.com
- New Bartle article Adam Martin
- New Bartle article Dave Rickey
- New Bartle article Brian Hook
- New Bartle article Dave Rickey
- New Bartle article Steve {Bloo} Daniels
- New Bartle article Daniel.Harman@barclayscapital.com
- New Bartle article Dave Rickey
- New Bartle article Vincent Archer
- New Bartle article Vincent Archer
- New Bartle article Travis Casey
- New Bartle article msew
- New Bartle article Richard A. Bartle
- New Bartle article Travis Casey
- New Bartle article Richard A. Bartle
- New Bartle article the_logos@www.achaea.com
- New Bartle article Richard A. Bartle
- New Bartle article the_logos@www.achaea.com
- New Bartle article Richard A. Bartle
- New Bartle article the_logos@www.achaea.com
- New Bartle article Richard A. Bartle
- New Bartle article Dave Rickey
- New Bartle article Richard A. Bartle
- New Bartle article Dave Rickey
- New Bartle article Richard A. Bartle
- New Bartle article Dave Rickey
- New Bartle article Richard A. Bartle
- New Bartle article Marc Bowden
- New Bartle article Richard A. Bartle
- New Bartle article rayzam
- New Bartle article Daniel.Harman@barclayscapital.com
- New Bartle article Richard A. Bartle
- New Bartle article Daniel.Harman@barclayscapital.com
- New Bartle article Blane Bramble
- New Bartle article Richard A. Bartle
- New Bartle article Gaffney, Jeremy
- New Bartle article Richard A. Bartle
- New Bartle article Dave Rickey
- New Bartle article Richard A. Bartle
- New Bartle article Freeman, Jeff
- New Bartle article Wells, Thomas
- New Bartle article Trump
- New Bartle article Brian Hook
- New Bartle article Travis Nixon
- New Bartle article Brian Hook
- New Bartle article Daniel James
- New Bartle article Brian Hook
- New Bartle article John Buehler
- New Bartle article Koster, Raph
- New Bartle article msew
- New Bartle article Vincent Archer
- New Bartle article shren
- New Bartle article Vincent Archer
- New Bartle article Timothy Dang
- New Bartle article Richard A. Bartle
- New Bartle article msew
- New Bartle article Koster, Raph
- New Bartle article John Buehler
- New Bartle article Koster, Raph
- New Bartle article John Buehler
- New Bartle article Paul Schwanz - Enterprise Services
- New Bartle article Sanvean
- New Bartle article the_logos@www.achaea.com
- New Bartle article Brian Hook
- New Bartle article the_logos@www.achaea.com
- New Bartle article Travis Casey
- New Bartle article the_logos@www.achaea.com
- New Bartle article Travis Casey
- New Bartle article Travis Casey
- New Bartle article Timothy Dang
- New Bartle article Travis Casey
- New Bartle article Marc Bowden
- New Bartle article Marc Bowden
- New Bartle article Matt Mihaly
- everquest banning sarapis@www.achaea.com
- Fallen Age (was Shameless Plug) SavantKnowsAll@cs.com
- Fallen Age (was Shameless Plug) the_logos@www.achaea.com
- Fallen Age (was Shameless Plug) SavantKnowsAll@cs.com
- Fallen Age (was Shameless Plug) the_logos@www.achaea.com
- Fallen Age (was Shameless Plug) SavantKnowsAll@cs.com
- Fallen Age (was Shameless Plug) Brian 'Psychochild' Green
- Fallen Age (was Shameless Plug) the_logos@www.achaea.com
- Fallen Age (was Shameless Plug) SavantKnowsAll@cs.com
- Myn ynd Wymyn (was Teaching ethics in MUDs) Adam Casbarian
- Myn ynd Wymyn (was Teaching ethics in MUDs) Willowreed@aol.com
- Yamauchi Puts the Industry In Its Place msew
- Item drain was Item Distribution in Areas Brian Hook
- MUD-Dev digest, Vol 1 #255 - 27 msgs Dr. Cat
- MUD-Dev digest, Vol 1 #255 - 27 msgs John Buehler
- realism and unrealism Travis Casey
- realism and unrealism Federico Di Gregorio
- realism and unrealism Marian Griffith
- Limiting rewards was Interesting EQ rant (very long quote) Brian Hook
- Limiting rewards was Interesting EQ rant (very long quote) S. Patrick Gallaty
- Limiting rewards was Interesting EQ rant (very long quote) Brian Hook
- Limiting rewards was Interesting EQ rant (very long quote) Daniel.Harman@barclayscapital.com
- Limiting rewards was Interesting EQ rant (very long quote) the_logos@www.achaea.com
- Damaging items was New Bartle article Brian Hook
- Damaging items was New Bartle article msew
- Damaging items was New Bartle article Brian Hook
- Damaging items was New Bartle article Travis Casey
- Damaging items was New Bartle article John Buehler
- Damaging items was New Bartle article Travis Casey
- Damaging items was New Bartle article Marian Griffith
- MUD-Dev digest, Vol 1 #255 - 27 msgs Dr. Cat
- Distributed Processing John Buehler
- Distributed Processing Gaffney, Jeremy
- Distributed Processing John Buehler
- Distributed Processing Vincent Archer
- Distributed Processing Timothy Dang
- Distributed Processing Adam Martin
- Distributed Processing shren
- Distributed Processing Gaffney, Jeremy
- Quests + No Spoils (was: Interesting EQ rant) Corey Crawford
- Quests + No Spoils (was: Interesting EQ rant) the_logos@www.achaea.com
- Where's The Line Drawn Kyndig
- Where's The Line Drawn KaVir@dial.pipex.com
- Where's The Line Drawn Frank Crowell
- Multiple Character Races John Buehler
- Multiple Character Races Brian Hook
- Multiple Character Races Caliban Tiresias Darklock
- Multiple Character Races John Buehler
- Multiple Character Races Koster, Raph
- Multiple Character Races John Buehler
- Multiple Character Races ghovs
- Multiple Character Races the_logos@www.achaea.com
- Multiple Character Races Michael Tresca
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) Vincent Archer
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Zak Jarvis
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Koster, Raph
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Koster, Raph
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) Freeman, Jeff
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Jeff Freeman
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) shren
- FW: Interesting EQ rant (very long quote) Freeman, Jeff
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Jon Lambert
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Travis Nixon
- FW: Interesting EQ rant (very long quote) F. Randall Farmer
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Nathan F.Yospe
- FW: Interesting EQ rant (very long quote) J. Coleman
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) Koster, Raph
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) Kevin Littlejohn
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Travis Casey
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) Paul Schwanz - Enterprise Services
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) J. Coleman
- FW: Interesting EQ rant (very long quote) Freeman, Jeff
- FW: Interesting EQ rant (very long quote) Brian Hook
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Travis Casey
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Travis Casey
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Travis Casey
- FW: Interesting EQ rant (very long quote) Matt Mihaly
- FW: Interesting EQ rant (very long quote) Travis Casey
- FW: Interesting EQ rant (very long quote) shren
- FW: Interesting EQ rant (very long quote) Paul Schwanz - Enterprise Services
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Kevin Littlejohn
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Kevin Littlejohn
- FW: Interesting EQ rant (very long quote) John Buehler
- FW: Interesting EQ rant (very long quote) Adam Martin
- FW: Interesting EQ rant (very long quote) the_logos@www.achaea.com
- FW: Interesting EQ rant (very long quote) Vincent Archer
- FW: Interesting EQ rant (very long quote) holding99@mindspring.com
- FW: Interesting EQ rant (very long quote) david.l.smith@home.com
- FW: Interesting EQ rant (very long quote) holding99@mindspring.com
- FW: Interesting EQ rant (very long quote) Nathan F.Yospe
- Balance was Damaging items was New Bartle artic le Palacio, Ryan
- License Laws was Where's The Line Drawn Èric Rhéa
- License Laws was Where's The Line Drawn Frank Crowell
- Scripting Ben Chambers