Year: 2008

Magma MUD 3.04 Released!

I’ve made a minor update to the Magma codebase.  Here’s what’s changed: 1. Added support for loading 4 of the 5 remaining Envy 2.2 zones that wouldn’t load. 2. Bundled the MakeZonesFast32 and DikuEdit 3.10 zone editors in the MUD package. 3. Added DOS conversion utilities for assembling DikuEdit zones (makezone.bat). MagmaMUD 3.04 is available

Resharper 4.0

Last year I tried the Resharper 3 plugin for Visual Studio, and posted my thoughts on it: http://basternae.org/blog/2007/07/26/jetbrains-resharper/ It was OK, but not all that special. It had potential, but wasn’t quite “there” yet. I just finished trying out Resharper 4.0 and you could paste the Resharper 3.0 review in its place. It’s neat, but

A Re-Preview Of The Editor

Yesterday I said the area format wasn’t likely to change. That was before I finished the code-data separation. BasternaeEditorPreview2.zip The same warnings from preview version 1 still applies.

First Zone Editor Preview Version

Here’s the first view of the Basternae Zone Editor available for download: BasternaeEditorPreview1.zip (download removed, see the post about preview version 2) Some warnings: 1. This is a pre-release version and it’s entirely likely that it will be unstable and lacking in features. 2. It has no help files. 3. It has no icons for

Rewiring The Core

In the process or getting an alpha version of the editor ready I’ve found that I had to separate the game code, a.k.a. “business logic” from the data, a.k.a. “object model”.  Otherwise I’d have to include the entire MUD engine in the editor download.  Since that’s not something I want to do I’ve had to

A Review of Duris

The MUD Connector has an interesting review of Duris posted: http://www.mudconnect.com/mud-bin/new_prev/review.cgi?rid=25705 I’ve always enjoyed Duris and still play it off and on (maybe half a dozen weeks a year), but it has always had so many flaws that I end up getting fed up and walking away after a while. Part of it is administrative,

Serious Shrinkage

The connection state management code in the socket layer of Basternae has always been what I call “spaghetti code”.  It was a single method containing a huge switch statement with pretty sizable blocks of code for each case.  Tracing program flow for characters that were not actively playing was always difficult due to the complexity

Zones From Lortar

Lortar has been kind enough to grant permission to use his zones from Basternae 2: Fairlocke The Elemental Plane of Air Tower of Darkness

Unit Testing With MbUnit

In general either code works or it doesn’t and it’s easy to tell whether it does or doesn’t work. At least until you reach a certain level of complexity. At some point a project gets large enough that you can’t tell which project/dll your error is coming from, let alone which of the 100K or

Miscellaneous Fixes

I made a few changes to character creation today.  There were a few places where it was case-sensitive — you could create a “Troll” but not a “troll” and there were a few weird state changes.  For instance, when creating a character you would see the menu twice the first time it was displayed. I

Issue Code Is Working

I finished testing the issue code today.  We now have a functional ‘help desk database’ for the MUD.  It’s primitive, but it should do the trick and can be expanded/changed as necessary.  At least we’ve eliminated the bug, idea, typo, and ‘helps needed’ files that admins would rarely, if ever, look at.  Here’s an example

Basternae Zone Contract

I’ve put together a simple “zone permission contract” here: http://www.basternae.org/BasternaeZoneContract.pdf It’s probably not necessary, but while I was publishing my science fiction magazine I found it to be a good idea to get everything in “official” writing. If you have written any zones you’d like to let us use or know someone who has, this

TODO List Added

I’ve added a to-do list under the ‘Pages’ section. It’s not quite complete and the formatting isn’t all that great, but it might be a useful way to keep track of what needs to be done. At the very least it’ll give readers some idea what I’m working on. So far I’ve been using simple

Back From Vacation

OK, so maybe I didn’t announce the vacation in the first place, but I took some time off from working on Bast to enjoy the summer. I’ve been working on the client a bit, and I had almost forgotten how much I dislike C++.  It’s just so messy and inefficient to work with.  You have

An Upgrade (For Me)

It’s been a busy week at work — just got myself a promotion and haven’t had a chance to work on the MUD as much as I’d like (more tired in the evenings than out of time, really). Most of this week’s effort has been directed toward the editor. I’m wondering whether it would be

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.