NPCGenerator
For when tabletop RPG player ask "who's that?"
I started this project with almost no training in coding, and I knew even less about artificial intelligence. I decided to try it anyway because I wanted to grow my skills and see how far I could push myself. I built this app for my friends Jassy, Rocky, Zak, and myself. We are all Dungeon Masters for tabletop games, and we struggle with the task of making up new NPCs right on the spot during a game. My goal was to make an app that could generate an NPC with one click, and provide enough creative information to let us ad-lib as-needed. In the end, I got what I was looking for, and I'm so glad I challenged myself to do it.
Through this whole process, I learned that I can really do anything I set my mind to, but I also learned that setbacks are inevitable. I had originally started with a small model that had been trained on story prompts. It gave me the whimsy I had hoped for, but could not handle the system instructions for the output structure. Next, I tried a much larger model (12B parameters), but it was too slow and way too bulky for what I needed. At the time, I decided to work on the UI first. Gradio has built an amazing API that made this seamless and really elevates the look of my app.
After a whole lot of coding and recoding and adding features (like the csv download) I finally had enough with the larger model. It wasn't performing how I wanted it to, and kept naming all the characters "Elara" or "Alara" (this is an issue I ran into frequently with many models, I hope to someday find out why). With only two days left before the final deadline, I decided to try fine-tuning a pretrained model myself. A group called OpenBMB provided a lot of great options for the hackathon, and I picked one that was awesome at both creative writing and following directions. Perfect place to start! Making a training program and editing it to run through the cloud API took hours I would have rather spent on the app itself, but I knew the end result would be worth it.
Then at the last minute, 8 hours before the deadline, my computer crashed. complete motherboard failure, no going back. Luckily Modal had saved all my training data, and Huggingface had my app, so I was able to recover and add finishing touches. If I could go back and add one more thing, I would make the AI create the character stats too, instead of just using random numbers, but I guess that will have to be a feature for another day.
I am so glad I got to be a part of this hackathon. I feel accomplished with what I have made, and I can't wait to take a nap, get some coffee, and look through all the other submissions.
-Emmy Coffey
https://huggingface.co/spaces/build-small-hackathon/NPCGenerator https://youtu.be/b7M0ejRoxQU https://bsky.app/profile/coffeycritter.bsky.social/post/3moecvgrurc25
For when tabletop RPG player ask "who's that?"
More from this author