Project Barton

AI is about to take over the world. I think we’ve all come to terms with that, but in a way I’m excited. There’s a whole new frontier for new creative ideas that could stem from incorporating AI into games.

I’ve decided that my next personal project is going to be a little experiment with AI. I want to create an RPG experience where the NPC can actually interact with the player, and I’ve got some cool ideas on how to do it.

There’s going to be plenty of stuff to talk about, so there will be more posts to come. Expect some nerdy, in-depth technical dev-logs about the project as it goes.


Why?

I read a ton of books as a kid. I always imagined what it would be like to have conversations with the fictional characters, imagining how they would react to what I was saying and what we would talk about. As I got into games like Pokémon and The Legend of Zelda, I loved that the player character never said anything. This is incredibly embarrassing to admit, but as a kid, I would create imaginary conversations with the NPC’s in my head. It felt much more immersive to imagine my own conversation than have to choose between set dialogue options, like in Skyrim or Fallout.

When I made my first text-based adventure game, I wanted desperately to make sure the player could do anything they wanted. I would create as many if-then statements as possible, so that when the player typed in what they wanted to do, they could do it. I quickly realized that this was IMPOSSIBLE.

But now, we have the technology. ChatGPT and AI Dungeon can simulate conversation incredibly well. Theres a TON of caveats of working with AI, but the idea of creating an immersive NPC is too cool to pass up.


How?

There are a few ways we could do this.

  1. Train an AI from scratch.

I designed a whole system for this, specifically formatting a dataset that would give the AI a personality. This included isolating personality traits that I wanted, then writing “memories” to train the AI with. I even went so far as to create a formula to determine the "weight” of each memory, to determine how much one fictional event in the fictional person’s fictional memory effected the AI’s personality, and how much they would have forgotten.

But the thing is, the recommended size of a dataset can be up to millions of words. If I were to write and format an entire autobiography for this fictional person, that would be considered a small dataset. I also wouldn’t be able to test it to see if it even works until after I had written like 10k words. So, not gonna happen.

2. “Fine-tune” a chat-specific model.

Fine-tuning is pretty much just like training an AI based on a dataset, but instead of writing an autobiography, it would just be giving it a list of questions, and how the AI should respond to these questions. It’s a lot easier to do this than to train an AI from scratch, but it would still require a list of hundreds of question-answer pairs. Which is too much work.

3. Prompt the AI to “act” as a character.

This is the one I’m going for. It’s the least time consuming, and the cheapest by far. Maybe the method I use could be used by other solo developers, who want a cool AI NPC but don’t have the time or resources to make a huge dataset.


Long story short, I want to make NPCs that make my childhood dreams come true. And I don’t have all the time and resources in the world, so I want to make the entire process as cheaply and efficiently as possible. If it goes well, great! If not, I’ll try again later when I have some more experience.


Thumbnail: DALLE-2, “A wide shot of a small, run down house on Mars, with telephone poles running off into the distance, Digital Art”

Previous
Previous

“Night Call, Collect”