January 23, 2005

The Ramble Chronicles: Ramble 0.3

I've just uploaded version 0.3 of Ramble to the Ramble Home Page. It's got many enhancements and changes, which I'll discuss below the fold. Here, I'd like to publicly thank Michael Cleverly, fellow Tcl'er and fellow father, who made speech synthesis work in Ramble (on Mac OS X only, alas). I first met Michael at the Tcl/Tk conference in Vancouver B.C. three and a half years ago, and I'm hoping to see him again in October at the Tcl/Tk conference in Portland. Speech synthesis isn't perfect yet; we only use one voice, and some of the more complicated interactions aren't spoken. But it's still useful for Michael's boy who isn't old enough to read.

The dungeons in Ramble 0.3 are fundamentally the same as in version 0.2. There are still three dungeon levels; there are still ten skeletons and ten or so chests on each level; and the level designs haven't changed. That said, there's quite a lot that's new.

Inventory: There's now a real inventory model. You keep the things you find, and you can drop them if you don't want them. (You might even be able to sell them....) I'll be writing more about the inventory model Real Soon Now. That said, the crossbow and its ammunition (bolts in 0.3, rather than missiles) are still handled by ad hoc code rather than being part of the inventory model (I need to add the ability to equip weapons and armor). If you drop objects, they accumulate in a chest at your feet. They'll even be there when you come back (though if you leave them anywhere but Trouserville, I'm not promising that this will always be true).

Combat: There's now a real combat model, based loosely on the AD&D second edition rules. I'm not entirely happy with it yet, but it's a start. Both you and the monsters you fight have hit points and some kind of hand weapon to hack and slash at each other with; you're not limited to using the crossbow to fight them.

Health Potions: Some chests will have "small health potions"; you'll also find these in the Potions store in Trouserville (if you can afford them). Each restores a small portion of health when you drink them. They are saved in your inventory until you need them; investigate the Trouserville Public Library to learn more.

Shops: I've developed a preliminary interface for interacting with the shopkeepers that lets you buy and sell goodies.

Reduced Viewport: The viewport is now 24*24 tiles in size, down from 31*47, which means you can't see an entire level at once. I find that this makes the game more interesting.

Redesigned Trouserville: I've redesigned and enlarged the town of Trouserville; it's more interesting to explore, I think, and nicer to look at. The Public Library is larger, and the quality of the on-line help has been significantly improved. The town has a few surprises as well.

Application Enhancements: You can now save and restore your game whenever you like. Note that save files for version 0.3 are unlikely to work with later versions.

Various Internal Changes: The internal code has been upgraded significantly to make all of this work. I'm following my favorite development process while working on Ramble: when you don't know quite how best to do something, write ad hoc code so that it works; based on that, figure out how to ought to work and then go back and fix it. You know you've got the right architecture when you can slot in new features cleanly, without a lot of changes to unrelated code.

So what might be next in the world of Ramble?

Essays: I want to write further essays on maze and level generation, inventory modeling (i.e., how do you make the health potion restore health? And how does it know it's a health potion anyway?), and dungeon economics (I've got a start on this one, but it's a big topic).

Weapons and Armor. That is, the ability to equip weapons and armor from your inventory, with a corresponding increase in the number of available kinds of weapons and armor. The point is to give you something to buy with your hard-earned loot that will make your job easier.

Additional Monsters. Just skeletons all the time is getting dull.

Treasure Drops. Monsters should drop treasure when you kill them. The treasure should vary depending on the monster, and also on the dungeon and your depth in the dungeon. The same applies to chests.

Level Regeneration. The monsters should come back after a while. In Angband, levels are completely regenerated (including the maps) each and every time you come back to them. I might want to go with that, but there are issues.

Multiple Quests. The quest for the Golden Underpants should be just the beginning. I have a suspicion that the manager of the town laundry might go missing.....

Posted by Will Duquette at January 23, 2005 06:59 PM