Wednesday, April 27, 2005

Vellum

Some interesting challenges in the newest project. Check out http://vellum.berlios.de/ and the project page. Nothing much there yet, but you'll be able to find our source code. So far what we've got is a sandbox with some fine work on a very interesting character model by Aaron Lehmann, and a trunk with some rudimentary GUI code and a surprisingly useful IRC bot I spent a few hours on.

The goal of the project is to have a non-intrusive RPG client. (See previous post if you think RPG means Rocket-Propelled Grenade.) These are the target features:
  • An HTTP server to deliver data files such as map graphics and character icons
  • A graphical client capable of displaying a map with obscurement, icons, scaling, targetting arrows, and other visual effects
  • A PB server for realtime communication with the GUI clients
  • An IRC bot, integrated with HTTP and PB, to assist combat interactions, die rolls, and character management.
  • Export filters for various character generation programs, in particular PCGen.
  • Every component cross-platform. Runnable on Windows, Linux, Mac, hey maybe a PDA too.
What works:
  • There's an HTTP server. It delivers files.
  • There's a PB server. Right now it only delivers lists of filenames that are served by the HTTP server, along with their checksums and metadata.
  • There's a GUI client. It's written in GTK. It starts up, has a widget to specify the PB server to connect to, and when it connects it receives the list of files and requests those as well, and verifies their checksums.
  • There's an export filter for PCGen which writes (most of) the character data as YAML. YAML is almost perfectly-suited for this data format.
  • There's a rich character model. It isn't connected to anything yet, but it's capable of applying a variety of effects to various combat roles. For example, it knows about ability scores and equipment, and how to calculate armor class based on these things. (This is more complex than it sounds. Take a look at the code.)
  • There's an IRC bot. It has already proven useful, as we played a full 4.5-hour game session using only the VellumTalk bot and a web server for maps. It remembers "aliases" right now
I don't know how far away from a release we are, but I'm pretty happy about the progress so far.