I made this (thanks claude)
I turn the project over the Claude Code and my mind is blown.
Guide:
https://grantbuildswithai-creator.github.io/guides/ai-dungeon-master/
Read the transcript
Lightly edited for readability: mis-heard words fixed and filler words trimmed. Words in [brackets] were unclear in the recording.
Welcome to episode two of Grant Builds With AI. I'm Grant. I build things with AI, and this is a podcast to tell you about my experience doing that.
Okay, so last episode left off on a cliffhanger. I had built something, but it had been very painful. I had been using the AI as a research assistant, or a tutor, like a person who stood over my shoulder and pointed at things, and then I would type them in, or do them, or copy-paste. Sometimes it would give me notes, and I could copy and paste those in. It would tell me the answers to questions. And things were moving along, but they were moving along really slow, and what I had created was super lame.
So, what happened next? Well, if we imagine that Claude is like an assistant standing over my shoulder, going through this process, Claude did keep recommending, "You might try Cowork, or you might try Claude Code for this." I kept saying no, because I knew I needed a better understanding of the nuts and bolts of it, the infrastructure. Well, eventually I got frustrated, because nothing was happening, and with the pace. My goal was to build something, and I knew I could do it, but it was going to take months. My interest was starting to slack. So my tutor was seeing that the student was getting burned out, and the tutor kind of patted me on the back and said, "You know what? Do you want me to just do this for you?"
So I switched to Claude Code. I had the chat make up a big prompt summarizing everything that I'd done up to that point, and I copied that into Cowork, and away we went. And let me tell you, this was one of those moments in my life where my mind actually kind of got blown. All of a sudden, Claude went from that assistant patting me on the shoulder, telling me "good job," to... we switched. I stood up from the computer, Claude sat down, and I just told Claude what I wanted, and it just did it. And it just blew my mind.
In the beginning, I was like, "Hey Claude, this is what I've got up and running, but it's just not doing anything that I really want." Claude would give me five suggestions, and I would just say, "Oh yeah, do number one," and it just did it.
I had to hand over my laptop to Claude. I really gave it a lot of permissions, of course, when you first set up with Claude Code and it's running locally on your laptop. Yeah, that's right, I had to download it. Everything up till then had been done through the web browser. I downloaded the desktop app, and in the beginning I was doing everything locally on my computer, so I had to learn about that. I created a designated folder for Claude on my laptop, and it does things there. I gave it command line permission so that it set up its SSH communication with my AWS instance. I gave it my Discord logins so that it could read the chat history.
It recommended GitHub, because before, it was pulling my Python files from my computer, and it said, "No, you should just put this in GitHub." So I would go in and make a GitHub account and then link that to Claude, and away it went. So again, I'm standing now behind Claude, sitting at the laptop. Claude's just doing everything, and I'm standing behind it, and my role becomes directing the work instead of actually doing the work. And this blew my mind. I had been reading a lot about agentic AI, and this was the first time I felt that I was seeing it. So that was awesome.
And away it went. The first thing we did was set up a big system so that the campaign didn't live in the model's memory. Everything needed to live outside of that, in text files, or I think they were JSON files, that exist in GitHub or on the AWS server. You know what, I can't actually remember where they live. I know they live in three places. I know they live on my computer, I know they live in GitHub, and I think they live on the instance.
So there's a character sheet, and there's the lore, for each adventure place. In mine, the lore is set up... I built a campaign around a Montana valley in the 1900s, sort of loosely based on Norman Maclean's A River Runs Through It, but in a fantasy world where magic is real and there are magical creatures, and it's a mysterious thing. I typed up quite a bit, but then I gave that to Opus to expand the lore. I typed up all the place names. I based it loosely on real geographic places and had it reference Wikipedia about the history of the valley, and then I turned it over to Opus.
I also instructed it that I didn't want spoilers. I told it that I wanted a professional D&D campaign about the size of, what is it, The Dragon of Icespire Peak, so around 60,000 words. And I just told it to write one and not tell me about it, because I wanted to play it, so that it would be spoiler-free. And it just did it. It just created it. It wrote about 60,000 words. I've been playing this campaign for a while, and so far it's been awesome. I'm still hooked into the mystery of it. I don't know what's going to happen next, which is kind of amazing.
Then it became: I would play the campaign, and then I would come back and tell Claude what I liked and didn't like. Like, I noticed that the dice rolls were living in its memory, and I was like, that's not good. So we created a tool in the software, and now the model rolls the dice in a Python tool, and then it displays the outcomes, so I know that the model is not making up the dice rolls. I can go back and look at the software logs and see what the dice rolls were.
And character sheets. There was an issue when I invited my brother onto the server to start playing: all of a sudden, it mixed up the character attributes. So we had to create a way where, each time a Discord account comes onto the server, the first thing the bot does is walk it through creating a character, or that account can just drop in a pre-made character that it made somewhere else. Now, all of a sudden, the character sheet is made, and that will be referenced. And the model is also rewriting it as the characters level up. That character sheet's a live sheet, and it's rewriting its stats and levels and items. Then I noticed it wasn't paying attention to where the characters were, so now there's a location tag. That's pretty awesome.
There are three accounts right now. My brother and my cousin are playing with me, and we're playing asynchronously, so they'll come on and move the party into different places and do different things. So we had to set up a little system where that's okay, but you can direct the bot to play the other characters when that account's not online. And we set up some guardrails, giving instructions to the model that, yes, all accounts can play the other characters, but not make huge changes. They can spend their money and buy things, but they can't make a pact with a demon. So we set up those kinds of guardrails.
I also set up a guardrail that only my Discord account can give the reset command to the model, so that somebody else couldn't just come in and wipe the world. Although I even set it up so it keeps backups of things, so even if that happened, we could restore to an earlier time. Anyway, all that happened with me standing behind Claude, who's sitting at my laptop doing all this. And that's the part that just blew my mind.
So, that's where things stand now. I have a playable... not playable, I am playing a campaign on Discord with the Claude bot. It's gone great. In fact, I got so excited about this, I replicated the whole process with Codex, because I also have a subscription. I have the $20-a-month subscription to Claude, but I also have a $20-a-month subscription with OpenAI. I went in and repeated the whole process from scratch, but with Codex, and learned that process. It was a bit different. Maybe I'll do a next episode about what that process was like with Codex.
I actually now have a second campaign that I was going to invite some other friends to try out, with a whole different lore and adventure, but everything exists with Codex. That campaign points to, I think, [a different model], 5.6 or something. So it's a different model, and it's a different cost structure. I had to open up an OpenAI platform account, which was a whole learning experience in itself. And I'm thinking about trying to replicate it again with the Google setup. That's going really slow, and I've kind of moved on to other projects. I don't think I've touched the DM bot project for a little while. The project I'm actually working on right now is the podcast, and that's been kind of fun.
But that kind of wraps it up. We're gonna end this episode with: yeah, I created a D&D campaign powered by an AI model that lives on Discord, and I'm having a lot of fun with it. So I built it, and I built it with the help of Claude, directing the work, not doing the work. So there we are. I built something with AI. Like and subscribe, bye!