Citygen
Citygen is a statistics generator for RPG systems. Though it is tailored to be compatible with Dungeons & Dragons, it should be flexible enough to work with a variety of systems.
0.95.2
- Community modifier is no longer being ignored. That means class maxlevels will be affected by the settlement chosen.
- Table formatting code has been reworked.
- Now supports characters over level 16. (Highest I've seen so far is 26.)
- Removed vestigial NPC_Class.html from libdocs. (The code it described had long ago been merged into Class.pm.
- Fixed bug introduced in 0.95.1, where answers to prompted questions were ignored.
- Added some infrastructure that allows objects to query their creators. May or may not be removed in the future.
- Removed make-release script. It's not going to be used...Future release tarballs should be generated automatically as part of svn commit to release branch.
0.95.1
YES, I'm an idiot. I didn't thoroughly test 0.95.1, and the interactive method of input doesn't work. This is fixed in 0.95.2. If you still want to run 0.95.1, you can try the input-from-file methods, or the directive method. Only the input-from-console prompted method doesn't work. Please take this moment to learn about the directive input method, by running:
./citygen --input-format=directive-help
- Added input-from-file support to citygen.pl. You can now specify an input file on the command line, and have Citygen run non-interactively. Useful for pre-determined city specs.
- Added "directive" input method, allowing out-of-order answers to questions. Useful for scripting.
- Included patch from Darin McBride that ensures that format.pl gets run by the same Perl binary that citygen.pl does. That's good for those of you out there who have locally-compiled versions of Perl, or Perl binaries in non-standard locations.
- Added documentation for the config file. The POD version had been done, I'd just forgotten to add the HTML version to SVN. If you're unsure that all of the documentation is showing, run update-docs.sh from bin/.
- Added the update-docs and the make-release scripts. update-docs works, make-release doesn't.
History
Citygen originally reared its head as MkCity, by Mike Mol. He wrote it as a way to learn the Perl programming language. It was released on his blog, where it was picked up by Lawrence Statton. Lawrence improved it significantly, making it object-oriented, converting the configuration format from inline Perl to a simpler, language-independant format.
In August, development ceased for a period while Mike was involved in classwork, but he resumed work on Citygen again in late February. In late April, Citygen was ready for a new release.
For more recent developments, see the changelog.
What to Expect
The Good
- It works! At least, virtually all of the specified functions are implemented. If you want data on cities in an RPG world, Citygen is already poised to save you a great deal of time making calculations.
- Citygen's code is licensed under the GNU General Public License. You're welcome to play around with it, under the terms of that license. (If you're unclear what our interpretation of the GPL is, take it up with Mike.)
- Citygen's configuration file is well documented. Creating your own configuration file should not be difficult.
- The code is written to allow for a variety of interfaces. Feel free to make your own, but keep in mind Citygen is released under the GPL. Also, the API is scheduled to change for version 0.99.
The Bad
- This is BETA software. Mike certifies that everything works as it should. Except where it doesn't. For instance, in v0.95, there are no included directions on how to use it. (oops!)
- Currently, Citygen only has a text-based interface. The code is written to allow for a variety of interfaces, however, and additional interfaces are planned.
- Citygen also is not bug-free. See the TODO file, and libperl/config.html, for details. Patches are welcome. (Send them to Mike.)
The Ugly
- The D&D-specific configuration file contains information that belongs to Wizards of the Coast, as it was lifted directly from a 3.5-edition Dungeon Master's Guide. I think its redistribution falls under fair use, as it is derived from only a few paragraphs and tables in the DMG. PCGen, in contrast, used several chapters worth of material from the Player's Handbook.
- However, I still won't distribute the configuration file with Citygen, because I don't think it's compatible with the GPL..
Requirements
Citygen is written in Perl 5, and has been tested under Linux with Perl 5.6 and later. It doesn't use fancy operating system-specific features, so it should run on virtually any OS that runs Perl. (Including Windows.)
You will, however, need two perl modules that aren't part of the standard distribution: Getopt::Compact and Text::Table.
