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.

Ironman Day
Posted in General
First watch, 3 bells (9:39 pm)

It's the annual Coeur d'Alene Ironman thing today. You can't pay me enough to attempt to get downtown on a day like this. Lorien loves it. I hate not being able to park anywhere. And the crowds, *shudder*. Her parents' B&B is only about four blocks from the finish line. I'm sure that they're down there right now cheering people on.

Leave a Comment »
Happy Father’s Day
Posted in General
First watch, 2 bells (9:17 pm)

Happy Father's Day, dad!

Leave a Comment »
Sourdough Revisted
Posted in General
Forenoon watch, 4 bells (10:08 am)

My latest loaf of sourdough bread just came out of the oven. This time I baked it inside a dutch (cast iron) oven, inside the oven. The crust is much better, the bread is cooked throughout perfectly, and on the whole retained more moisture than it usually does. It's fluffy and sour and just perfect. I'm going to be getting a lot of mileage out of this dutch oven. This time I preheated the ovens together to 400 degrees, then when everything was good and hot, turned the oven down to 375 and put the dough in for 30 minutes. I had some splitting of the top this time, but I also forgot to score the top of the loaf with a knife before baking. I don't know if this would have prevented the splits, but it's worth noting.

Twitter Weekly Updates for 2009-06-21
Posted in Twitter
First watch, 8 bells (12:03 am)
Leave a Comment »