|
How to Play TriadCity
The TriadCity Players' Guide
History of the TriadCity Project
By Mark, Chairperson of the TriadCity Code Warriors Guild
I've been writing MUD server code and MUD worlds for a long time, first
in C, now more recently in Java. Typically I would take an existing
freeware code base such as Diku or Circle and modify it to enable
whatever ambitions I had for the game world I was thinking of. For
instance, by writing bunches of custom functions, or tweaking the
database in some simple way. As long as the concepts for the game
world were simple, that seemed likely to require the least effort.
TriadCity arose when that approach turned out
to be too simple for what I wanted to do. The idea was to explore
culturally-relative notions of good and evil. What struck me was
how subjective those terms are. For example, the Cold
War, in which both sides believed the other was truly the embodiment
of evil and depravity. How to model that subjectivity?
Turned out that creating
truly subjective experiences on a character-by-character basis
really required a new kind of code architecture, which would be far
more flexible and, I guess, sort of plug-and-play. In way-technical
programmerese, I thought that a "design pattern" called Strategy
was the thing to do, in which algorithms can be easily modified
dynamically by replacing portions of them on the fly from libraries
of pre-existing algorithm-lets. So that you assemble a complex
sequence of instructions from little tiny building blocks. That would
let us use one algorithm-let when, say, a good-aligned character
climbs a tree, and a different one when an evil-aligned character
climbs the same tree. This is a pretty simple thing in modern
object-oriented languages, so off we go.
This was before the beginning of measurable time, of course,
so I can't tell you how long ago it was. I started
tinkering with some code snips, and meanwhile sketched the basic
outline for the Universe during a week-long training course
on Asynchronous Transfer Mode: the slowest, stupidest, most
aggravating course any employer ever paid for on my behalf. So
there was plenty of free time. Came home with lots and lots of notes.
Wrote the first server and client networking code, the database,
Rooms, and the Move and Look commands over a vacation break. At
that time the whole of Creation was just a few test Rooms. It
wasn't until I added SmartMonsters to the World that real progress
became possible. I wrote SmartMonsters so that it could free me
from confines of material necessity, allowing me to devote full and
complete attention to elaboration of the fabric of the Universe.
This has been my project for the last five years or so, and today
I'd say we're getting pretty close. I created Poobah to free myself
from the chore of writing Room descriptions -- not really what
interests me too much. With him doing his thing and me doing mine,
we're making pretty rapid progress. Poobah has recently suggested
creation of several additional authors, and we may well do that the
lazy way, that is by adapting some of the tourists who
visit our City most regularly. We'll see.
Well so that's the inside story of Creation. Not super interesting,
but then that's why we let Poobah handle the prose. I'm happy
adding more and more physics to the fabric of the Universe, and I'm
happy letting Poobah direct that work based on his needs. Wherever
you go in TriadCity, you're stepping on my code. You actually
are my code, when you're in the City, although of course
you're not able to understand that directly. That's what the
subjectivity business is all about.
--Mark
Month of Elephants 18, Year of the Rooster 1,
around Yayon, the Third Hour of Light
Players' Guide TOC
|