Amber Character Generator


The Amber Character Generator is at version 0.1. It is 11 days old (as of Sept 2nd 2007) and sufficient for building characters compliant with the rules in the Amber Diceless Roleplaying game. No rules extensions, such as Shadow Knight, are currently supported (I don't own any rules extensions and have never seen them used. You are welcome to extend the code to support such things). It comes with no documentation or help system. However the interface should strongly remind you of the worksheets in the rulebook and should be fairly easy to figure out by building an example character.

No descriptive rules are included in the distribution to keep this application within fair use practices of a Copyrighted work. If you want to know how something works, go read the rules. This application will just let you build a character, including items and personal shadows, whose point cost complies with the rules, and print that character out.


About the code

AmberCharGen application is written in Python using PyGTK for the graphical interface. The graphical interface was built using Glade-3. The save file format is XML, but is parsed using the standard distribution Python xml.dom and xml.sax modules. Printing depends on Cairo and Pango modules, but these should come standard with your PyGTK. There should be no dependencies beyond PyGTK. You do not need to install Glade-3 to run this application.

Linux

My system is linux ubuntu (edgy eft) using python 2.5, and PyGTK 2.8. This code has not been tested on older versions, but I strongly suspect it will not work on versions of PyGTK older than 2.8. It should work on any unix for which PyGTK 2.8 works.

Windows and Win32 support

It works under Windows XP (see binary distribution below) using the current binary distributions (see PyGTK FAQ) of Python, PyCairo, PyGobject, PyGTK for Windows. I have no idea if any of this works under Vista, nor can I be of any help to you there as I have no access to, or interest in, Microsoft's latest boondoggle. You should thank the fine people behind py2exe, pybuilder, InnoSetup, and ISSTool for their work without which I wouldn't have even bothered to try making a Windows binary distribution.

MacOS

I don't own a Mac so I cannot verify it working there, but PyGTK claims to be portable to MacOS using the Apple X11 interface (and someday soon perhaps natively). Try the PyGTK instructions for getting PyGTK working on MacOS and you should be able to run the script in the source distribution as I have not used any OS specific code.

Printing

The Linux version prints to PDF and may or may not print to your printer depending on how the GTK print widget handles your configuration. Once you have a PDF you should have little problem printing that. The windows GTK print driver seems to know nothing about PDF, so if you want a PDF output I recommend you either upgrade to a proper operating system, or hack in some PDF extensions and add the feature yourself.

Contributions

As you can no doubt tell from this web page, I have negligible artistic ability. I appreciate attractive interfaces, but I have little interest or capacity for creating them. Anyone who wants to contribute icons, documentation, new features, or generally make things look nicer is welcome to contribute.

State of the Source

I learned both Python and GTK while writing this application, so the code is a bit klunky as I learned more elegant pythonish ways to express things as I went along and did not always go back to polish things which already worked. I basically hellrode through Python Glade and GTK in a few days to get it all working. It is not well documented or arranged and has some vestigial segments. Printing from GTK is a slightly nightmarish manual layout process so the draw_page printing code is quite remarkably ugly. That said, I've been writing software for 20+ years (insert old school hacker joke here), so it is not a tragically bad piece of work. The next version will be less ugly. Modify at your own risk.


Download


Email me if you have feedback (bohm AT gate.csgeeks.org)