Category Archives: Basternae and ModernMUD

Posts about the Basternae MUD and/or the ModernMUD codebase.

First Release of the Basternae 3 Client (v0.11)

You should be able to tell from the version number that it’s far from done yet.

I spent some time working on the status window, and it now appears to work more-or-less as intended:

Client status window screenshot.

There are a handful of issues I know about, and probably a good solid handful that I don’t know about, so feel free to report anything that is broken that you wouldn’t expect to be broken in a partially-done MUD client.

I’m also curious to know what this client would have to do for you to give up your current favorite MUD client, whether it be ZMud, WinTin, tintin++, or some other app.  I’ll throw one out there — before I’d be willing to use it as my main client it would have to support aliases, all those extra newlines that show up in the main window would have to go away, and room description formatting would have to be less wonky.

The cool thing about having our own client is that we’re no longer just restricted to 16 colors of ANSI text.  We could do 2-D graphics (i.e. the sample tiled map that shows when you first run the app — since we don’t have surface maps yet it won’t do anything, but hey..)  We could do any number of colors.  We could do anything we have the skills and motivation for.

I don’t at any point plan to make this client mandatory — you should always be able to play with Windows Telnet.  It’s just going to be there for those who want the “full experience”.  Tinker with it imagine some neat possibilities that I wouldn’t have thought of yet.

You can either click on the link in the sidebar (which will always have the most current version), or you can get it HERE.  There are no real instructions, but you’ll get the hang of it.  The other dialogs can be shown with the “View” menu.

Immortal ‘Set’ Commands Repaired

One of the casualties of the codebase rewrite was the disabling of the immortal ‘set’ command, which is pretty useful for administrative tinkering. It’s been repaired, so immortals are godlike once more. It doesn’t improve gameplay any, but it does help development.

Thank You To Drevarr, Nauraki, Sarim, Sarlac, and Thendar

They’ve been nice enough to grant Basternae 3 the use of their zones.

I’ve also found out that the converter needs some work — there are a few special cases that it doesn’t handle and zone format variations that it doesn’t handle perfectly yet, so it will probably be a bit before all of the zones we can use are fully converted and attached.

Some Solid Client Progress

Over the past two days I’ve made some good progress on the client.  It’s now working with colored text and functioning scrollback.  There was a bit of difficulty in figuring out how to post text from the network thread to the main window, but that’s been solved thanks to the helpful folks at the wxWidgets forums.

Client Screenshot

The equipment window works now, but the equipment names are not in color yet:

Equipment Window

The earlier screenshots of the client just had some placeholder text — now it actually processes your equipment list and displays it.

The hotkey (hot button) window also works — you right click to set a command and a hotkey name.  When you click the button the command is sent.

Hotkey Window

Hotkey Editing

The prompt processing and room info display still needs some work, but it’s coming along nicely.  I haven’t even started on the group info window yet.  I think it may be about three solid days away from being able to release a test version, but I can’t recall the last time I’ve been able to get in a “solid” day of development.  Usually it’s anywhere from one half to four hours at a time.

Minotaur Stronghold Added

The Minotaur Stronghold zone I mentioned doing some testing with a few days back is now uploaded and connected to the MUD. It’s a scenario where an Orcish army has a Minotaur outpost under siege. Enjoy!

wxWidgets Client Resurrected

As I mentioned in my post yesterday, not being able to support scrollback with the client was a problem in the wxWidgets-based version. This is because it used the Simple DirectMedia Layer (SDL) for the text rendering, and that just has a 2-D panel that text can be rendered to. Adding scrollback to that kind of system would be a large amount of effort.

Since the original development on the client was started back in 2005, wxWidgets has added the wxRichTextCtrl control, which lets you create rich text box — as in, a text box that has color, images, and all sorts of happy goodness like that.

I spent some time ripping out all of the SDL portions of the client and replacing them with the rich text control. The end result is that it does everything it did before, but has scrollback, uses less CPU, and has less memory copying going on (which means fewer possible points of failure). It still needs some tuning, but it already uses five fewer code files than the previous attempt.

Editor Update (Version 0.45)

I added a few more commands to the walkthrough mode in the zone editor.  The commands list, edit, createedit, exits, and version have been added.  It also now understands the short versions of the diagonal commands — nw, ne, se, and sw.  You can get it HERE or via the sidebar link.

As always, this is a relatively untested app, so save often.

Scan Command Fixed

One of the nagging problems I had been meaning to get to was the non-functional scan command. It’s a recursive command, and the C# way is a bit different from the C++ way. It was easier to fix than I had expected and is working now, so scan away.

Editor Update (Version 0.44)

Made more progress on the editor. The walkthrough window now has basic functionality. There are only a few commands working, mainly the directional commands and the goto command. It’s all in black-and-white, but it is enough to let you walk through the rooms and get a feel for what mobs and objects are where.

Basternae Editor v0.44 Screenshot

Pretty basic, but it will evolve with time.

You can get the latest version HERE (or via the link on the sidebar).

Zone Permissions Needed

We had permission to use zones from these authors for Basternae 2. Even so, I want to be sure we have permission to use them with Basternae 3. If you know any of these folks, please pass the word that I’d like to get permission to use their zones in Basternae 3 (and/or all future incarnations of whatever Basternae 3 ends up evolving into).

Based on the severely-outdated zone list I have from Basternae 2, here’s a list of the folks I’d like to get zone permission from:

