/cr

5e D&D CR calculator

Primary LanguageJupyter Notebook

Challenge Rating Calculator

Work in progress, for consideration as a capstone project for the Springboard Data Science workshop.

Installation

git clone https://github.com/wisygig/cr.git
cd cr
python3 -m venv .
source bin/activate
pip install -r requirements.txt

Motivating Problem

In 2000, Wizards of the Coast (WOTC) released portions of the Dungeons and Dragons ruleset under an open source licence, the open gaming licence (OGL). With the release of the 5th edition of the game's rule set, they have continued this tradition.

The most recent version of the OGL released a set of rules for running and playing the game. Along with rules for creating player characters, a bestiary of example monsters was also published. For each monster, a Challenge Rating (CR) is included, as well as huristics to evaluate how difficult an encounter with a group of monsters would be. However, rules for evaluating the CR of a monster from a description of the monster's game features are omitted.

This submission poses the following questions.

  • Can we compute the challenge rating of an creature purely from OGL released examples?
  • Given a partially completed entry, can we propose other completions, with the intent of preserving a similarity clustering.

Client

  • Principle client would be hobbyists looking to craft new monsters, as well as independent scenerio authors looking to publish content under the OGL.

Data sources

Related projects

  • There has been a strong tradition of random and procedural generation within the hobby, since the genesis of the hobby. Two modern examples include:
  • Janelle Shane - plays with recurent neural nets to create new spell names

Approach

  • The tnitial problem is principally a regression problem, focused on feature extraction. Since the sample population is very small, great care must be taken to avoiding overfitting.
  • The problem of generating a monster entry from a selection of features can be thought of as a variation of the technique used in Google's DeepDream. Given a data point and target value, we can perform gradient descent with respect to the unselected data features.

Deliverables

  • This GitHub repository.
  • A slide deck summarizing the project.
  • A live version of the model.

License

This work falls under the purview of the OGL.