Inspiration

As a Game Master for Dungeons & Dragons (5th edition) from Peru, most of my games take place online through Discord. My friends and I have used different tools such as Roll20, but usually rely on free unconventional software such as google sheets for maps, and notepads to track creatures during combat.

I started building this tool with the hopes of improving the experience of my friends and myself for this game, but also to expand it as an independent tool that players from any Tabletop RPG can take advantage of.

What it does

In its current stage, the program allows the user to add creatures with 1. Initiative value, 2. Creature Name, 3. Current hit points. Its convenience as compared to notepad or pen and paper is the automatic sorting of values (higher initiatives are added to the top of the list). For initiative, the option to add the modifiers of a creature rather than rolling dice separately to calculate the final value is helpful when a great number of creatures need to be added. There is a field to directly affect a creature's remaining hit points rather than making the math mentally.

How I built it

The program is built with JavaFX. Most of the features come from different libraries such as the Math library for random integer calculation, table features from the scene.layout library and regular expressions to ensure the list takes valid input and to compute dice rolling in some fields.

Challenges I ran into

As I started learning JavaFX one month ago, this project as a whole was a challenge to improve my familiarity with the language. Implementing a list that could be dynamically updated with self-sorting values was the most important aspect, as some view types were not compatible with the click-to-update features I wanted to implement. The hit points and initiative fields were the most complicated, as there were different input options to edit the custom class created for this project.

Accomplishments that I'm proud of

To keep loyal to the D&D system, I used regular expressions to accept a dice rolling format (3d6+3 to calculate the roll of 3 six-sided-dice + 3) for the hit point calculation. This allows for more variety and the classic randomness involved in every aspect of the game. I am also proud to have built a functional (albeit simple) application with this new language.

What we learned

I became significantly more familiar with the interface options for JavaFX. I had only worked with Java before, so being able to integrate front-end design with different features was a new experience for me.

What's next for D&D Initiative Tracker

I aim to upload this project as a free application, ideally in web/mobile browsers so that any Game Master can take advantage of it. As I share it with the friends I have been playing with for the past 6 years, I will gather their feedback to implement more features that can help with initiative tracking, such as a condition column (as creatures can be affected by charm, poison, exhaustion, among others). I have a lot of work to do in terms of aesthetic, and ideally the application should retrieve free stat blocks of existing creatures online. Rather than forcing my own standards upon others, I intend to make this tool as customizable as possible, giving the user the possibility of disabling/personalizing the different features provided.

Built With

Share this project:

Updates