Akyura
Alachest
Baghtru
Beretorn
Clavados
Cy
Denel
Dregeath
Drevarr
Drokal
Dryn
Drzx
Dubar
Gharl
Gnosha
Ilshad
Iris
Kolut
Khiba
Kuldrim
Lortar
Losh
Malthrix
Parkan
Pesto
Phreak
Raliq
Sarlac
Scipio
Sjad
Ski
Sniktiorg
Talos
Threnody
Thugan
Timken
Trask
Trika
Xueqin
Zaeru
Zileas

We could probably just use the zones since we were given permission once, but I’d really prefer to run it by the authors first. My email address is xangis [at the mail provider] yahoo (dot) com. Any assistance in contacting these folks would be appreciated. Thank you.

Editor Update (Version 0.43)

I did a little more work on the editor today.  Now that I’m able to convert zones created with DurisEdit, I decided to use the Basternae Editor tinker around a bit with the Minotaur Stronghold zone that I created and converted.  What did I work on?  The map view.

I changed it so that it generates room arrangements more accurately and also shows room interconnections.  It has only been tested with and I only expect it to work with zones that have rooms that are all interconnected (reachable).  I’m sure it will need some work to behave right with non-contiguous zones.  Even so, I have it working with the Minotaur Stronghold, Kobold Village, and Thri-Kreen Hometown, and clicking on the box for a room will take you to the edit window for that room.  Kinda neat if you ask me.

Basternae Editor v0.43 Screenshot

You can get the latest version HERE (or via the link on the sidebar).

Now Able To Import DurisEdit Zones

I’ve been wanting to add support to the zone converter for using DurisEdit to create Basternae 3 zones for a while now.  While it is nearly identical to the DikuEdit 3.10 that we’ve used for ages, there are a few subtle differences — their format allows multiclassing and has a few different classes available and a few different settings that we don’t use, like size.

I built a small 40-room zone using DurisEdit to test against.  I had to make a few changes and had to improvise a bit with class translation, but I’m able to import Duris zones now.  The process is identical to the import of Basternae 1 zones.

Since they don’t have settings for each type of elementalist, I’ve defaulted mobs classed “Conjurer” to “Fire Elementalist”.  If the class should be something different, it will just have to be changed after conversion.  There will also probably need to be some extra affect flag translation and/or a few minor tweaks here and there, but the hard part — reading the files correctly — is covered.

This means we now support:

– Envy zones (You can create them using mzfe2-32 among other things).  This is the least full-featured format.
– Basternae 1 Zones (.obj, .mob, .wld, etc.)
– Basternae 2 Zones (.are)
– Duris Zones (.obj, .mob, .wld, etc.)
– Basternae 3 Zones (.are.xml)

Given the choice between DE 3.10 and DurisEdit, you should choose DE 3.10 because it most closely matches our zone format.

The ideal editor would be the current zone editor, version 0.42, but that may still need some work.

Two More Zones Connected

In addition to fixing a few bugs with immortal commands, I connected two more zones to the MUD, giving us a whopping total of 3 connected right now:  The Kobold Village, The Thri-Kreen hometown, and the Gypsy Encampment.

Test Connection Up Again (Temporarily)

I put up the MUD server so I could do some development.  Telnet basternae.org port 4502 and feel free to report anything you find.   I haven’t fixed everything since the last test run, but did fix a handful of things.

I don’t have a restart script running, so if it crashes, that means it’s going to stay down until I check it again.

For those of you who want to use the old version of DikuEdit, I added a link to it on the sidebar.  I would like to get a bit of feedback on the new editor, so feel free to try that and let me know what you think of it so far.

New Release: Zeta Telnet Version 3

One of the first things I wrote when I was learning C# was a basic telnet client. It’s not like the world needed another telnet client, but it was a fun, easy project to learn the .NET socket libraries.

In the process of working on bug reports for Basternae 3, I found something annoying: Windows Vista doesn’t have a telnet client installed by default.  How silly.

Normally I use Putty as my telnet client. Since I was doing a lot of connecting and disconnecting during my code-build-boot-test-shutdown cycle, the fact that Putty closes the window every time the connection was lost became a little annoying.

I know I could just grab a copy of WinTin, but I felt like updating that old telnet client. So, here goes: Zeta Telnet Version 3. Grab it if you need a basic telnet client. If you need a full-fledged MUD client with aliases and the like, it’s not what you’re looking for.

A Solid Batch of Fixes

Thanks to reports from the pre-testing test and from actually trying to use the MUD as a player, I’ve taken care of a bunch of things.  Here’s the list:

— Fixed “look in object” command.
— Fixes to damage messages.  Sometimes they wouldn’t print thanks to a stray ‘\0’ (null) character.
— Kill message now shows properly.  Yet again, caused by a stray null character.  A remnant from the old C days.
— Improvements to name capitalization in prompts, descriptions, and room entry/exit messages.  Some things will still need adjustments, but it’s better.
— Fixed “no help on Grey Elf” during character creation.
— Fixed display of spell schools when using the “spells” command.
— Fixed a nasty bug that would cause a newly-killed player to become unplayable.
— Picking up items should work now.  Zone files weren’t synchronized with code (zone files were a version behind in the zone format).  That can cause all manner of weirdness, but the fix is simple — run the zone converter to build a new set of zones.  In this case, flags that included “takeable” settings were missing.
— Corpse creation should be less broken.  Can’t promise it’s perfect, but it’s better.  At the very least, I can kill things and loot coins from corpses.

Those are some pretty significant fixes, but I’m still no more than 45% through the things mentioned during the test.  Add to that the fact that I found a few other things that need to be looked at.  Actually PLAYING a game you’re working on does wonders for figuring out whether it works as intended.