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.
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.
Happy Father's Day, dad!
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.
- Just had a sip of bad milk. Hate it when that happens. It hadn't even reached its expiration date yet... #
- Time to get some sleep #
- Ick, Monday and hardly no sleep. #
- Today's @woot podcast was HILARIOUS! #
- Just heard a loud peal of thunder. The rain is just beginning to fall. This may be a big storm.. Hope Lorien's plane will be on time tonight #
- Woah! Crazy rain! #
- It's about darn time it rained again. My allergies have been bad the last few days... #
- Thunder is still shaking the heavens, but the rain stopped. I hope it rains some more. #
- Wow, the rain is really angry now #
- Saw lightning overhead a couple of minutes ago #
- The rain isn't quite monsoon-style, but about the closest we see around here. In Taiwan it could rain harder than this for 3 straight days #
- Whew. I can open up the windows and breathe outside air for a little while. This is nice. #
- Latest sourdough loaf came out epic. Seriously, this stuff is awesome. #
- Only downside is you have to make it 24 hours in advance. This dough takes forever to rise. #
- Listening to the Ayepodcast (Scottish Music) from FootStompin.com #
- Oh hey. @FootStompin is on Twitter now. Woohoo! #
- Trying to track down a software bug. It's being very elusive. #
- At the in-laws' b&b getting some stuff. Just heard really loud thunder crack #
- Traffic signals out at I90 and NW Blvd in Cd'A and at I90 and Seltice in Post Falls. Avoid if possible! #
- Sorry, Seltice and Hwy 41 not I90 in Post Falls #
- Making rice. I use a Tatung rice cooker I bought in Taiwan for $20 8 years ago. It's awesome. Perfect rice, every time. #
- My Linux Twitter client (Qwit) quit working. Ironic, that. #
- Just invited little brother to lunch. My treat. #
- Tracking down another software bug. This one is harder to find. Having to write out to a log file to debug it remotely (no debugger) #
- Yay! Bug squashed. Chalk it up to an obscure C API issue. #
- Thinking about velociraptors again. Man they're cool dinosaurs #
- Was in bathroom stall today when someone came in, used toilet, then turned out lights as they left. At least I had my iphone for light. #
- Sat in the dark about 3 minutes before someone else came in and turned the lights back on. I said "thanks," and he laughed at my misfortune. #
- Heading over to Sarah and Frank's place to talk about their wedding. I'm marrying them! #
- Was sent a file in Rich-Text Format (.rtf) today. It only loads in MS Word. Why not just send it as .doc then? Independent file format FAIL! #
- Look upon it and despair that you didn't get one #invaderzim #gir http://yfrog.com/0dkq5j #
- Saw Sarah and Frank's cat puke 4 times. Never seen a cat honk so much before. Well, so often anyway. Mr Pookies horked giant gobs up as gift #
- Up early again. Hate the fact that, most of the time, I just don't sleep good. Or enough. #
- Mom sent me Amish Friendship Bread starter. It cannot be made in a metal bowl. Why? My guess is because metal is the Devil's technology. #
- Just informed of a lunch posse going to MacKenzie River Pizza Co for lunch. Sounds good to me! #
- Made a change to my backup list and now the backups are running 25% faster, 2.2Gb/sec. They used to be this fast. Must have fixed something #
- Cannot explain the change in speed. I _added_ files to the list. Files on remote servers! #
- Currently have 16 tabs open in my code editor. This is a relief. Usually it's more. Digging down more than 20 layers makes my brain hurt #
- Got shopping list from wife for grocery trip after work. She's going to see a movie. Not sure I got the better part of the deal here... #
- Nobody told me @carbonleaf was on Twitter. Or that they are playing Seattle tonight, and Portland tomorrow. Jake = sad. #
- Just caught up on Burn Notice. Lorien's uncle is here watching some of our TiVo'd anime he missed while in Alaska #
- Looking up some stuff about the MySQL C API. Yes, the same one that's been giving me a little trouble lately. #
- Rewrote extended query function to be safer and work better. No more data clobbering! #
- Time to get some sleep. After I read for a while. Already pretty tired though. #
- Just about done rewriting SQL wrapper code for my MUD project. There are more lines devoted to error-checking than anything else... #
- Having fun with standard containers in C++. Dereferencing iterators and using array accessors at the same time. #
- It'd sure be nice to automatically squelch anyone that uses more than one trending topic in the same tweet... #
- Facing the Gazebo....alone #munchkin #
- Woohoo the MUD driver is back up and working after being torn apart for a long time. Haven't re-enabled MySQL support yet, though. #
- Added rooms to my MUD over 2 years ago. I guess it's time I added a world map, too. Not sure I'll ever finish this project. #
