As a table top gamer myself who has played countless games across hundreds of different systems, I wanted to create a system with Alexa that would turn her into the perfect gaming companion. Background music, roll tracking, rules, and a game board make handling the nuts and bolts of a campaign simple!
What it does
The two biggest features are roll tracking and the game board. For rolls, you can give Alexa common gaming roll requests and get back results. Previously, if you say 'Alexa, roll d7 + 6' she can give you an answer. Great.
But, what if you want to roll 3d6+4d8+9? This is an easy notation in gaming and something you might need to roll, so it should be available. With Dungeon Master, it is!
Then the skill goes one step farther. Let's say that is your damage check in combat and you need to roll it often, but you don't want to say that mouthful each time: after making the roll, you can say "Alexa, save that as ______" and save it. For example, you could save it as 'Brad's damage' and then say 'Alexa, roll Brad's damage" to roll it in the future.
The important thing here, however, is the screen, and this is where Dungeon Master really shines.
Your last 100 rolls are tracked and displayed on the screen along with all of your saved rolls with a button to delete or roll them again for quick rolls. You can also add rolls by typing in a name for the new one and the roll in the tracked notation. However, that's not the coolest thing about having an html compatible screen: what is, you ask?
The Game Board!
On the board, you can zoom in, zoom out, drag the screen, and display tokens. The tokens are draggable as well and fit into the grid squares. You can resize the tokens, turn them into friends or enemies, name them, or add notes to keep track of their details.
And that _ still _ isn't the best part: your Alexa board comes with a Room Id and Room Code, and if you or the friends you are playing with have a computer, phone, or tablet they can use those codes or the included URL to join the synced gaming room. See the shared rolls table and gaming board setup across devices in case you are playing socially distant (or just have that friend who likes to use his own computer while in the same room). You move, rename, or modify a token and they see it change!
Update 11/11/20 - Big News! Audio is available! Just open the audio tab in the top corner, pick an audio track, and then hide the tab again! It'll keep playing on a loop in the background! If you want, you can even play multiple tracks at the same time and overlap them if you want to blend some music!
Finally, you can also look up quick and simple rules from the open gaming rules provided by Wizards of the Coast. Need to look up how True Strike works really fast, or fly? Just ask Alexa or click into the rules tab.
How I built it
I built the screen using the Web API for Games on a react infrastructure and Alexa, and the backend is run using Java with a redis cache and mysql backend. I also designed and built out the APLA responses to include the music (sourced and licensed from SoundStripe). It is all synced with websockets so that all users can see the updates.
Challenges I ran into
There were numerous challenges when building this, and most of them stem from building out the UI and making it responsive. It had to work across all screens and it had to be smooth and fast. The echo devices don't have a ton of memory, so I spent a lot of time optimizing to be able to display the game board and sync the tokens while including all of the custom information. A lot of data is being pushed around and that means everything needs to be micro targeted. Another problem was designing the system for rolls to take in text from Alexa ("Roll Two D Six Plus Four D Eight Times Five D Nine Plus Eight") and converting that to ("2d6+4d8*5d9+8") and saving/storing that notation. The idea was if you use the screen or the device the requests are the same and push easily through the system, and this wasn't easy to do.
Accomplishments that I'm proud of
I'm really proud of the rolling system and the game board. Making it work with the zoom and drag functionality is something I'm incredibly happy with, especially since it works quickly on the echo devices and not only on computers/phones. The rules system is a nice inclusion for simple rules, but with the other tools you could play any game (shadowrun, pendragon, Warhammer 40k, etc.) with those simple pieces.
What I learned
I learned a ton about building and synching content across devices and design systems as well as how to integrate the APLA and Web API for Games systems into Alexa in a clean and smooth manner. My goal was to make the skill usable without a screen, but to have a million more brilliant tools at your disposal if you do have a display.
What's next for Dungeon Master
I'm actively enhancing both the roll and the rules systems. I want to offer more expanded targeting of rules (For example, asking 'how many hit points does a red dragon have' requests). I also want to fix and modify the roll system to be more accurate since it uses search queries.
Finally, I'm constantly adding new tokens for users and monsters, new music for gaming ambience, and new backgrounds for the gaming board (including, fingers crossed some new space game backgrounds and tokens for players outside of fantasy games!).