Wednesday, August 08, 2007

Goonmill

For the past few months I have been putting my extra few minutes into an application called "Goonmill". This is software for generating MM4-format statblocks for monsters. I wrote it as a tool I can use when scripting adventures to save the drudgery of looking up monsters, statting them out, and presenting them in a format convenient for use at the game table.

Take a look at the online demo. Features include:
  • Über-simple workflow. Search, click, optionally tweak, repeat.
  • A (nearly invisible) box near the top of the statblock is clickable and lets you enter a count. When you do so, Goonmill rolls hit points for that many monsters, and displays them on the statblock.
  • Similar for naming the monster (next to the hit point box).
  • Similar for setting a custom alignment on the creature.
  • A ton of work has gone into generating correct statblocks. There are simpleparse parsers for a large number of the stats on the page, dedicated to reading the text from the original database (designed for old-format statblocks) and putting it into the much-more-picky new-format statblock.
  • Makes use of Nevow Athena for everything, which means it feels a bit more like a desktop app than a web app.
It's not perfect.
  • The search is crap and needs to be replaced--it's currently just a substring search on the beginnings of words. There isn't even sorting of links by relevance.
  • Lots of little CSS/UI issues.
    • The (nearly invisible) boxes near the top need some rethinking so they aren't nearly invisible, and so they don't cause the line to overflow when you edit them.
    • Need a print version of the monster history, especially with the ability to print one monster per page for GMing.
    • It's not very pretty. Someone with an eye for web aesthetics should polish it a bit.
  • I'm not sure what to do with the possessions and spells, the only yellow (TODO) items left in the statblock. I would like to create a whole workflow around those items, with UI for choosing manually and a button for generating sane values there.
  • Same goes for NPC characteristics. I'd like to be able to just add class levels to a creature.
  • Same goes for making animal companions and familiars.
  • Same goes for using monster templates.
  • Data work: Output everything to a triplestore (N3 or similar) as an alternative to output to a statblock. This would allow me to get rid of all the parsers and the sqlite part of the backend. Better yet, this would allow anyone to publish their own classes, creatures, items, and spells, on their own websites, and use Goonmill to generate those creatures. Initial (manual) work has been done; a lot of the data already exists in N3 format, and there's a preliminary O3M (object-triplestore mapper) for making Python objects from this data format. There's even a triplestore web sandbox built into Goonmill, for testing SPARQL queries against it.
This open source project needs developers!

If you are a fan of role-playing games and a software developer, I need your help. Any of the items in the above list are fair game right now. Source access requires Mercurial.

hg clone http://goonmill-source.thesoftworld.com/

Leave a comment if you want write access.

No comments: