May 1, 2024

Tabletop RPG Asset Manager

I took a university database course I had to design a database for a project of my choice. I decided to build a character creator for Dungeons & Dragons, a popular tabletop RPG.

Article hero image

Project Overview

Tabletop role-playing games (RPGs) like Dungeons & Dragons (D&D) involve players using a pen and paper to collaboratively create adventures while managing stats, abilities, inventories, and other mechanics. My goal for this project was to build a web app to make the process easier.

Features

I focused on the core data needed to create a character, using Dungeons & Dragons (D&D) as a reference. I broke the character data into three main groups:

  1. General Info: Basic character details.
  2. Ability Scores: Attributes like strength, dexterity, intelligence, etc.
  3. Character Skills: Special abilities, (i.e. Stealth) that rely on ability scores.

I made all essential character elements—such as class, race, ability scores, and skills—fully editable, allowing players to customize their characters beyond the D&D system. Finally, I created a web interface to allow players to view and edit their characters and all assets, which you can check out at dnd.bgevko.com

Mistakes

The system still has room for improvement. For instance, trying to delete an asset that’s in use gives a vague error message:

The message doesn’t explain where the asset is in use or how to fix the issue. Plus, the red error popup might be misleading since red suggests a critical system failure, which isn’t always the case here. Instead, a more helpful solution would be a dialog box that clearly explains the issue and offers steps to resolve it. I only realized these improvements after using the product myself several months later.

Conclusion

Reflecting on this project months later gave me a fresh perspective on what worked and what didn’t. If I could revisit it, I’d rebuild the system from the ground up with everything I’ve learned since. Despite its flaws, I consider this project a success and a valuable learning experience.

MySQL

Next.js

Back to Projects