Models combat in a classic tabletop FRPG (e.g., OD&D).
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Ability.java
Alignment.java
Arena.gpj
Arena.java
Armor.java
Attack.java
CSVReader.java
Character.java
Class-Fighter.csv
Class-Thief.csv
Class-Wizard.csv
ClassIndex.csv
ClassIndex.java
ClassRecord.java
ClassType.java
Dice.java
DungeonTreasure.csv
DungeonTreasureTable.java
EHDToTable.csv
EHDToTables.java
EnergyType.java
Equipment.java
Feat.java
FightManager.java
GemsAndJewelry.java
LICENSE
MapUtil.java
Marshal.gpj
Marshal.java
MenType.java
MenTypeList.java
MenTypes.csv
Monster.java
MonsterDatabase.csv
MonsterDatabase.java
MonsterLevelMatrix.csv
MonsterMetrics.gpj
MonsterMetrics.java
MonsterTables.java
MonsterTreasure.csv
MonsterTreasureTable.java
NPCGenerator.gpj
NPCGenerator.java
NameGenerator.java
Names.csv
Party.java
PersonalityTraits.csv
PersonalityTraits.java
README.md
SavingThrows.csv
SavingThrows.java
SpecialAbility.java
SpecialType.java
SpecialUnknownList.java
Spell.java
SpellsTable.csv
SpellsTable.java
SpellsUsable.csv
SpellsUsable.java
StatBin.java
TreasureType.java
UMLDiagram.png
Wands.csv
Wands.java
Weapon.java
XPAwardTable.csv
XPAwardTable.java

README.md

ARENA - Java Package for Simulating Original D&D Combat

This code package provides routines for simulating combat in a tabletop Fantasy Role-Playing Game (FRPG) similar to Original D&D or closely-related games. In most cases, the intent is to output aggregate statistics based on many trials of the game between men and monsters. This package provides only command-line, text output; there are no graphics or visualizations, and generally few options for output regarding individual combats.

The package currently includes four top-level main applications:


ARENA -- Simulates a population of fighters, battling for experience and treasure over some amount of time (broadly inspired by Roman arena-style events). Combat can be man vs. man or man vs. monster, including simulated excursions against dungeon random encounters; individual combats can by one-on-one or in groups. Statistics at end show level-based demographics of the overall surviving population, percent of experience from treasure, and number and ratio of deaths caused by each type monster in the database.

MONSTER METRICS -- Performs a binary search at each fighter level 1-12 to determine how many fighters represent a matched challenge against each monster in the database (i.e., closest to a 50/50 victory chance); then takes a harmonic mean across all levels to suggest an Equivalent Hit Dice (EHD) value, to be used for balancing and experience purposes. More detail available (per-level values and charts) with command-line switches.

MARSHAL -- Creates random bands of men as encountered in the wilderness (e.g., bandits, brigands, buccaneers, nomads, etc., in numbers 30-300), with leaders of generally appropriate levels. The leaders are generated by simulating their entire combat history in the Arena.

NPC GENERATOR -- A minimalist command-line UI to generate characters of any type as per OED rules. The characters, including thieves, wizards, multiclass elves, etc., are generated by a simulated heuristic, not via the Arena above (i.e., different from the Marshal process). Includes simple magic items, spells for wizards, OED feats, and suggested personalities keyed off alignment.


GPJ project files for use with jGRASP are included for each of these three applications.

Note that at the current time, combat is primarily melee only; no sense of space, location, or movement is simulated. Targets of attacks are determined randomly (as per AD&D DMG p. 63 and 70), with each strike.

While common monster special abilities are modeled, we have not implemented magic-user/wizard spells (so: no mixed PC parties with wizards, nor NPC wizard opponents). One round of special attacks is allowed for monster abilities at the start of combat (e.g., dragon breath, giant boulders, medusa gaze, etc.).

To the extent that the original rules are ambiguous or in need of DM adjudication (as in many cases), the author has attempted to research and interpret the rules such as possible, and uses interpretations as expressed in the Original Edition Delta (OED) House Rules set. In some cases, software switches allow toggling between different modes. See www.oedgames.com for more information.

Note that the data in the MonsterDatabase file is primarily maintained in a spreadsheet external to this package, MonsterDatabase.ods. Changes to the database should be made there first, and then exported to the CSV file in this software package. See www.oedgames.com/addons/houserules.