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-like server code 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 world I imagined. Usually, by writing libraries 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 depravity. How to model that subjectivity?

Turns out that creating truly subjective experiences on a character-by-character basis requires a new kind of code architecture, which is far more flexible, and considerably more sophisticated. In programmerese, a "design pattern" called Strategy, in which algorithms are modified in real time by replacing portions on the fly from libraries of pre-existing algorithm-lets, lets us assemble a complex sequence of instructions dynamically from tiny building blocks. We can 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 very different approach to the laws of physics than freeware code could enable, so, off we go.

Of course, this was before the beginning of measurable time, 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 Universe 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 World. This has been my project for very many years, and today I'd say we're getting close. Ish. I created Poobah to free myself from the chore of writing Room descriptions — not really what interests me. With him doing his thing and me doing mine, we're making 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 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

Not yet a member? Sign up for free here.