April 2000
- [Open_Gaming_Moderated] Simplified License for Comment and Critique (fwd) J C Lawrence
- An introduction Brian Green
- An idea for breaking away from the HP/Mana mindset Eli Stevens
- An idea for breaking away from the HP/Mana mindset Ryan P.
- An idea for breaking away from the HP/Mana mindset Erik Jarvi
- An idea for breaking away from the HP/Mana mindset Eli Stevens
- An idea for breaking away from the HP/Mana mindset Travis Casey
- An idea for breaking away from the HP/Mana mindset Jeremy Hovance
- An idea for breaking away from the HP/Mana mindset adam@treyarch.com
- Old Topic: Playfulness in 3-D Spaces, done. Rudy Fink
- META: Topic List - 1999 Jon A. Lambert
- Fw: 16K mud server competition ! Jon A. Lambert
- Fw: 16K mud server competition ! cg@ami-cg.GraySage.Edmonton.AB.CA
- Fw: 16K mud server competition ! Cynbe ru Taren
- Fw: 16K mud server competition ! Miroslav Silovic
- Fw: 16K mud server competition ! Jay Carlson
- Fw: 16K mud server competition ! Travis Casey
- Fw: 16K mud server competition ! Derek Snider
- Fw: 16K mud server competition ! Holly Sommer
- Fw: 16K mud server competition ! Nick Shaffner
- Fw: 16K mud server competition ! Travis S. Casey
- Fw: 16K mud server competition ! Quzah
- Fw: 16K mud server competition ! Todd McKimmey
- Fw: 16K mud server competition ! Spin
- Fw: 16K mud server competition ! Richard Woolcock
- Fw: 16K mud server competition ! Hans-Henrik Staerfeldt
- Fw: 16K mud server competition ! Miroslav Silovic
- Fw: 16K mud server competition ! Jon A. Lambert
- Fw: 16K mud server competition ! Jon Leonard
- Fw: 16K mud server competition ! Travis Casey
- Fw: 16K mud server competition ! Powell, Warren
- Fw: 16K mud server competition ! Travis Casey
- Fw: 16K mud server competition ! Jon Lambert
- Fw: 16K mud server competition ! Travis Casey
- Fw: DESIGN: XML? Jon A. Lambert
- PK / anti PK / justice? J. Coleman
- Neverwinter Nights Jeff Freeman
- J (was: 16K mud server competition !) Cynbe ru Taren
- J (was: 16K mud server competition !) Miroslav Silovic
- J (was: 16K mud server competition !) Ola Fosheim Grøstad
- Morality and Values Based Role Play in MMORPGs. Paul Schwanz - Enterprise Services
- MUD-Dev request rejected (fwd) Matthew Mihaly
- MUD-Dev request rejected (fwd) adam@treyarch.com
- MUD-Dev request rejected (fwd) Jeff Freeman
- Orthogonality and invariants Miroslav Silovic
Okay, I've been prompted by the previous programming language
discussion to write a quick essay. Feel free to dissect/flame. :)
First, in my experience, the main time-sink in writing MUDs is not
coding per se, it's debugging. In most 1,000,000 line applications,
you won't even notice a crash every 12 hours, or a memory leak that
fills the swap after a couple of days - this is because most
applications don't run for hours, let alone days. A MUD that crashes
daily is (in my experience) unplayable. This goes especially for
persistent MUDs that don't even see regular reboots more often than
twice per year.
So, MUD servers (and more generally, application servers) have
EXTREMELY severe stability constraint: they have to be able to run
stably for months, without visible bloat, fd leak, heap corruption,
thread forking, thread blocking, and all other types of weirdness that
plague applications.
Several MUD codebases already reached this plateaou (MOO, various
types of MUSH, Cold are those I know about for sure). I don't think
that a less stable codebase can compete at all (because crashes and
losses are just too annoying to bother with - especially with all
those stable MUDs laying around).
Now... the topic is achieving this stability. The main issue, IMHO, is
the lack of orthogonality, and orthogonality is lost each time you
have to spread functionality that logically belongs to the same unit
throughout the code (I'll use the word orthogonality to mean
funcionality separation along logical, rather than pragmatic
boundaries).
Let's start with a canonic example: memory management in C. Each time
you need a chunk of memory, you request it from the system, and each
time you don't need it any more, you free it. The problem, as anybody
who tried to debug memory leaks can tell, is that you have to code
memory management each time you want to deal with memory -
i.e. throughout the program. Wouldn't it be nicer if you could just
point at a big chunk of code and just say, "That thing manages my
memory. Touch only if memory management is broken, and then that's the
place responsible." -- this is exactly what garbage collectors do.
This example illustrates one related issue: dynamic invariants
(namely, the statements that must hold true, and can not always be
checked just by reading the program source). The C malloc/free
paradigm sets one such invariant: 'each path of control that allocates
a memory block must contain a free with that same block' (it posts
some more dynamic invariants, for example, 'a block passed to the free
call must have been allocated with malloc call and it must not have
been already freed', but let's keep the focus). Now, since C compiler
can not check this (and it'd require really hellishly powerful lint,
as well as limits on the use of malloc/free, to check this
statically), the programmer has to worry about this each time. Since
programmers *always* make mistakes, this invariant will *not* hold
true in a freshly written code.
The lack of orthogonality, in this case, manifests itself in the fact
that in practice it's highly nontrivial to check for dynamic invariant
breakage.
So, let's state two principles of orthogonality:
1. Whenever it's possible to reorganise the code so that distributed
functionality can be sequestrated into a module, it should be done so,
even when the cost is a (reasonably small) loss of performance.
2. The code should not have dynamic invariants.
There are also some classical orthogonality principles (I assume
they're well-known to the more technically oriented people here):
3. Functions shouldn't have side-effects (and more generally, broader
language constructs, such as objects, classes, or defmacro constructs
in LISP, shouldn't have side-effects)
Okay, to conclude, here are some common sources of orthogonality
breaks:
Resource management
-------------------
The C example above can be extended to cover broad range of idioms:
malloc/free, mutex lock/unlock, file open/close, socket accept/close,
and socket connect/disconnect. In each of these cases, there are two
functions (let's call them mumble and unmumble), with the following
dynamic invariant:
each path of control that contains mumble(object) must
contain unmumble(object) such that it executes after the
object has been mumbled, and such that there is no other
mumble or unmumble between it and the opening mumble.
Now, there are two ways of removing this invariant: First, for
malloc/free pair, you can use garbage collector. It works by taking
the snapshot of your system and finding all the allocated resources at
that moment, and then finds the resources that the code can't use
(because it doesn't have references to them). Those resources get
released.
The other way is with construct in LISP:
(with-mumbled-object (object)
code...)
This construct does mumble(object), executed the code, and then
unmumbles the object. If this is the only way for the object to ever
get mumbled, this code will never break the invariant.
This is also how constructor/destructor pairs work in C++.
Now, if your system supports nonlocal exits (throws, exceptions,
conditions - whatever name you're used to), with will have to catch
the throw, unmumble the object, and pass the throw onward (this is why
exceptions in C++ cause the codesize to increase by 30-50% - every
block that has constructor/destructor pair will also have to trap the
exception and handle the cleanup before passing it on). In my
experience, this is the main reason to use garbage collection - you
can have exceptions without unwinding (more or less) each block that
has variables in it.
Note that reference counting does NOT solve the memory management
issue - it simply moves the issue from malloc/free (pointer) to
grab/ungrab (reference). Also, circular references HEAVILY complicate
the issues - but certain MUD languages are designed to make circular
references impossible.
Object persistence
------------------
All MUDs have to handle persistence in some way - if nothing, they
have to save the snapshot of all the players before each reboot. Now,
the raw LPMUD handles this by providing save function (I'm not sure if
it's in the LPMUD driver or mudlib). So, if you want the object saved,
you do something like save(object), whenever the object has changed.
So, here's the dynamic invariant:
each persistent object that has been changed has to be saved.
Breaking this invariant causes the well-known
Bubba shouts 'wheres my gear?!?!?!'
Again you can implement persistence library, one that places each
loaded object on a list that is guaranteed to get saved before the
process terminates.
However, there is another, related issue: how to automate object
loads? If your objects are indirected (i.e. implemented via some
abstract reference type), you can just check for the load status each
time you transform the reference to the actual object pointer (Cold
and MOO do this). You can also use object pointers that point to
write-protected pages and then load the objects from segfault handler
(this is done by Texas Persistent Store, and despite the technical
coolness, it's unfortunately quite slow).
Database integrity
------------------
Each working MUD has a large number of invariants that are rarely, if
ever, checked (remember, in C, ASSERT macro is your friend). For
example,
for each container, the location of each object within the
container must be the container itself
It's quite interesting that some languages (Eiffel) actually support
class invariants - statements that are true for each instance of the
class and get checked on a regular basis. Languages with a MOP (Common
LISP and the new, yet-to-be-released Python) can implement this on top
of their existing object systems. While class invariants don't
eliminate dynamic invariants, they at least cause the program to
complain now rather than later.
Transactional integrity
-----------------------
While forgetting to unlock the mutexes falls under resource
management, forgetting to lock them in the first place is a beast in
its own right. There have been some articles on this list (including
those by me and JCL) that cover this. The invariant here is
non-reentrant code should be protected by a mutex
My solution to this is to put mutexes on each object and handle the
deadlocks automatically - recent post on dgd mailing list suggests
that they took the same approach; JC instead makes all the code
reentrant by copying and timestamping objects). I'd be really
interested in a solution to this that is generic (i.e. would work for
any application server, not just a MUD server), and that doesn't have
performance penalty of the solutions above.
--
How to eff the ineffable? - Orthogonality and invariants cg@ami-cg.GraySage.Edmonton.AB.CA
- Uptime numbers (was Orthogonality and invariants) Jay Carlson
- Schmuse J C Lawrence
- Article on WoC's 'Open Sourcing' D&D in Salon Christopher Allen
- Multilevel server concept Draymoor
- Multilevel server concept Tochiro
- Multilevel server concept Emil Eifrem
- Multilevel server concept Kristen L. Koster
- Multilevel server concept Brian Green
- Multilevel server concept Hans-Henrik Staerfeldt
- Polls at Kanga.Nu claw@kanga.nu
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) Ananda Dawnsinger
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) David Bennett
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) Matthew Mihaly
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) Ananda Dawnsinger
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) J C Lawrence
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) Ananda Dawnsinger
- Same-Sex Marriage (was: Trouble Makers or Regular Citizens) Jon Lambert
- dealing with foul language Matthew Mihaly
- dealing with foul language Wes Connell
- dealing with foul language Kristen L. Koster
- dealing with foul language Wes Connell
- dealing with foul language Kristen L. Koster
- dealing with foul language Ola Fosheim Grøstad
- dealing with foul language Kristen L. Koster
- dealing with foul language Ola Fosheim Grøstad
- dealing with foul language Kristen L. Koster
- dealing with foul language Paul Schwanz - Enterprise Services
- dealing with foul language Ola Fosheim Grøstad
- dealing with foul language Koster, Raph
- dealing with foul language Ola Fosheim Grøstad
- dealing with foul language Matthew Mihaly
- dealing with foul language Kristen L. Koster
- dealing with foul language Zak Jarvis
- dealing with foul language Darren Henderson
- dealing with foul language Kristen L. Koster
- dealing with foul language AR Schleicher
- dealing with foul language adam@treyarch.com
- Article on Proxes Christopher Allen
- Article on Proxes adam@treyarch.com
- Simulating Ancient Greece WAS: Same-Sex Marriage Zak Jarvis
- Simulating Ancient Greece WAS: Same-Sex Marriage Jon Lambert
- Simulating Ancient Greece WAS: Same-Sex Marriage Matthew Mihaly
- A little essay on economic efficiency Timothy Dang
- Same-Sex Marriage John Hopson
- Same-Sex Marriage Ananda Dawnsinger
- Historical perspective (was: dealing with foul language) Brian Green
- Historical perspective (was: dealing with foul language) Zak Jarvis
- Historical perspective (was: dealing with foul lang uage) Koster, Raph
- Historical perspective (was: dealing with foul language) Brian Green
- Historical perspective (was: dealing with foul language) Joe Andrieu
- Historical perspective (was: dealing with foul language) Matthew Mihaly
- Historical perspective (was: dealing with foul language) Joe Andrieu
- Historical perspective (was: dealing with foul language) adam@treyarch.com
- Historical perspective (was: dealing with foul language) Paul Schwanz - Enterprise Services
- Historical perspective (was: dealing with foul language) Ola Fosheim Grøstad
- Historical perspective (was: dealing with foul language) J C Lawrence
- Player controller justice systems David Bennett
- Player controller justice systems Koster, Raph
- Player controller justice systems J C Lawrence
- Player controller justice systems Erik Jarvi
- Player controller justice systems Travis Nixon
- Player controller justice systems Erik Jarvi
- Player controller justice systems Timothy Dang
- Player controller justice systems Draymoor
- Player controller justice systems Erik Jarvi
- Player controller justice systems Phillip Lenhardt
- Player controller justice systems Erik Jarvi
- Family, was characters per account Daniel James
- Family, was characters per account Paul Schwanz - Enterprise Services
- Family, was characters per account Kevin Littlejohn
- Family, was characters per account Matthew Mihaly
- Family, was characters per account Phillip Lenhardt
- Family, was characters per account Matthew Mihaly
- Family, was characters per account Shawn Halpenny
- Family, was characters per account Matthew Mihaly
- Family, was characters per account Kevin Littlejohn
- Family, was characters per account Kevin Littlejohn
- Family, was characters per account Jeff Freeman
- Family, was characters per account Raph Koster
- Family, was characters per account Matthew Mihaly
- Family, was characters per account Jeff Freeman
- Family, was characters per account Paul Schwanz - Enterprise Services
- Family, was characters per account Matthew Mihaly
- Family, was characters per account Paul Schwanz - Enterprise Services
- Family, was characters per account Raph Koster
- Family, was characters per account J C Lawrence
- Family, was characters per account Paul Schwanz - Enterprise Services
- Family, was characters per account Raph Koster
- Family, was characters per account Paul Schwanz - Enterprise Services
- Gender Restrictions was Same-Sex Marriage Jon Lambert
- Gender Restrictions was Same-Sex Marriage Nathan F Yospe
- Gender Restrictions was Same-Sex Marriage Jon Lambert
- Family, was characters per account J C Lawrence
- Family, was characters per account Phillip Lenhardt
- Family, was characters per account Kevin Scott London
- Family, was characters per account Jeff Freeman
- Family, was characters per account Paul Schwanz - Enterprise Services
- Sony to ban sale of online characters from its popular gaming sites F. Randall Farmer
- Sony to ban sale of online characters from its popular gaming sites maddog@best.com
- Sony to ban sale of online characters from its popular gamingsites Zak Jarvis
- Sony to ban sale of online characters from its popular gaming sites Ryan Palacio
- Sony to ban sale of online characters from its popu lar gaming sites Sellers, Michael
- Sony to ban sale of online characters from its popular gaming sites maddog@best.com
- Sony to ban sale of online characters from its popular gaming sites Wes Connell
- Sony to ban sale of online characters from its popular gaming sites Ryan Palacio
- Sony to ban sale of online characters from its popular gaming sites Travis Nixon
- [Meta] other activities Par Winzell
- [Meta] other activities Dominic J. Eidson
- [Meta] other activities Jeff Freeman
- History, background and religion Pileborg Joachim - FMT
- History, background and religion Kevin Scott London
- History, background and religion Matthew Mihaly
- History, background and religion Sanvean
- History, background and religion Sharon Mock
- History, background and religion Richard Ross
- History, background and religion Lovecraft
- DGD Description Christopher Allen
- [Meta] other activities Jeff Freeman
- [Meta] other activities Raph Koster
- [Meta] other activities Todd McKimmey
- [Meta] other activities Matthew Mihaly
- [Meta] other activities Wes Connell
- Personal Interest vs. Marketing Decision WAS dealing with foul language Zak Jarvis
- Threads on Meta that should be on MUD-Dev J C Lawrence
- [Meta] Threads on Meta that should be on MUD-Dev J C Lawrence
- Sony to ban sale ... point of view of an eq veteran S. Patrick Gallaty
- Sony to ban sale ... point of view of an eq veteran John Bertoglio
- Sony to ban sale ... point of view of an eq veteran S. Patrick Gallaty
- Family, was characters per account Chris Lloyd
- [LONG] A slightly different perspective on Real money in Virtual worlds. Zak Jarvis
- banning the sale of items Matthew Mihaly
- banning the sale of items Frank Crowell
- banning the sale of items Geoffrey A. MacDougall
- banning the sale of items Raph Koster
- banning the sale of items Matthew Mihaly
- banning the sale of items Jeff Freeman
- banning the sale of items Jeff Freeman
- banning the sale of items Ryan Palacio
- banning the sale of items Matthew Mihaly
- banning the sale of items Ryan Palacio
- banning the sale of items Matthew Mihaly
- banning the sale of items Ryan Palacio
- banning the sale of items Tess Lowe
- banning the sale of items Ryan Palacio
- banning the sale of items Matthew Mihaly
- banning the sale of items Paul Schwanz - Enterprise Services
- banning the sale of items Ryan Palacio
- banning the sale of items Paul Schwanz - Enterprise Services
- banning the sale of items Matthew Mihaly
- banning the sale of items Raph Koster
- banning the sale of items Ryan Palacio
- banning the sale of items Raph Koster
- banning the sale of items Matthew Mihaly
- banning the sale of items Schubert, Damion
- banning the sale of items Matthew Mihaly
- banning the sale of items Ananda Dawnsinger
- banning the sale of items Matthew Mihaly
- banning the sale of items Wes Connell
- banning the sale of items Par Winzell
- banning the sale of items Matthew Mihaly
- banning the sale of items Par Winzell
- banning the sale of items Matthew Mihaly
- banning the sale of items Zak Jarvis
- banning the sale of items Matthew Mihaly
- banning the sale of items Zak Jarvis
- banning the sale of items J. Coleman
- banning the sale of items Paul Schwanz - Enterprise Services
- banning the sale of items Tess Lowe
- banning the sale of items Paul Schwanz - Enterprise Services
- banning the sale of items Christopher Allen
- banning the sale of items Ryan Palacio
- banning the sale of items Kristen L. Koster
- banning the sale of items Christopher Allen
- banning the sale of items Par Winzell
- banning the sale of items Matthew Mihaly
- banning the sale of items J C Lawrence
- banning the sale of items Par Winzell
- banning the sale of items Matthew Mihaly
- banning the sale of items adam@treyarch.com
- banning the sale of items Kevin Littlejohn
- banning the sale of items Raph Koster
- banning the sale of items Raph Koster
- banning the sale of items Matthew Mihaly
- banning the sale of items Kian Wilcox
- banning the sale of items Timothy Dang
- Institutionalizing human behavior (was banning the sale of items) Sellers, Michael
- Institutionalizing human behavior (was banning the sale of items) Ola Fosheim Grøstad
- Sony to ban sale ... point of view of an eq veteran Brian Green
- Sony to ban sale ... point of view of an eq veteran John Bertoglio
- Sony to ban sale ... point of view of an eq veteran Wes Connell
- Sony to ban sale ... point of view of an eq veteran J C Lawrence
- Sony to ban sale ... point of view of an eq veteran Jeff Freeman
- [Meta] Of general interest maybe Jeff Freeman
- Spawning and quests (was Sony ban) Paul Schwanz - Enterprise Services
- Spawning and quests (was Sony ban) Raph Koster
- Spawning and quests (was Sony ban) Matthew Mihaly
- Spawning and quests (was Sony ban) Paul Schwanz - Enterprise Services
- Spawning and quests (was Sony ban) Jeff Freeman
- Spawning and quests (was Sony ban) Paul Schwanz - Enterprise Services
- Spawning and quests (was Sony ban) Jeff Freeman
- Spawning and quests (was Sony ban) Geoffrey Z.
- Spawning and quests (was Sony ban) Schubert, Damion
- Spawning and quests (was Sony ban) J C Lawrence
- Spawning and quests (was Sony ban) Nathan F Yospe
- Spawning and quests (was Sony ban) F. Randall Farmer
- Spawning and quests (was Sony ban) Travis Casey
- Spawning and quests (was Sony ban) Lee Sheldon
- Spawning and quests (was Sony ban) Wes Connell
- DDoS Ola Fosheim Grøstad
- /. Article about EQ sales ban Nathan F Yospe
- /. Article about EQ sales ban Raph Koster
- MudDev FAQ part 2 Marian Griffith
- MudDev FAQ part 2 Ananda Dawnsinger
- MudDev FAQ part 2 Raph Koster
- MudDev FAQ part 2 Dr Richard A. Bartle
- Family, was characters per account Raph Koster
- Institutionalizing human behavior (was banning the sale of items) Xavier Plagnal
- meets Matthew Mihaly
- Quoting. J C Lawrence
- Amy Jo Kim's "Community Building on the Web" Raph Koster
- Amy Jo Kim's "Community Building on the Web" Richard Woolcock
- Amy Jo Kim's "Community Building on the Web" F. Randall Farmer
- Amy Jo Kim's "Community Building on the Web" Sellers, Michael
- Institutionalizing human behavior Matthew Mihaly
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Christopher Allen
- Declaration of the Rights of Avatars Erik Jarvi
- Declaration of the Rights of Avatars Geoffrey A. MacDougall
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars John Bertoglio
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Jon Lambert
- Declaration of the Rights of Avatars Geoffrey A. MacDougall
- Declaration of the Rights of Avatars Paul Schwanz - Enterprise Services
- Declaration of the Rights of Avatars Geoffrey A. MacDougall
- Declaration of the Rights of Avatars Paul Schwanz - Enterprise Services
- Declaration of the Rights of Avatars Jon Lambert
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Jeff Freeman
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Travis Casey
- Declaration of the Rights of Avatars Jeff Freeman
- Declaration of the Rights of Avatars Geoffrey A. MacDougall
- Declaration of the Rights of Avatars Eli Stevens
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Travis Casey
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Travis S. Casey
- Declaration of the Rights of Avatars Jeff Freeman
- Declaration of the Rights of Avatars Geoffrey A. MacDougall
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Travis S. Casey
- Declaration of the Rights of Avatars Par Winzell
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Christopher Allen
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Par Winzell
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Raph Koster
- Declaration of the Rights of Avatars Matthew Mihaly
- Declaration of the Rights of Avatars Phillip Lenhardt
- Declaration of the Rights of Avatars Raph Koster
- Spawning and quests Spin
- Spawning and quests Chris Lloyd
- Spawning and quests adam@treyarch.com
- (no subject) J C Lawrence
- E3 and potential meet? Ryan Palacio
- E3 and potential meet? J C Lawrence
- Scott Guzman on RGM.Admin J C Lawrence
- Quote from a Simutronics developer Raph Koster
- Quote from a Simutronics developer Ananda Dawnsinger
- Quote from a Simutronics developer Erik Jarvi
- Quote from a Simutronics developer Ryan Palacio
- Quote from a Simutronics developer Erik Jarvi
- Quote from a Simutronics developer Dmitri Zagidulin
- Quote from a Simutronics developer Phillip Lenhardt
- Quote from a Simutronics developer Raph Koster
- Quote from a Simutronics developer Ananda Dawnsinger
- Quests - allocative efficiency Lovecraft
- Common Law [was: Declaration of the Rights of Avatars] Christopher Allen
- Common Law [was: Declaration of the Rights of Avatars] Christopher Allen
- AI, Bots, Scripting. Veygoth
- AI, Bots, Scripting. David Bennett
- Quests Raph Koster
- Alignment Richard Ross
- ADMIN: Digest size J C Lawrence
- Circular Alignment [was: Alignment] Christopher Allen
- Value of Characters [was: Quote from a Simutronics developer] Christopher Allen
- MUD-Dev request rejected Schubert, Damion
- MUD-Dev request rejected John Szeder
- Skotos Proximity System - a Technical Summary (LONG) Christopher Allen
- Skotos Proximity System - a Technical Summary (LONG) Erik Jarvi
- Skotos Proximity System - a Technical Summary (LONG) Christopher Allen
- Skotos Proximity System - a Technical Summary (LONG) Ola Fosheim Grøstad
- The scalability of paying for in-game things Matthew Mihaly
- The scalability of paying for in-game things Brian Green
- The scalability of paying for in-game things Matthew Mihaly
- The scalability of paying for in-game things Brian Green
- The scalability of paying for in-game things Par Winzell
- ALife? was [Personal Interest vs. Marketing Decision WAS RE:...] Greg Underwood
- incremental revenue discussion Matthew Mihaly
- new list Kevin Littlejohn
- Justifying twinking Raph Koster
- Justifying twinking adam@treyarch.com
- Justifying twinking Raph Koster
- Justifying twinking adam@treyarch.com
- Justifying twinking Ryan Palacio
- Justifying twinking F. Randall Farmer
- Justifying twinking Ryan Palacio
- Justifying twinking Raph Koster
- Justifying twinking Raph Koster
- Justifying twinking Todd McKimmey
- Justifying twinking Hess, Ian W {Ian}
- Justifying twinking Jeff Freeman
- Justifying twinking Schubert, Damion
- Justifying twinking Lee Sheldon
- Justifying twinking adam@treyarch.com
- Justifying twinking Lee Sheldon
- Justifying twinking Travis S. Casey
- Justifying twinking John Bertoglio
- Justifying twinking Travis Nixon
- Justifying twinking Lee Sheldon
- Justifying twinking Travis S. Casey
- Justifying twinking Caliban Tiresias Darklock
- Justifying twinking Christopher Allen
- Justifying twinking J C Lawrence
- Justifying twinking adam@treyarch.com
- Justifying twinking Christopher Allen
- Justifying twinking Travis Casey
- Justifying twinking Lee Sheldon
- Justifying twinking Sellers, Michael
- Justifying twinking Mud Imp
- Justifying twinking Brian Green
- Justifying twinking John Bertoglio
- Justifying twinking Ananda Dawnsinger
- Justifying twinking Christopher Allen
- Justifying twinking Travis Casey
- Justifying twinking Timothy Dang
- Justifying twinking jolson@micron.net
- Justifying twinking Travis Nixon
- Justifying twinking John Bertoglio
- Justifying twinking jolson@micron.net
- Justifying twinking Raph Koster
- Justifying twinking Christopher Allen
- Justifying twinking Schubert, Damion
- Justifying twinking adam@treyarch.com
- Justifying twinking Christopher Allen
- Justifying twinking adam@treyarch.com
- Justifying twinking Geoffrey Z.
- Justifying twinking Justin Lockshaw
- Justifying twinking Raph Koster
- Justifying twinking S. Patrick Gallaty
- Justifying twinking Frank Crowell
- Justifying twinking Lee Sheldon
- Justifying twinking Lee Sheldon
- Game Law Example (fwd) J C Lawrence
- Game Law Example (fwd) Travis S. Casey
- Fun and Learning in games Draymoor
- Fun and Learning in games Schubert, Damion
- Fun and Learning in games adam@treyarch.com
- Re PRIVATE Justifying twinking Kristen L. Koster
- Re PRIVATE Justifying twinking Josh Olson
- Database back ends dwacks@saleslogix.com
- Database back ends Greg Underwood
- Database back ends Quiet
- Database back ends Kevin Littlejohn
- defeating twinking through game mechanics S. Patrick Gallaty
- defeating twinking through game mechanics jolson@micron.net
- defeating twinking through game mechanics adam@treyarch.com
- defeating twinking through game mechanics S. Patrick Gallaty
- defeating twinking through game mechanics Erik Jarvi
- defeating twinking through game mechanics Travis S. Casey
- defeating twinking through game mechanics Paul Schwanz - Enterprise Services
- defeating twinking through game mechanics Travis Casey
- defeating twinking through game mechanics Paul Schwanz - Enterprise Services
- defeating twinking through game mechanics J C Lawrence
- Simpson's "In-Game Economics of UO" Timothy Dang
- Simpson's "In-Game Economics of UO" F. Randall Farmer
- Simpson's "In-Game Economics of UO" Paul Schwanz - Enterprise Services
- Simpson's "In-Game Economics of UO" Christopher Allen
- Simpson's "In-Game Economics of UO" Raph Koster
- Simpson's "In-Game Economics of UO" Timothy Dang
- Simpson's "In-Game Economics of UO" Paul Schwanz - Enterprise Services
- Simpson's "In-Game Economics of UO" Timothy Dang
- Simpson's "In-Game Economics of UO" Paul Schwanz - Enterprise Services
- Simpson's "In-Game Economics of UO" Brian Green
- Simpson's "In-Game Economics of UO" adam@treyarch.com
- Simpson's "In-Game Economics of UO" Timothy Dang
- Simpson's "In-Game Economics of UO" Paul Schwanz - Enterprise Services
- Simpson's "In-Game Economics of UO" Ananda Dawnsinger
- Simpson's "In-Game Economics of UO" Charles Hughes
- Simpson's "In-Game Economics of UO" Raph Koster
- Simpson's "In-Game Economics of UO" Sellers, Michael
- Simpson's "In-Game Economics of UO" Raph Koster
- Simpson's "In-Game Economics of UO" Charles Hughes
- Simpson's "In-Game Economics of UO" Paul Schwanz - Enterprise Services
- Simpson's "In-Game Economics of UO" Caliban Tiresias Darklock
- Simpson's "In-Game Economics of UO" adam@treyarch.com
- Simpson's "In-Game Economics of UO" stoddart@slip.net
- Simpson's "In-Game Economics of UO" Eli Stevens
- Simpson's "In-Game Economics of UO" Paul Schwanz - Enterprise Services
- Simpson's "In-Game Economics of UO" Raph Koster
- Simpson's "In-Game Economics of UO" PLAGNAL XAVIER
- Massive Connections Christopher Kohnert
- Massive Connections Kevin Scott London
- Massive Connections Christopher Kohnert
- MUD-Dev request rejected Jeff Freeman
- interesting article on world size and finance Fred Clift
- interesting article on world size and finance J C Lawrence
- interesting article on world size and finance John Bertoglio
- [Mud-Dev]: Sushi Mud Todd McKimmey
- [Mud-Dev]: Sushi Mud guru@thebay.plus.com
- LA Times article: Virtual Loot for Real Cash Ryan Palacio
- LA Times article: Virtual Loot for Real Cash J C Lawrence
- Alignment (very long) Paul Schwanz - Enterprise Services
- Alignment (very long) Christopher Allen
- Alignment (very long) Paul Schwanz - Enterprise Services
- Alignment (very long) Kevin Littlejohn
- Alignment (very long) Travis Casey
- Alignment (very long) Paul Schwanz - Enterprise Services
- Character persistance, was Family, was characters per account JC
- Character persistance, was Family, was characters per account Paul Schwanz - Enterprise Services
- shrink wrapped mud development kit (fwd) J C Lawrence
- shrink wrapped mud development kit (fwd) Charles
- shrink wrapped mud development kit (fwd) J C Lawrence
- shrink wrapped mud development kit (fwd) Caliban Tiresias Darklock
- shrink wrapped mud development kit (fwd) Chris Jacobson
- shrink wrapped mud development kit (fwd) Caliban Tiresias Darklock
- shrink wrapped mud development kit (fwd) Richard Ross
- shrink wrapped mud development kit (fwd) Lee Sheldon
- shrink wrapped mud development kit (fwd) Matt Chatterley
- BioWare to demonstrate Neverwinter Nights at E3 F. Randall Farmer
- BioWare to demonstrate Neverwinter Nights at E3 Jeff Freeman
- BioWare to demonstrate Neverwinter Nights at E3 Travis Casey
- ColdStore. Belated response from a developer. colin@field.medicine.adelaide.edu.au
- ColdStore. Belated response from a developer. Miroslav Silovic
- ColdStore. Belated response from a developer. Jay Carlson
- ColdStore. Belated response from a developer. colin@field.medicine.adelaide.edu.au
- [Meta] Ex-Origin Employees to new Verant studio Eli Stevens
- Game Spec Jman77777@aol.com
- From banning the sale of items to virtual slavery... Stéphane Garin
- Search engine and thread managing Stéphane Garin
- Search engine and thread managing J C Lawrence
- LED0 Frank Crowell
- Re[4]: defeating twinking through game mechanics Travis Casey
- MUME poll results (fwd) J C Lawrence
- MUME poll results (fwd) Christopher Allen
- MUME poll results (fwd) Raph Koster
- MUME poll results (fwd) Charles Hughes
- MUME poll results (fwd) Eric Olsen
- MUME poll results (fwd) Charles Hughes
- selling Godhoods Matthew Mihaly
- selling Godhoods J C Lawrence
- selling Godhoods Chris Jacobson
- selling Godhoods Ananda Dawnsinger
- selling Godhoods Matthew Mihaly
- selling Godhoods Ananda Dawnsinger
- selling Godhoods Matthew Mihaly
- selling Godhoods Ananda Dawnsinger
- selling Godhoods Matthew Mihaly
- selling Godhoods Phillip Lenhardt
- selling Godhoods Ananda Dawnsinger
- selling Godhoods Matthew Mihaly
- selling Godhoods Darren Henderson
- selling Godhoods J C Lawrence
- selling Godhoods Raph Koster
- selling Godhoods Matthew Mihaly
- selling Godhoods Darren Henderson
- selling Godhoods Tess Lowe
- selling Godhoods Ananda Dawnsinger
- selling Godhoods Richard Woolcock
- selling Godhoods Matthew Mihaly
- selling Godhoods Richard Woolcock
- selling Godhoods Matthew Mihaly
- selling Godhoods J C Lawrence
- selling Godhoods Tess Lowe
- selling Godhoods Richard Woolcock
- Selling Godhoods!?! Larvenz
- selling Godhoods Par Winzell
- selling Godhoods Matthew Mihaly
- Selling Godhoods!?! Par Winzell
- Selling Godhoods!?! Hans-Henrik Staerfeldt
- selling Godhoods Jeff Freeman
- Selling Godhoods!?! Mud Imp
- Selling Godhoods!?! J C Lawrence
- Selling Godhoods!?! Kevin Scott London
- Selling Godhoods!?! Christopher Kohnert
- Selling Godhoods!?! Kevin Scott London
- Selling Godhoods!?! Paul Schwanz - Enterprise Services
- selling Godhoods J C Lawrence
- selling Godhoods Raph Koster
- selling Godhoods Ananda Dawnsinger
- selling Godhoods Raph Koster
- selling Godhoods Laurent Bossavit
- selling Godhoods lapsos
- selling Godhoods Matthew Mihaly
- selling Godhoods Par Winzell
- moving advancement away from experience Eli Stevens
- moving advancement away from experience Travis Casey
- moving advancement away from experience Caliban Tiresias Darklock
- moving advancement away from experience Lee Sheldon
- E3 and exhibit/session passes (follow-ups to Meta) Sellers, Michael
- attracting players Mud Imp
- attracting players Richard Woolcock
- attracting players Chris Lloyd
- Attracting players Koster, Raph
- Self-Sufficient Worlds Chris Lloyd
- Self-Sufficient Worlds Christopher Allen
- Self-Sufficient Worlds Schubert, Damion
- Self-Sufficient Worlds John Bertoglio
- Self-Sufficient Worlds Quzah
- Self-Sufficient Worlds Paul Schwanz - Enterprise Services
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Phillip Lenhardt
- Self-Sufficient Worlds Mordengaard
- Self-Sufficient Worlds Paul Schwanz - Enterprise Services
- Self-Sufficient Worlds Chris Turner
- Self-Sufficient Worlds lapsos
- Self-Sufficient Worlds F. Randall Farmer
- Self-Sufficient Worlds Chad Arnold
- Self-Sufficient Worlds Sellers, Michael
- Self-Sufficient Worlds Chris Lloyd
- Self-Sufficient Worlds Raph Koster
- Self-Sufficient Worlds Raph Koster
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Raph Koster
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Paul Schwanz - Enterprise Services
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Raph Koster
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds J C Lawrence
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Matthew Mihaly
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Sellers, Michael
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Powell, Warren
- Self-Sufficient Worlds Lee Sheldon
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds Angela Ferraiolo
- Self-Sufficient Worlds Zak Jarvis
- Self-Sufficient Worlds J C Lawrence
- Addressing newbies (was: attracting players) Ola Fosheim Grøstad
- Addressing newbies (was: attracting players) Jerry Hill
- Addressing newbies (was: attracting players) adam@treyarch.com
- Addressing newbies (was: attracting players) adam@treyarch.com
- reaction to selling godhoods Matthew Mihaly
- reaction to selling godhoods Kevin Scott London
- Crafts Systems (was:Simpson's "In-Game Economics of UO") Ananda Dawnsinger
- Crafts Systems (was:Simpson's "In-Game Economics of UO") Raph Koster
- Crafts Systems (was:Simpson's "In-Game Economics of UO") Charles Hughes
- Crafts Systems (was:Simpson's "In-Game Economics of UO") Paul Schwanz - Enterprise Services
- datagrams Ola Fosheim Grøstad
- a article on ai -- ANTS -- (fwd) J C Lawrence
- FW: selling Godhoods John Bertoglio
- FW: selling Godhoods Matthew Mihaly
- Skotos Bulk System - a Technical Summary (LONG) Christopher Allen
- "The client is in the hands of the enemy" Schubert, Damion
- "The client is in the hands of the enemy" Zak Jarvis
- "The client is in the hands of the enemy" Kevin Littlejohn
- Procedural Storytelling WAS Self-Sufficient Worlds Zak Jarvis
- A footnote to Procedural Storytelling Zak Jarvis
- A footnote to Procedural Storytelling J C Lawrence
- A footnote to Procedural Storytelling Raph Koster
- A footnote to Procedural Storytelling Paul Schwanz - Enterprise Services
- A footnote to Procedural Storytelling rob@cs.nwu.edu
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Travis Nixon
- A footnote to Procedural Storytelling Hess, Ian W {Ian}
- A footnote to Procedural Storytelling J C Lawrence
- A footnote to Procedural Storytelling Travis Nixon
- A footnote to Procedural Storytelling Raph Koster
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Marian Griffith
- A footnote to Procedural Storytelling Ola Fosheim Grøstad
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Zak Jarvis
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Travis Nixon
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Paul Schwanz - Enterprise Services
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Travis Nixon
- A footnote to Procedural Storytelling Brian Green
- A footnote to Procedural Storytelling Travis Nixon
- A footnote to Procedural Storytelling Sam Axon
- A footnote to Procedural Storytelling Travis Nixon
- A footnote to Procedural Storytelling Brian Green
- A footnote to Procedural Storytelling Kevin Littlejohn
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Angela Ferraiolo
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Erik Jarvi
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Nathan F Yospe
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Erik Jarvi
- A footnote to Procedural Storytelling Nathan F Yospe
- A footnote to Procedural Storytelling Raph Koster
- A footnote to Procedural Storytelling Batir
- A footnote to Procedural Storytelling Raph Koster
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Kristen L. Koster
- A footnote to Procedural Storytelling Batir
- A footnote to Procedural Storytelling Raph Koster
- A footnote to Procedural Storytelling Charles Hughes
- A footnote to Procedural Storytelling Erik Jarvi
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Matthew Mihaly
- A footnote to Procedural Storytelling Lee Sheldon
- A footnote to Procedural Storytelling Brandon J. Rickman
- A footnote to Procedural Storytelling Matthew Mihaly
- A footnote to Procedural Storytelling Joe Andrieu
- A footnote to Procedural Storytelling Rawlings@aol.com
- A footnote to Procedural Storytelling Brandon J. Rickman