Software for Windows & DOS

Web Tools

ISS Watcher
Not really software as such; a web page mashing the livestream for the International Space Station with a geo-tracker so you know what you're looking at on earth. Thanks to NASA, Ustream, and for the widgets.

Spreadsheet Macros

Dice Rolling Macros
Here's a series of macros for common dice-rolling functions usable in Excel or Open Office spreadsheets (in the Basic language). They take standard dice arguments like "2d6+4" and return the number of dice, sides, bonus, min, max, average value, or actually roll a sample random result. In Excel, go to Tools > Macro > Visual Basic Editor (possibly insert a new Module) and then paste these into your work; in Open Office Calc, it's Tools > Macros > Organize Macros > Basic.

Software for Windows

Presented here are a few programs I've written for the Windows operating system. All the ones here are gaming (that is, D&D) related. Each of these does some type of random-generation task and puts the results into an external file to be used by some other common utility -- none of these programs have any type of viewing or editting capacity within them. (Feel free to ignore any opening requests for registration from older programs.)

A tool I'd had in mind for about two decades. Easily construct old-school dungeons with just a few mouse-clicks, complete with doors, stairs, walls, etc. See more on the dedicated page.

Open Gaming Combat Simulator for Windows
This is a tool that I was aching for over a long time. What it does is automatically simulate several thousand combats with any monster you enter, and evaluate what level of NPC fighter would be evenly matched against it. You can use this as a very fast and accurate starting point for CR evaluations of new monsters that you create. OGCombatWin only evaluates raw attacks (melee or ranged), against as many opponents as you'd like. It doesn't handle any spells, magic, or special abilities, so you'll still need to evaluate or playtest to come up with hard CR numbers (usually more devaluation is needed at higher levels). Try it, it's fun! Full source code available further down on this page. (Version 1.01.)

NPC Generator for D&D 3rd Edition
This program automatically creates NPCs, for practically any race or class in the 3.0 core rules. The original version was written by Jamis Buck, to which I've made some modifications (mostly in the formatting of the stat blocks). You can see Jamis Buck's web-enabled version here, or Andragor's 3.5 version here. I like it because it's fast and a small download, but it may not be as fully featured as some other programs -- for example, it does not automatically equip the NPCs with gear. For that, I use a gear-generator Excel spreadsheet by Sean K. Reynold, which I have also modified and included in the zip file above. See below for source code to the NPC generator.

