State of the MUD
Posted in MUD Development
First watch, 4 bells (10:10 pm)

I've done just a little work today on my ongoing MUD project. I fixed a small problem this evening that shows up if you enable MySQL but don't have proper permissions configured. In that case, the server just quits—no coredump, no error message, nothing. So I fixed that case.

Overall, I'm quite proud of how well it runs. The socket code is first rate rock solid stable. It should be, I've rewritten it enough times now. After this weekend's work, the binary size just topped 6mb, but that's with all the debugging symbols. If I strip them out, it's only about 650kb. I'm right around 15,000 lines of code. Wow, did I get that right? I can hardly believe it's at 15k. Almost a full third of that (over 4500 lines) is devoted to commands alone.

The only thing I'm not happy with right now is how Windows telnet connects to the server. Windows telnet does something funky with the way it sends data and I haven't quite got it working right. It still connects, but it does weird things. Every other telnet or MUD client (zMUD, cMUD, etc) that I've tested with it work great.

I generate some fantastic documentation via Doxygen (view it here). Currently the server only runs under Linux/UNIX machines (in theory it should run fine on a Mac assuming you have a development environment with the proper libraries, but I don't have one to test it on). As I make more use of cross-platform libraries like Boost this may change, but I'm not porting it to Windows on purpose.

My future development roadmap is in my head, and largely consists of the next feature: maps. I've designed a drop-in directory style zone system so it's easy to add/copy zones. A zone could be the entire world or a single hut. Each zone will support a map with a legend (although they're not required). An ASCII map of the local area, optionally coloured, will be available to each client based on their current location. A key will also be written out explaining the map if a key is available. Much of the foundation has already been laid for this map system. In ten to twenty more hours of development I should have it fully integrated and working.

After the map feature, things get a little fuzzy. I may implement more objects, and probably several more commands. Mobiles and AI are on the list, but still require some careful planning before I start work on them. One thing at a time, I guess.

PS If you want to see how Doxygen generates complex dependency graphs, I would recommend this file.


2 Responses to “State of the MUD”

  1. Sounds like your development time has been a lot of fun for you. 15K lines of code, nice work.

  2. Scurvy Jake says:

    Unfortunately, if you look at the time it's taken to reach 15k, it only averages out to four lines per day. Not exactly a paramount effort. But hey, it's a hobby.

Leave a Reply