big yellow Q

Deprecation of the Telnet Interface

So while watching the logs and generally putzing around yesterday, I noticed that someone had connected using the old telnet interface. I also noticed that it was using damn near a megabyte of bandwidth per minute. For reference, the SSH interface uses between 100 and 200 kilobytes. So I made the decision that the telnet interface had to go. It just wastes too much bandwidth. So I shut it down. The telnet interface is officially deprecated in twilight.

Distributed RCS

One of the unfortunate aspects of git (and distributed revision control in general) is that it encourages you to make very atomic commits. Virtually any time you change anything, you should be committing it. With subversion, I’d labor away for most of a day, changing something here, tweaking there, and at the end a finished feature popped out and was committed. With a DRCS, you’re encouraged to make those changes and tweaks, but to commit fairly frequently along the way. The mentality is, most of these changes and tweaks, while they may not implement the entire feature, they DO implement some sort of a useful change. If you change the condition of an if(), that change can probably stand on its own. Maybe it’d be unutilized, but it won’t BREAK anything. And someone else, working on their own tree, may want that same change made to that conditional, because what they’re doing WOULD utilize it. So rather than waiting till the end to commit one huge patch, you’re encouraged to commit as you go along, and people can “cherry pick” your patches as they choose, since most of them stand alone.

Anyways, the downside to all that is that the log gets very very verbose. Dozens of commits even for a single feature. And I don’t feel like digging back through all that cruft, so I’m just going to hit on the points that I can remember. 

Instances With Effects

You might imagine it was this way all along, because it should have been, but wasn’t. Anyways, now when you complete an instance dungeon, it can impact your “quest vars” (stored in your player file). The practical effect that this has is it changes the dialogs NPCs may have for you. For instance, north of the river, all the way to the east, you’ll find a farmer and his little farm. Upon talking to him he gives you a sob story about nearby orcs. So you step on the yellow Q nearby, and you’re teleported into an instance dungeon that has a bunch of orcs and goblins and such. You kill them all, it prompts you to hit QUIT to return to the overworld, you hit ‘Q’, and you find yourself back in the farmer’s house. You talk to the farmer again, and this time he thanks you profusely for killing the orcs.

This is neat because it allows me to hook players into instances with story. A farmer needs help; one of Moloch’s powerful wizard minions is in this tower and needs to die; if you want to defeat Moloch you need to get item <foo> out of this temple. That sort of thing.

Bug Hunt

For awhile now twilight has been suffering from a bug that I haven’t been able to nail down. Every once in awhile, cpu utilization will just skyrocket up to 100%. I’ve never been able to figure out why. Most of the time it idles at 1 or 2% utilization, 10% if there are players active. Today I got a little glimpse at what might be causing this. It would seem as though occasionally when someone tries to connect, the “host” socket (the one that accepts connections) gets set to be ready to read data. Great! This is a wonderful thing, and that’s exactly what it should do. Unfortunately, after having been set “ready”, it never gets set un-ready. So every time the server goes to sleep to wait for a socket to be ready, it wakes up immediately because this socket is “ready”. Rinse and repeat, and cpu utilization goes to 100%. I’ve implemented what I think might be a fix for this, but I’m not sure cuz I can’t reproduce it consistently.

Thoughts for the Future

As usual, I still have those spells to implement. I want to build several more instance quests to take advantage of the new storytelling capabilities I have. That’s about it for the moment though. I’m pretty happy with where things are right now, and I’d like to sit down and play the game more before I get too crazy with new features.


One Response to “big yellow Q”

  1. minor update « TwilightMMORL Says:

    […] of what’s happening to Aezora. That being said, looking back over a few comments I made in this post, I may have already done some work on that that I have forgotten […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: