How to Play TriadCity

The TriadCity Players' Guide

History of the TriadCity Project

By Mark, Chairperson of the TriadCity Code Warriors Union

I've been writing MUD server code and MUD worlds for a long time, first in C, eventually 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