The first time we tried to make Lila Dreams (I write that with a cringe and a smile at the same time), we used a server technology called SmartFox Server. It’s a nice bit of software, though it can be pricey for a lone indie. SmartFox offers some nice pre-built features like a buddy system and so on.
Recently, I was looking at another server tech called Project Darkstar. It’s got more advanced (but different) features than SmartFox and, yay!, it’s free and open source. I’ve been poking around with it for a few days, and I’m really liking it. But with these kinds of middleware technologies, you can’t really know how good it is until you use it for something that isn’t a demo.
SmartFox isn’t complex. That’s one of its strengths, really, because you can jump in quickly and go without a lot to learn. It gives you some high level features that you can use without any fuss.
Darkstar’s power can really only be utilized after you understand how it works. It’s designed to be built onto rather than providing ready-made features for you. So you have to know enough to be able to build your own features. It’s not beginner friendly. But that’s its strength, really, because once you get it, there’s a lot of power at your disposal for the problems that it solves.
Anyway, there is a tutorial from a 2008 JavaOne conference, and it’s based on working with a simple MUD engine built on Darkstar. You follow along and add to and change small bits here and there as a way to learn. It’s a really great thing, because you need every ounce of documentation you can squeeze out of the stone that is the Internet. (Translation: there is not much being written out there about Darkstar.)
It turns out, the code used in the tutorial is old and actually doesn’t totally work with the latest version of Darkstar. Instead of patching up the holes, I figured I’d just rewrite the whole tutorial server from scratch! No–really–this is fun! I need to learn about Darkstar, and I need to deepen my experience with Java.
But also I’m learning about how to build a multi-user game. (You may think that a game without fancy graphics isn’t like a game with, but that’s not true. With graphics or without, it has the same networking, data management, and multiplayer game logic issues.) The idea hadn’t dawned on me that making a MUD would be a great way to cut my teeth on client/server coding and technical design for an MMO. It’s loads of fun, and I’m going through all of this with Lila Dreams in the back of my mind. Lots of lights are coming on in my attic.
And, of course, my little test MUD is set in Lila’s wurld. 8) But this isn’t something I will be releasing. It’s only a prototype from which to learn. If it all goes well, I’ll be working on a real game next, but not Lila Dreams. This is a step in that direction, though.
It feels good. Like there’s hope.