Month: April 2008

Removing Items From A Container In A Foreach Loop

It wouldn’t have been unrealistic for the designers of .NET to find a way to make this work: foreach( Item i in ItemList ) {   if( i.ShouldBeRemoved )   {     ItemList.Remove(i);   } } What happens is you get a ‘collection modified’ exception and you’re hosed. You can’t move to the next item in the list because

Sorting The Easy Way in C#

If you have a list of objects, say List<Widget> it’s mighty easy to to sort them using .NET. First, derive the Widget class from IComparable: public class Widget : IComparable Then create the CompareTo method. In this case, we’re sorting the list of Widgets by name: public int CompareTo(object obj) { if( !(obj is SynthProfile

Raph Koster Is Pretty Awesome

Some of you may remember Raph from Ultima Online, Star Wars Galaxies, or Everquest II. He also wrote a few articles for Imaginary Realities webzine (a webzine about MUDs for those of you who don’t know). The site was pretty active from 1998-2001, but at some point it vanished from the face of the Earth.

300 MUDs on FindMUD

Data entry is a lot of work and it takes a lot of time. Even so, I’ve been making steady progress on FindMUD. It’s up to 300 MUD listings now. Our next goal is to pass MudMagic, which has just over 500 listings. It won’t be blazingly fast, but it will happen.

Command Processing Engine Complete

I completed the last of the code for the command processing engine today. Not much detail to report — it’s done and seems to work well enough.

A New Command Processing Engine

Command processing in the old Basternae was pretty klunky. The command interpreter would just pass on any text that was entered and each command function would have to do a lot of parsing to split up the command strings and figure out what the user actually intended. About half of each command would be devoted

Automatic Line Wrap

When writing a zone, it can be tough to know where to end your lines of text. While a standard terminal has 80 characters, some telnet programs start to look weird with any line that is more than 77 characters, and some terminals have 130 or more characters per line (usually depends on screen resolution).

A Whole New Spell And Skill Engine

Well, maybe not a *whole* engine quite yet, but certainly two thirds of one. I’ve generated about 500 little XML files to hold all of the skill and spell data for dynamic runtime loading.  It’s all pretty neat — skills and spells can be tweaked by hand without having to compile any code (though the

Learned Something New Today

I came across this article on Scripting with C#. Quick summary: It tells how to load and compile C# code from within a running application so that you can dynamically load scripts. This is something I’ve been meaning to find out how to do for a while. I’ve always wanted to create a file-based spell

Technology Always Fails

There’s only so many times I can see a message like: “Error loading operating system” Before it starts to get frustrating. Won’t be much progress today.  I love computers.

Writing A MUD Engine Is Hard

Seriously. I don’t mean just writing a basic telnet chat server with a few objects and commands you can interact with.  Any amateur programmer can do that. No, I mean writing a full-featured MUD engine that supports all of the features MUDders have come to expect from a game like Basternae 3.  It’s really dang

Humpy Dumpty It Ain’t

A little less than a week ago I mentioned that I had broken the heck out of the codebase. Well, it’s all back together again.  The MUD engine and the zone converter are as healthy or healthier than they were before, the weather’s nice, and all is well with the world.

MUD Connection Stats on FindMUD

One thing I’ve been working on is an automatic ‘ping’ routine that checks the MUDs listed on FindMUD every few days and shows the connection results on a MUD listing so you know whether a particular MUD is still alive or not. Since I’m no PHP expert, it tends to be rough going sometimes. I

Fedora Core 8 Just Doesn’t Work

I’ve never had any luck with Fedora Core.  The latest version, 8, wouldn’t even get past the disk partitioning screen for me.  There’s a reason why I’m an Ubuntu devotee — after all, it managed to install itself quickly and easily with no stupid questions and worked flawlessly from the start. Last time I ran

Mass Refactoring

In the interest of making sure the MUD can be modified easily well into the future I’ve broken the heck out of the codebase. Yep. I’ve been refactoring, rearranging, renaming, and restructuring things so they make a lot more sense. That has inevitably broken a few things, but it will be far easier to add