Amberyl's blog

Code tip: Data Factory

Data handling is one of the most awkward things in MUSH. You want your data to be compact, so you want to try to avoid splattering it across a zillion individual attributes. But you also need your data model to be flexible, so that you can add fields to your data structure over time. If you shove the entirety of a data structure into a list, you can often end up with code that's hard to write and debug, because you're constantly trying to find and edit elements embedded within that list.

My belief is that one of the reasons that people find MUSHcode extremely time-consuming to write, as well as hard to maintain, is that their data models, and the way they handle, store, and manipulate data simply isn't very good. Moreover, it is incredibly easy to write obfuscated MUSHcode.

My solution to this is a layer of what I call Data Factory code. What follows is an explanation plus the code for it.

Using a blogging client with this site?

I know that in theory, Drupal can be configured to allow the use of normal blogging clients (that support the MetaWebLog API, for instance) to post to the site.

I'm trying to figure out how to post via client, and I can't tell if it's my client support, my personal account config here, or the site-wide Drupal config that's causing it not to work.

Anyone know?

TinyMUSH 3.1p6 has been released

I'm trying to get back into the habit of releasing code at least once a year, rather than letting changes accumulate.

So the next version of TinyMUSH is out. TinyMUSH 3.1 patchlevel 6 has a bunch of new features, including a reply-page, multiple inheritance for attributes via a concept called propdirs (property directories), and PennMUSH-style #lambda anonymous functions.

The Road to Amber MUSH

It's been a while since I posted, and I just realized that I never did post information on my current game.

It's The Road to Amber MUSH, set at the end of the second book of Roger Zelazny's Amber chronicles.

We've passed our six-month mark since opening and things feel like they're going pretty well. What's surprised me is the number of newbies -- people with minimal or no previous MUSH experience. The hobby is not yet dead!

Code tip: Manipulating positions rather than list items

An idle thought that I figured I'd throw out here, since I haven't noticed anyone else making common use of this in code...

It is often easier (or at least more readable) to manipulate lists by the position of data elements, rather than trying to manipulate the data elements themselves, especially when you have data in multiple lists.

Here's an example: I've got a defined flag called _PUBLIC on my game. If players are in a room flagged _PUBLIC, they are considered findable by the global command +public. I want to display three things in +public:

Workflow engine

I'm experimenting with something new at the moment -- a "workflow engine" concept in softcode.

I've never played with Anomaly's Jobs system, personally, but a MUSH I was playing recently used it. From my quick perusal of the code, it lets you submit text and approve/deny things and add comments and so forth, and its hook system lets you trigger off things, but it's not really designed to really manage more complex MUSH processes.

Proliferation

Ten years ago, the world was still at a state where a fair number of players were insisting that all significant resources of a game be located on-game, because not everyone could readily run a browser as the same time as their MUSH client. Those days are now gone, and there is an embarrassment of riches in terms of ways to communicate.

As part of preparing to opening for building, I have just...

  • Registered a domain name
  • Obtained MUSH hosting
  • Created a website
  • Created a wiki and forums on WikiDot
  • Created a Livejournal community

The dramatic cycle of games

After a several-year hiatus from roleplay MUSHing, I got back into the hobby right at the beginning of August of last year.

It's been almost a year, and since then, I've experienced what I now realize is the OOC dramatic cycle of a lot of roleplay MUSHes -- initial excitement, the increasing fun, the fun now punctuated by moments of crazy, the escalating crazy, and finally the explosion. (For those who stay, this is generally followed by, if not the death of the game, a renewal period of recovery, retooling, moving on, and a repeat of the cycle.)

Syndicate content