Dungeon Designer
Dungeon Designer will randomly generate a multi-level dungeon with various hallways, chambers, and up/down access points. A number of parameters are available to alter the creation; the results are output to .PCX image files. You will probably want to manually edit the output (it doesn't specify doors or furnishings, or whether up/doown points are stairs or pits, etc.) Download the zip file for Dungeon Designer via the title link above. Also, I have an accessory package of editting suggestions and map icons for use with it here.

Advanced Rogues' Gallery
For use with the 1st Edition Advanced D&D game. This is a generic character generator, intended to simplify creation of non-player characters. It will generate complete information for any character (simply given class & level), and dump the results to a rich-text (.RTF) file. You can view & edit the output with most common word processors. Download the zip file above.

Basic Rogues' Gallery
For use with the simpler "basic D&D" game. Another character generator similar to the Advanced D&D version above, compliant with the rule set in the "D&D Cyclopedia" (circa 1990). Creations are again placed in an .RTF file of your specification. This program also has a handy constructor for common groups of men, which I never got around to adding to the AD&D version above. Download the zip file off the title above.

A game passingly similar to Tetris. Here's a version I coded in Java as part of a programming test. Download it from the link above.

Software for DOS

The following are some pieces of software I've written for the DOS operating system that I've found useful. Each will list full usage information by running with a standard help switch (/?). The knowledgeable reader will notice that many of these programs are particularly applicable to uses in role-playing or war-gaming.

The smallest possible dice-rolling program I could create. Only 221 bytes, coded in x86 Assembly language (for Pentium-style CPUs). On the command line, enter a prompt like "roll 3d6" and have at it. Download it via the link above.

Chop will cut up a specified file into smaller pieces (occasionally useful when sending large files over the internet). Just specify the original filename, and the size of the resulting file-chunks (in KB), and this program does the rest. Download it via the link above.

FitCurve will draw a specified curve which best fits a given data set, and return the parameters of that curve. The data set is simply a text file with (x, y) data pairs. The curves available include polynomial (of any degree), exponential, and power curves. (Get additional information with the help switch.) Download it from the link above.

Tile is meant to take a small image and tile it, covering a larger area. It takes in, and spits out, Windows Bitmap (.BMP) files. On the command line, specify the input image filename, and the output image filename, width, and height (in pixels). Download it from the title above.

GraphMap and HexMap
Both these programs will create a Windows Bitmap (.BMP) file covered with the appropriate type of space. GraphMap creates gridded graph paper; HexMap creates hexagonal ("hex") paper. This can be useful for overlaying on top of some other map for gaming purposes. On the command line of each, specify the output filename and (in pixels) the paper width, height, and space height. (Note that space height can be a decimal value for precise measuring.) Download the executables above.

This command-line program creates summarized D&D (3rd Edition) monster statistics. It outputs text files with either full descriptions, abbreviated statistics blocks (for use in adventure text notes), or short tab-delimited notes (which can be pasted into the "QuickStats Spreadsheet", here). As input, it takes a text file containing a full monster description in the d20 format -- for example, you can download digital versions of all the Monster Manual creatures here and then paste particular selections into a text file for processing by MonStats. It can also automatically apply some creature templates to the processed monsters. Run in the console with the help flag (/?) for exact information. See below for the source code (in case you want to tailor the program to your exact needs).

For use with the 1st Edition Advanced D&D game. Spllbook is a fairly simple utility to generate spellbooks for NPC magic-users. It will prompt for each magic-user's level and intelligence, and then create for each a spellbook and list them all in a file named "spllbook.txt". The DM can then manually select the most useful spells for the encounter at hand. You may find it simple to add new and game-campaign-specific spells to the data file "spells.tbl". Download the zip file off the title link above.

PlaDes is a "Planetary Designer" - it's a fairly significant piece of work. Its function is to zoom in on, and minutely detail, a Planetary (.PLA) file as generated by Maxis' SimEarth program. With it, you can zoom arbitrarily, see contour levels and river systems, create and save sub-maps, generate .PCX image files of what you see, and more. Run it on the command line, specifying either the .PLA file you wish to detail, or one of the .PLD (Planetary Detail) files which PlaDes has itself generated. Read the usage listing for more information. Download the zip file, which includes a sample .PLA file, with the link above.

A tool to extract height map data from a SimEarth .PLA file. It will read a .PLA file and output the height data to a grayscale .BMP file (which can be imported to other tools). Also reports the sea level, or reduces sea level to zero (0) with a command switch (/r).

This is a ray-trace rendering engine which I've written from scratch and simply called Film. It's written in Turbo Pascal for DOS, and, if you want to play with its full functionality, you'll need to be able to edit and compile the source code. It uses a fairly simple included data file type for 3D descriptions, and has a main procedure called "Script" which sets up any scene you want to generate. There are switches in this main procedure to draw hidden or on-screen, full render or wireframe (i.e., fast enough for real-time animation viewing), options to create color or black-and-white images, and the output goes to Targa (.TGA) image files. A page of sample images generated by this program is available. If you'd like to download the zipped source code and data for Film, that's available via the title link above.

Source Code

Open Gaming Combat Simulator Source Code
Source code to the OGCombatWin program above, with VC++ 6.0 workspace files.

NPC Generator C++ Source Code
Source code to the NPC Generator program above (original by Jamis Buck), with a VC++ 6.0 workspace. Also includes code and makefile for a web-enabled version which I have not maintained or tested.

MonStats C++ Source
Source code to the "MonStats" monster statistics processor, available for Windows above.

The following are some useful libraries I've written for work in C++. Each comes in a zip file with a test suite and (where necessary) memory instrumentation to validate its use of dynamic memory.

Bitmap C++ Source
A very short module to create uncompressed .BMP graphic files.

MemInst C++ Source
Simple memory instrumentation to track total allocated blocks and bytes.

DrcStr C++ Source
Added utilities for handling standard C-strings.

StrList C++ Source
A class which defines a list of immutable C-strings.

Dice C++ Source
A standard RPG dice-rolling class.

Tables C++ Source
A module for handling d20-system-style tables of any sort (as seen in D&D 3rd Edition). Intended to be compatible with the text table format as seen in the official System Reference Documents (SRD), seen here.