Finishing Projects – The Tempest

Well I hit the big three-zero last weekend and instead of having an early mid-life crisis, I thought I’d try and hunt for some inspiration to actually push ahead with an exciting idea I had a few weeks ago.

I’ve been involved in and coded a lot of pet projects over the past 10 years, most never come to fruition (e.g. Google Maps Mobile back in 2005) and others face an untimely end (e.g. Sackbook). The biggest of these was back in 2000/1 and is one of those “Damnit Chris, why did you stop?!” nagging what-ifs.

The background – during high school, when the net was a new-fangled thing and your 2400 baud modem was breaking land-speed records, I stumbled across the world of MUDs. In ‘96ish I got hooked on a MUD called The Rifts (hard to remember but think it was this one) and eventually became an God/Administrator on it for a short length of time so I could build my own area of the game. When the world of alcohol, uni and surreptitious games of Starcraft arrived in ‘98 I managed to kick the habit, but I’d only been cold turkey for a year, when I was introduced to The Chatting Zone (TCZ).

Looking back on it, TCZ was way ahead of it’s time – it was Facebook on a smaller scale and fully embraced the idea of user-generated content in a game; it let users build a social network, socialise and build areas, applications and games for other users (we had a user-coded TCZ Scrabble way before Scrabulous!) The main difference being that it was primarily telnet-based and that there just wasn’t the audience, outside of the geeky world of MUDS, for these things back then.

I was an admin on (and far too addicted to) TCZ for years until it was shut down due to the host (a University) permanently pulling the plug on the server. We had our backup, UglyMUG (which was the pre-cursor to TCZ), but it really rather lived up to the name, and just didn’t have the user-friendly and colourful atmosphere of TCZ (we were the bain of some UglyMuggers’ lives with our bold,  bright and colourful emotes and tells). So I came up with a cunning plan to build a proper replacement. At that point the TCZ source code wasn’t available, and the MUD/MUSH engines available (e.g. TinyMUSH) left a lot to be desired, so my decision was to build an engine from scratch in my preferred language of the time, Java.

I got quite a long way into development with my Java version before TCZ found itself a new home and I got hooked again. However its resurrection was short-lived; it soon vanished off the scene again and I revisited my replacement code, this time with a TCZ friend concentrating on world-building. I did have JavaTCZ up and running privately for a little while, but the memory overhead was just too high and speed of execution of the game’s built-in scripting language was appalling; for a world/database the size of TCZ’s I was going to need to implement swapping of in-game objects off to disk, and Java’s IO performance at the time was pretty poor. I decided to recode it all using C++.

It took about a year to rebuild but we ended up with something pretty impressive. It had all the functionality of TCZ, was syntax compatible with TCZ’s scripting language, had a number of language extensions (such as a foreach syntax, multi-dimensional arrays and matrix operations) along with other hardcoded implementations of useful softcoded TCZ features (such as global teleports, built-in dictionary, standard format emote commands) and brand new features like our categorised chat rooms, auto-completion, syntax highlighting and code formatting. What’s more, it was MUCH faster than my original Java version and had a much smaller memory footprint. We got on-board quite a few former expert TCZ users and got a lot of the popular softcoded functionality recreated.

The important improvements were with the interface with the outside world. TCZ did have a limited web-interface but we took it much further; commands could be targetted to the web, and actions on the website could trigger user-scripted event handlers attached to users, rooms, objects, etc. We also had streamlined chat and IM interfaces, mudmail and bulletin board web interfaces, and POP and SMTP integration with the mudmail system. I’m not quite sure what happened with it, why we stopped – it was probably due to other things keeping me busy then eventually TCZ reappearing on the scene. I’ve still got the code (of both the Java and C++ versions) lying around on some dusty HDD somewhere, but there seems little point in revisiting it now everything has moved on to the web.

This was back in 2000/1, a full 2 years before Facebook was a glint in Zuckerberg’s eye, and the notion of user-generated content in games is only now just being realised.

So, not one to repeat previous mistakes, this post is an attempt at getting myself psyched up to crack on with another neat, but highly ambitious, idea I’ve been mulling over. More on that soon hopefully!

  • Digg
  • del.icio.us
  • Facebook
  • Technorati
  • Google Bookmarks
  • Live

1 Responses to “Finishing Projects – The Tempest”


  • Man, you know what I realise from this – not that this pre-dates Facebook, etc, etc… but that Facebook REALLY needs a command line interface.

    Yeah, yeah, am doing my TPS reports, honest boss, just got to telnet to the server, etc…

Leave a Reply