Category: Programming

Building software.

Basternae Project Officially Abandoned

If you have any interest in working with the Basternae code as it is today, fork the repository on Github: https://github.com/Xangis/ModernMUD Good luck and happy travels, Xangis

ModernMUD Source Now on Github

As dumb as the name might be, I decided to go with “ModernMUD”. The source code is available on Github under the BSD license: https://github.com/Xangis/ModernMUD There’s a lot more to be done with documentation, but the XML comments are decent enough to make IntelliSense useful. I’ll probably be posting more about invidiual sections of the

Preserving Newlines in XML Serialization

With .NET’s XML serialization, it kills newlines when you serialize XML to disk. More specifically, it converts a CR+LF into just an LF (\r\n becomes just \n). This was causing annoyances with the spell editor, since you can edit source code for spells with it, but the code would appear all on one line after

I Am Addicted To Github

Until recently, the only code I’ve released as open source has been the Magma MUD codebase. In the process of posting the Magma source on Github, I kind of got hooked on posting code online. Since then I’ve posted the source for a handful of applications, a mix of Linux and Windows desktop apps. A

MonoDevelop Not So Great

It turns out that using MonoDevelop had some dangerous side effects, especially related to terminal output. Mobs in your current room were rendered invisible on the Mono build even though they were visible on scan and you could attack them if you knew they were there.  It’s back to using Visual Studio in a Windows

Using MonoDevelop

I’ve almost always used both Windows and Linux, but I stopped using Windows a few months ago.  One of the things that only runs on a Windows machine is Visual Studio.  The Basternae code was compiled on a Windows machine and then uploaded to the Linux host. Without access to that, it was time to

Win32 Visual Styles

Nothing to do with Basternae, this is just a reminder to myself how to enable the visual styles for controls available in Windows XP and newer in a WIN32 project in Visual Studio 2010.  Had to do this at work and it’s a little tough to look up. 1. Edit Project settings. 2. Under Linker->Manifest

New Game: Dragon Wilds

http://dragonwilds.com I built this oldschool over-the-2400-baud-modem game in my spare time over the past week using Python and Django (it’s about 500 lines of source code, 500 lines of HTML templates). I don’t know whether I’m going to spend more time on it, but it was fun to build and a nice break from the

Back to WPF

A while back I made a start on building the client using WPF, the Windows Presentation Foundation. It only made sense to give it a shot since the whole MUD is based on C# and .NET. That effort stalled due to a roadblock or two, probably because I didn’t know about routed events and partly

C#: Compiling For 32-bit Systems on 64-bit

I recently upgraded from 32-bit Vista to 64-bit Windows 7.  I may be one of the only people who didn’t have anything bad to say about Vista.  For me it was a huge step up from Windows XP, but since I have 6GB of RAM in my system it’s a little silly to run a

Visual Studio 2010

Three months ago I switched from Visual Studio 2008 to Visual Studio 2010 as my main development environment.  Functionally it’s the same as it’s always been, but there are two things about it I consider great improvements. First, the UI:  It looks so a lot better and cleaner than earlier versions.  It’s not that older

Zone Format XML Schema

I used the Microsoft XSD.exe tool to generate an XML schema file from the zone classes. That probably means nothing to most readers of this blog, but here’s the .XSD for the Basternae 3 zone format: Basternae 3 Zone Format XSD No reason really, just in case someone might be an XML tinkerer and wants

Fun With XSL

One of the good things about having data stored in XML files is that you can use XSL stylesheets (templates) to format the data into HTML. I created two basic templates, one for races and one for classes, and linked them to the data files used by the MUD. They don’t have any fancy formatting,

Artificial Intelligence Markup Language (AIML)

One of the things I plan to have the MUD engine support is AIML. That’s an XML-based file format that defines conversational data for a “chatterbot”. I’m sure most everyone has heard of the Eliza, Julia, or A.L.I.C.E chat bots. The idea is that you can create personalities that respond to certain phrases, much like

Basternae Code Now Stored With Assembla

Code versioning is a good thing. You can rollback changes that make things worse, compare current code to past code, keep backups, and access your code from almost anywhere. It also helps make sure that every machine being used for development is kept current and that changes aren’t easily overwritten. Any serious development should have

Removing Hard-Coded Rooms, Objects, and Mobs

The old codebase had plenty of references to hard-coded room numbers. For instance, “Limbo” and the “default start room” for races without hometowns were set to room number 200. Well, having those etched permanently into code is a bad idea, since it ties you inextricably to certain specific area files, and more importantly, it forces

More Fixes To File Loading

A week ago I wrote about Mono not being happy with XmlElementAttribute.  I had cleaned up loading/saving for players and zone files, but skill and spell data needed some work.  I took care of that today, so all of the xml serialization is happy now. I’ve hired the wife as a QA tester to do

A Better To-Do List: Got-It-Done.com

If you’ve explored this blog much in the past you would have noticed that I had a “to do list” published.  It wasn’t well-sorted, and not all that easy to edit. Since much of what I do in life is todo-list-driven, I’ve always tended to fill post-its and notebook pages with lists of things I

Mono 2.01 Doesn’t Like XmlElementAttribute

I have zone files loading on Mono now. I had a sneaking suspicion that it had something to do with the XmlElementAttribute that I used to keep the XML tags in the zone files compatible with the encapsulated, property-based classes.  I spent a few hours updating the zone converter application so I could remove the