Guy Royse

Camp Counselor

Dungeons, Dragons, and Graph Databases

Event Logo

Wednesday, July 28, 2021 - 3:30 PM UTC, for 1 hour.

Regular, 60 minute presentation

Room: B & G

graph database
dungeons & dragons

Are you an adventurer? Do you want gold? Experience? Levels? Of course you do! And where do you get these things? The dungeon, where else? That wonderful container of all things adventurous! But, unfortunately, dungeons aren't setup for the convenience of adventurers who wish to extract these fine things. It’s almost as if the dungeon master just made the dungeon up at random. And so you wander about and you get what you get. But you’re also a developer. You could build a database of all the rooms with their shiny and monstrous content. Then you could query it and find the optimal route to get the gold and the experience and the levels. But how would you model this data and write these queries? The rooms. The corridors. The monsters. The sparkling hoozits. That’s a lot of entities to relate to each other. And that’s gonna be a monster of a SQL query. Whoa–look at that JOIN! Better get my text editor ready. Or, you could use a graph database. A graph database allows you to model these relationships simply and intuitively with nodes and edges. Being schema-free, you can evolve your graph as you encounter new things such as traps or secret doors. And, using the Cypher query language, you can write elegant and easy to understand queries that find the best routes to get the stuff adventures desire most. In this talk, I’ll use the aforementioned example to introduce you to the concepts of graph databases. I’ll compare how to solve this problem with a relational database and how a graph database makes it easier. I’ll show you how to query and modify your graph. And, as no talk would be complete without a live demo, I’ll do it all using a real-time procedurally generated random dungeon (I am a dungeon master after all). So come, have a flagon of mead as you learn about graph databases, optimize your dungeon crawl, and equip another weapon in your quest for better software!


Knowledge of SQL is helpful but not essential.

favorited by:
Mike Harris Barry Stahl Chris Gardner Riley Major David Wanta Troy Weis Shawn Cannon Allen Zaudtke Bob Dankert Justin Weyenberg Damon Sanchez Rebecca Von Ruden Matthew Groves Rob Linxweiler Jeff Jones Christopher Ebbert Joe Forsythe Andy Lester Timothy Tyson Dustin Ewers Cody Backhaus Brandon Belman Gabe Ganser Jacob Galloway Dennis Moon Cameron Lengerich John Kozlowski Mark Anderson Matthew Ives Adam Tegen Ross Larson Steven Hicks Ryan Holmes Gregory Owen