development icon

Dungeons & Dragons & Drupal

Tobby Hagler, Director of Engineering
#Drupal | Posted

For the past twenty years, whenever I learn a new language or technology, I follow the same pattern. First, I’ll follow along with some online tutorials or examples from books or the back of a magazine. Next, I try to use this language to solve some simple problem I’ve been having lately. Finally, when I want to be certain I grok it, I build a Dungeons & Dragons character generator. If I can do that, I can build anything a project throws my way.

At this year’s DrupalCon in Baltimore, MD, I will be discussing the parallels between Dungeons & Dragons and Drupal site building.

Dungeons & Dragons is a microcosm of Drupal site building involving narrative-driven business logic, intensely detail-oriented rules, and even edge cases that only have to be considered because of that one Chaotic Neutral stakeholder.

D&D Player Characters are made up of fielded data that has to be stored, modifiers must be applied, skills are filtered by class, and special rules are enacted based on previous actions. Database table size limits are easy to enforce until someone finds a Bag of Holding, throwing all the encumbrance validation out the window.

In the session I will discuss:

  • Learning Drupal 8 the D&D way!
  • Creating a D&D Player Character (PC) content type
  • How to create custom fields for a PC data, including custom compound fields with Field API and the Paragraphs module
  • Complex workflow and content versioning to handle how PC levels stack (which can be removed in the case of vampiric Level Drains)
  • Handling intricate entity relationships (effects of magical items on stats)

This session is intended for people familiar with Drupal, but are still expanding into larger, more complex projects.

Read more about the session here. And if you are going to be at DrupalCon Baltimore and would like to talk to me about Dungeon & Dragons and Drupal, please reach out and let me know: @thagler

Tobby Hagler

Director of Engineering