Wordsmyth's Corner

Large-Scale System Design

by Linda Naughton ("Faraday")


Originally posted on Electric Soup.

Quite a few folks have indicated a desire to see a tutorial on building a large-scale softcode system. I've recently donated my services to Battlestar Pacifica (BSP), a MUSH in development (shameless plug - check out their website; they've got a cool trailer). I thought I'd write a few articles about the design of a skills/chargen system I'm doing for them. Although my focus here is on a skills system, the general process should serve you well for just about any large-scale system.

The article will be in a step-by-step format. I thought it was important to show the sequence of events and the evolution rather than just the final result. There will be further installments as the system progresses. This means I may miss some things up front that I will have to account for later. Again, I think that this is an important part of the development process.

All of the code snippets will be for PennMUSH, but should be adaptable to TinyMUX with minimal effort. I assume a reasonable familiarity with softcode. This is not a tutorial on how to write a simple coded command; it's about putting those commands together into a comprehensive system. You can check out my other tutorial if you're a little rusty.

Standard disclaimer applies: I make no claims that any of this is the "right" way to do things. It's just the way I do them. However, I am a software engineer in real life, and I do attempt to apply the same general principles to softcode that I do in my day job (within reason).

Thanks to Zarquon and Thor for letting me use their game for this.