MUD tech is fun/cool, but…

Tuesday, January 08 2013

As software development evolves, there are an ever-expanding number of ways to put together very complex, elaborate systems that are fun to geek out on. Multi-processing is becoming increasingly prevalent, distributed systems are a boon to cases with massive scalability or reliability requirements, and there are all kinds of neat data stores available. These are all definitely things that have a place in software.

But what does this mean, in the context of a MUD?

Honestly, very little. Even a very large MUD with hundreds of connected players can be ran on a very pedestrian machine with a modest amount RAM, and very little bandwidth. Multi-threading is not a requirement for performance (and can often work against it). Highly distributed, multi-server setups are hitting nails with jackhammers. After all, we’re talking about a genre that primarily features smaller (<100 connected players) games.

An important thing to keep in mind when developing a MUD is that simple, well-thought-out MUD architectures have a huge advantage over those their more complex kin: They are easier to develop, and they are a lot more likely to ever see the light of day.

MUDs are a labor of love

Although you’ll hear people crying about the demise of the text-based genre, there will always be a niche out there for our kind. However, the vast majority of the games in our space are going to remain non-commercial, and mostly developed by volunteers on their spare time.

By making simplicity a high priority, we make sure that it’s easier to make progress when you do have a few moments to sit down and work on your game. While you could write a super-distributed, super-fault-tolerant MUD server, it’s probably going to make future development more complicated, and you may run out of steam before you get anywhere close to being "done". As someone who would love to see more great MUDs out there, this makes me sad!

Developing and launching a MUD is a labor of love, and it has to be fun and interesting to you. You have a finite amount of time to get your game launched before you probably lose interest and move on to other things. This "time limit" varies from person to person, and some possess the rare ability to regularly, routinely work on a game for years before going public, but those types are very rare now. Your goal should be to open to the public before your "ok, time to move on" timer goes off. Simplicity is one of your biggest allies while pursuing this goal.

But… there are always caveats

A very valid counter-point to this argument for simplicity is that MUDs are a great way to learn new technologies, to experiment, to do things one might not normally do. If one’s goal is to tinker more so than to actually release a game to the world, you can throw this all out the window. Get as complex/geeky/sexy as you’d like, and have a blast. Who cares if you never ship? That’s not the point for you, anyway.

For those that are most concerned with actually "shipping"

Focus on your core functionality. What is your "minimum viable product?" What is the most direct way to get to your opening day? Avoid unnecessary complexity, and remember that you can always refactor and improve performance/scalability as you grow. Nothing is set in stone.

Avoid traps like multi-threading (unless you really have to have it), super scalability, and elaborate distributed setups unless you just really want to play. You’re designing a Gocart, not an IndyCar.

Simplicity. Clarity. Focus. Oh, and ship the damned thing!


EVE Unified Uploader (market data) open sourced

Sunday, March 11 2012

The author of the EVE Marketeer Uploader has decided to open source the project, which is great news for the EVE community. It appears to have a large amount of traction, this move will guarantee its survival into the future, and allow other people to contribute to the project.

The ...

read more

More efficient market web APIs for EVE Online

Sunday, March 11 2012

There are a handful of market data sites (EVE-Central, Eve Marketeers, Eve Marketdata) out there now, each with their own developer APIs. All but EVE-Central are relatively new sites, and most seem to suffer from the occasional, or permanent, sluggishness. It doesn’t appear to be for lack ...

read more

Magnificant MUDdy Musings

Friday, February 24 2012

The Evennia MUD Server has been progressing through beta at a good clip, with much effort spent on fine-tuning existing features, and expanding on the already excellent pile of documentation. Much to my delight, the current maintainer, Griatch, has started to blog about Evennia development. If you are at least ...

read more

EVE Online grows up fast with Crucible

Wednesday, November 30 2011

I’ve been playing EVE Online since the summer of 2008, and have kept a close eye on the state of things from time to time. CCP releases a free "expansion" every six months with lots of goodies in them. The latest, Crucible, is the first that I can remember ...

read more

Urban development in Minecraft

Friday, July 22 2011

I recently stumbled across an article on Hacker News about how our urbanisation tendencies translate really well to the world of Minecraft. Urbanisation in Minecraft details the experience of one of four founding members of a Minecraft server as it sees explosive growth, eventually developing sprawl and resource shortages in ...

read more

Back to basics (again)

Wednesday, July 13 2011

It’s definitely different starting all over again with writing a new MUD codebase. My first attempt was Evennia, which  has evolved significantly since I handed it over. It is/was meant to be more general-purpose, and appeal to MUX/MUSH/MOO refugees who are tired of softcode (MUX/MUSH ...

read more

Unable to shake the habit

Monday, July 11 2011

Some of the first multiplayer games I played were text-based MUDs. Their accessibility, the imagination required, and the variety of places to spend time was great. Myself and a close friend had a few favorite places to haunt online, and had a blast exploring other people’s worlds.

We stumbled ...

read more

Fixing key sticking on Minecraft (Linux)

Sunday, May 08 2011

I finally got fed up enough with my directional keys sticking on Minecraft (Linux version) to dig up a fix. I’ll post this here just in case someone else ends up afflicted. There’s a post on the Minecraft forums that I can vouch for, having done it myself ...

read more

Minecraft, Python, and nerdery

Monday, May 02 2011

A little over a month ago, I was finally pulled into the rapidly growing thing that is Minecraft. Like many of you, I ended up happily breaking blocks and constructing crude huts and castles into the wee hours of the night.

As is the case with many other things I ...

read more