headshot of Chris Tonkinson
Chris Tonkinson

tech {enthusiast, practitioner, leader, podcaster, mentor, entrepreneur}


Refactored Podcast

I co-host Refactored, a casual, ongoing conversation between two technology leaders trying to suck a little less every day.

Career Schema Project

I founded the Career Schema Project with the mission of developing open standards and technology to reduce the hassle of online jobseeking.

RSS Subscribe

© 2021 Chris Tonkinson

Symphony MUD

The Past (or “Youthful Naivete”)

It’s not at all a post hoc fallacy to begin this article by explaining that in my adolescence I became addicted to an online game*, and now I own my own software development company. The game in question was called Feudal Realms (“FR” as it was colloquially known) and it was an epic derivative of DikuMUD.

Feudal Realms login screen

So exciting was the play, so engrossing was the content, and so dynamic the player base that I can reliably “blame” FR for more than a few poor marks throughout secondary school. In fact, when I obtained my first graphing calculator (the legendary TI-83+ Silver) I stayed awake through quite a few boring classes programming a single player text-based adventure game in TI-BASIC. My introduction to computer programming, as it was for many others.

I quickly became convinced that I could build a better mousetrap. Naturally, having zero programming experience outside of the TI-83, I was very confident.

Fast-forwarding through many years of personal history, I now put meat on my family’s table through my first company, Forge Software. We’re a “general purpose” software development shop but our bread and butter has always been web development. Not cat blogs, but the complex stuff. Heavy, data-driven, many-moving-pieces sort of projects. The kind of dynamic applications where you measure effort in months and not days.

All of our development happens on open source software. It happens with open source software. And it targets open source software. A typical project for us is based on a framework such as Rails, developed with Atom and in Vagrant, and deployed to Ubuntu.

In the past two years I’ve really come to maturity in my admiration of, appreciation for, and excitement about, open source software. I regularly donate to open source projects and I’ve even become silly enough to think that I should begin creating and maintaining some myself (e.g. Rulerz and ruby-stylus-source).

The Present (or “The Lightbulb Comes On”)

For years I’ve been quietly, privately, working on that pet project though — my own MUD engine. An FR-inspired DikuMUD replacement, intended not as a pre-packaged game, but a modern, extensible, batteries-included framework for creating games called Symphony MUD.

The name is pretty unimaginative. Often during development I will listen to the Allegretto of Beethoven’s 7th Symphony. I have no idea where this association formed.

More than once I’ve gotten so excited, and made so much progress, that I even brought a few friends in on the project. They’ve helped with conceptual develompent, they’ve helped with identifying bugs, they’ve helped build zones, only for enthusiasm to die off because I just couldn’t lay the code down fast enough to keep up. Because life came along with its own priorities. Because shinier objects grabbed my attention. Because excuses.

Last week I heard Allan Jude (on TechSNAP) recapping one of the points Robert Elz made in his keynote at AsiaBSDCon. Jude’s comment starting at the 29:23 mark is only about 30 seconds. TL;DR: Your code is ugly; publish it anyway.

This struck a chord. My “inability” (read: historical lack of focus) to produce a truly playable version of Symphony has been a joke amongst me and my friends. It comes up every so many months, and goes something like this:

Friend A:

The problem was that Clinton really just couldn’t get Healthcare done in the 90’s.

Friend B:

Yeah, just like Symphony, right Tonk?


Friend A:

Won’t they ever finish that horrible construction on the freeway?

Friend B:

Ten bucks says they get it done before Symphony’s ready.

Like any good ribbing, it stung in the beginning, but I toughed up. I even make the joke myself nowadays. When Jude makes the assertion that

Nothing’s worse than no code at all.

I stopped in my tracks, rewound, and listened to the argument a second, then a third time. The Symphony MUD code is ugly revolting in places. There are even features which are so poorly written I wish I’d never even implemented them. But they’re there. And on the whole, while Symphony MUD is far from finished, what’s there works. As much as I hate to admit it, and as ashamed as I am of it, it IS better than nothing.

In that spirit, I’m releasing Symphony MUD into the wild under the MIT license.

The Future (or “My Pipe Dreams”)

The official Symphony MUD project will follow a BDFL governance model until such a time when that proves suboptimal (and I’ll be exceedingly pleased to see that day - it’s a good problem for a project to have). There’s a beefy TODO already, and that’s a fraction of what’s in my head, but I’ll be getting all that into Github milestones and issues.

I’d love to have a community of players on whatever my “official” instance is called. I’d love to have admins and developers contribute to the core source. I’d love to have builders passionate enough to contribute new Zones to the default map.

* Feudal Realms has now been offline for many years, so unfortunately I can’t provide a direct link; however a user on Top Mud Sites looks to have contributed a reasonable summary and I did find an active Facebook group, if you’re into that.