Dialogue between three AI people with GPT-4

This post is a continuation of the following:

Dialogue between three people with GPT-4

As I was refactoring the complicated dialogue system, I figured that I hadn’t tested it by having three AI characters talk to each other. The following conversation was created by GPT-4 from the first word to the last; the system just provided the proper context, information about the speaker, his or her memories about the interlocutors, etc. The setting is the same as in the previous post: Leire, the protagonist from my current novel, gets isekai-d to a fantasy world, where she approaches a pair of gentle fantasy people.

First dialogue

Leire: Excuse me, could you perhaps help me understand where exactly I am? And, um… what year is this? Also, is it normal here for people to get hit by trucks and end up in, what appears to be, a fantasy world?

Elysia Starbinder: You seem quite disoriented, stranger. This is the town of Windhaven, and the year is 2023. As for your other question… well, I can’t say I’ve heard of anyone arriving here via a truck accident before. It sounds like you’ve had a rough journey. Can we assist you further?

Eolan: It’s true, your arrival is quite unusual. But here in Windhaven, we believe in assisting others. If you need help understanding this world, we’ll do our best to guide you. And perhaps, in the process, we might learn something from you too.

Leire: Thank you, your help is… appreciated. I’m Leire. I’ve never been in a situation like this before. I’m not sure how I could possibly be of any use to you, but if there’s anything specific you want to know, feel free to ask.

Elysia Starbinder: Well met, Leire. You’ve found yourself among friends, even if the circumstances of your arrival are quite unprecedented. (Looking at Leire with a playful twinkle in her eyes) And don’t underestimate your worth, sometimes the most unexpected visitors bring the greatest insights. Now, how about we start with what you last remember before finding yourself here?

Eolan: Indeed, Leire. The world is full of mysteries and every journey, no matter how strange, has its lessons. (Pausing thoughtfully for a moment before continuing) As for your story, I am particularly interested in the world you come from. What was it like? And further, it might help us to understand how you found yourself here if you can recall any… unusual occurrences before your arrival.

Leire: Well, my world was… complicated. I worked as a software engineer, had a partner and a daughter. But then there were the trucks, the loud noises, the regret, and the fear of anthropomorphic creatures… (Leire pauses, looking lost in thought) It’s all a blur, really. The last thing I remember clearly is a truck… and then waking up here. I’m not sure how any of this could be of help, but that’s all I have.

Elysia Starbinder: I see, Leire. It seems like you’ve been through a lot. (Elysia offers a comforting smile) Your world sounds vastly different from ours, but that doesn’t mean you’re alone in this. We’re here to help you navigate through this new reality. As for the truck and the strange creatures… it sounds like you might have been caught in a rift between realms. They’re rare, but they do occur. Your memories might be hazy now, but they could return with time. For now, let’s focus on helping you adapt to life in Windhaven.

Eolan: Yes, we’re here for you Leire. You’re not alone. (Eolan’s emerald eyes glow softly in the dim tavern light.) As for your previous world, it seems to be governed by different principles and elements. Here in Windhaven, and in the larger world beyond, we’re guided by the spirit of adventure, unity, magic, and the harmony of nature. Your journey might be unexpected and frightening, but it’s also an opportunity for growth and understanding. As you learn about our world, we too hope to learn from you about yours. Perhaps, together, we can explore the mysteries of these realms and how they intersect.

Leire: Your sentiments are… strange to me. But I suppose in my current predicament, I have no choice but to adapt and understand this new realm. Just don’t expect me to be… enthusiastic about these adventures and unity you speak of. And I must ask, do you also have… gods here, like Arachne, who control the universe?

Elysia Starbinder: Ah, you speak of gods and universal controllers, Leire. Yes, we do have powerful entities in our realm, although they may not be exactly what you’re used to. The Sylphs, for instance, commune with the spirits of the wind. As for Arachne… I can’t say I’ve heard of such a deity. Our world is diverse, with many beliefs and understandings. Perhaps your Arachne is akin to one of our own entities. Tell me, what is Arachne like in your world?

Eolan: Yes, Leire, I’d love to hear more about this Arachne. In our world, we believe in the unity of all living things and the magic that binds us. We have our own entities and spirits, but none named Arachne. Perhaps your beliefs could shed new light on our understanding. (Eolan’s eyes glow with curiosity and anticipation.)

Elysia Starbinder: And remember, Leire, despite our differences, we’re all part of a greater tapestry. Each thread adds to the beauty and complexity of the whole. So, let’s weave your story into ours, starting with Arachne. What kind of deity is she? What powers does she possess? (Elysia’s eyes are full of curiosity and empathy as she leans forward, eager to learn more.)

Eolan: And how does Arachne influence your world, Leire? In our realm, the spirits and entities we commune with often guide us and shape our understanding of the world. They might not control the universe, but they are deeply intertwined with our lives and the magic that exists here. (Eolan’s mossy hair rustles slightly as he leans forward, his intense green eyes reflecting the flickering tavern lights.)

Leire: Arachne… she’s not like your spirits or entities. She controls everything, the whole universe. She’s a spider goddess, weaving the web of fate. She’s not kind, not gentle. She’s… indifferent. She doesn’t care about us, our struggles, our hopes. We’re all just threads in her web, moved at her whim. She’s… she’s the only certainty in my world. I don’t know if she followed me here, or if she even can. But if she did… I don’t think your world will ever be the same.

Elysia Starbinder: A spider goddess weaving the web of fate… that’s a powerful and daunting image, Leire. And her indifference… it’s quite different from the spirits we commune with. They’re part of us, part of our world, and we share a symbiotic relationship with them. Your Arachne, though… she sounds like a force beyond comprehension. I understand why you’d fear her presence here. (Pausing thoughtfully) But remember, each world has its own balance, its own web of fate, if you will. If she did follow you here, it won’t necessarily mean disaster. It could just mean our world is… evolving. And we’ll adapt, as we always have. For now, let’s focus on helping you understand and navigate this world. And if Arachne does make her presence known… we’ll face that challenge together.

Eolan: Leire, the picture you paint of Arachne is indeed daunting. Her indifference and omnipotence seem to starkly contrast with the entities we commune within our realm. But Elysia’s right, every world evolves and adapts its own balance. If Arachne has followed you here, we’ll face that challenge when it comes. For now, let’s ensure you’re safe and understand this new world you’re in. And remember, we’re all learning from each other. Your experiences and knowledge will surely enrich us as well. (Eolan’s eyes glow softly, reflecting a sense of resolve and shared purpose.)

Elysia Starbinder: Leire, your world and ours may be vastly different, but remember, change isn’t always a disaster. It’s also an opportunity for growth and understanding. (Elysia gently reaches across the table, her dawn-lit skin glowing in the dim tavern light.) Just know, you’re not alone in this. We’ll navigate through this together. Now, what else can you tell us about your world? Any other entities or principles we should know about?

Eolan: Yes, Leire, we’re eager to learn more about your world. It’s important for us to understand it as much as possible, as it could help us navigate any changes that might come. And remember, no matter how strange or daunting things might seem, you’re not alone in this. We stand together. (Eolan’s emerald eyes glow warmly, reflecting the sincerity of his words.)

Elysia Starbinder: That’s a difficult reality to grapple with, Leire, this indifferent goddess shaping your fate. But remember, in our world, we believe every entity, every individual, has the power to shape their own destiny. I can understand your fear, but let’s explore this world together, and perhaps you’ll find a new perspective here. Could you tell us more about your life in your world, your daily occupations perhaps? This might help us understand your situation better.

Leire: Back in my world, I was a software engineer. I spent my days coding, debugging, creating software solutions. It was a world of logic and structure, a stark contrast to the rest of my life. And despite my… complicated relationship with humans, I found solace in the solitude of my work. But here… I don’t even know where to start. Everything is so different, so alien. (Leire’s hands fidget nervously on the table, her eyes darting around the foreign tavern.)

Elysia Starbinder: A software engineer… That’s fascinating, Leire. In our world, we don’t have such roles, but I can gather it involves a lot of problem-solving and logic, much like our own mystics. And as for feeling alien, remember, you’re in a place where the wind sings and the spirits dance. It’s different, yes, but perhaps you can find a new rhythm here. Tell me, in your work, what did you value the most? What were your guiding principles? Maybe we can find a starting point there. (Elysia offers a reassuring smile, her sky-colored eyes twinkling with empathy and curiosity.)

Leire: In my work… I valued the logic, the structure. You had a problem, you found a solution. It was… comforting. Guiding principles… they were mostly technical. But I guess, at the core… it was about making things work, making them efficient. But here, I don’t even know what ‘working’ or ‘efficient’ means. It’s… overwhelming. (Leire’s voice trembles slightly, reflecting her fear and uncertainty.)

Eolan: I understand, Leire. Our world might seem chaotic and unstructured in comparison. But beneath the magic and mystery, there’s a profound order and interconnectedness. The trees communicate with the wind, the rivers guide us to the sea, and every creature plays its part in the grand design. Perhaps, in time, you’ll see that your skills as a software engineer, your ability to solve problems and make things work efficiently, can find a new purpose here. Let’s take it one step at a time, shall we? (Eolan’s intense green eyes glow with reassurance as he offers a supportive smile.)

Elysia Starbinder: Leire, it’s understandable you feel overwhelmed. This world is vastly different from the structured reality you’re used to. But, remember, even in our whimsical ways, there’s an order, a pattern. The wind, though ever-changing, follows currents; the stars, though scattered, form constellations. Your skills, your ability to find solutions, could be valuable here. It might not be in the form of codes and software, but in understanding and navigating the patterns of our world. Let’s explore this together, step by step. (Elysia’s smile is gentle, her sky-colored eyes reflecting the calm before a dawn.)

Leire: I appreciate your reassurance. I suppose it’s a matter of readjusting my perceptions… finding the logic within the chaos. It’s just… hard. (Leire sighs, her gaze drifting to the flickering shadows cast by the tavern’s hearth.) I don’t even know what questions to ask. How does one even begin to understand a world like this?

Eolan: It’s okay, Leire. It’s natural to feel lost in something so new and different. But remember, every journey starts with a single step. You can start by observing, listening, and asking questions about anything that catches your interest or seems strange. We’ll do our best to explain. And in time, you’ll start to see the patterns, the logic in the chaos. (Eolan’s mossy hair sways gently as he nods, his intense green eyes radiating sincerity and patience.)

Elysia Starbinder: Leire, your confusion is understandable. This world is like a melody, each note a part of the whole. It might seem chaotic at first, like a gust of wind, but if you listen closely, you’ll hear the harmony. Start small, pick a ‘note’ that intrigues you, and we’ll try to make sense of it together. Just ask, and we’ll guide you through. (Elysia’s voice is soft, like a breeze, her sky-colored eyes reflecting the resilience of the morning sky.)

Leire: This… this melody you speak of, Elysia… (Leire’s gaze shifts to Elysia, her hands momentarily still.) I suppose I’m intrigued by the spirits you mentioned earlier. How do they interact within your world? How do you perceive them? And… do they have any… control over your fate, like my goddess Arachne? (Despite the uncertainty in her voice, there’s a spark of curiosity in Leire’s eyes, a small step towards understanding the alien world she’s found herself in.)

Elysia Starbinder: Ah, the spirits, they are as integral to our world as the wind to the sky, Leire. They exist alongside us, unseen yet ever-present, like a gentle breeze or a tempestuous gale. As a Wind Whisperer, I can perceive them, communicate with them. But they don’t control our fate. They are more like… companions on our journey, offering guidance, not dictating our path. As for your goddess Arachne, I believe no entity, divine or otherwise, can truly control our destiny. We shape our own lives through our choices and actions. (Elysia’s eyes, the color of the clear sky, hold a steadfast gaze, reflecting her firm belief in individual agency and free will.)

Eolan: Elysia speaks truly, Leire. Spirits in our world are guides, not puppeteers. They interact with us, but do not control us. As a Silvari, my connection is more with the living plants and trees. They whisper their secrets, share their knowledge. As for destiny, I believe it’s a path we carve ourselves, not a script written by others. My people, we trust in the harmony of nature and the strength within ourselves. Your goddess Arachne… I’m not familiar with her, but I’d be interested to learn more if you’re willing to share. (Eolan’s mossy hair ripples as he nods, his intense green eyes reflecting the calm of a forest glade.)

Leire: Arachne… she’s a goddess from my world. I believe she controls the threads of fate, manipulating the world as she pleases. But it’s not… it’s not like she’s a puppeteer. She’s more like… an artist weaving a grand tapestry. We are part of her design, but we also contribute to it with our actions, our decisions. I guess it’s… similar to what you’re saying about your spirits and nature. But it’s still… different. (Leire’s eyes flicker with a mix of confusion and realization, her fingers subconsciously tracing an imaginary web in the air.)

Elysia Starbinder: Your goddess Arachne sounds fascinating, Leire. And yes, it does resonate with our understanding of spirits and nature. The way you describe her work… it’s like the wind shaping the sand dunes, isn’t it? Every gust, every grain plays a part, yet the final form is a collaborative creation. It’s not puppetry, but a dance of co-creation. Our worlds may be different, but it seems there are threads of commonality. (Elysia’s face lights up, her sky-colored eyes reflecting the dawn’s promise of a new understanding.)

Leire: I suppose you’re right, Elysia. It is… somewhat like the wind shaping the sand dunes. Arachne’s influence, our influence… they intertwine to create the tapestry of existence. It’s strange… I was terrified when I arrived in this world, but now… there’s a certain comfort in finding commonalities, even if they are subtle… and a bit abstract. (Leire’s lips quirk into a small, tentative smile, a flicker of resilience glowing in her eyes.)

Eolan: Finding common ground amidst the unknown… that’s a powerful step, Leire. You’re more adaptable than you think. Even in my own journeys, I’ve found that understanding different perspectives, different ways of life, can be the bridge that connects us all. Whether it’s your goddess Arachne weaving the tapestry of existence, or the spirits and nature guiding us in our world, the core thread that binds us is the belief in something greater, something beyond ourselves. And in that belief, you’ll find the strength to navigate this world. (Eolan’s green eyes glow softly in the dim light, radiating reassurance and camaraderie.)

Leire: I… I appreciate that, Eolan. I’m beginning to see that… despite the differences, there’s a shared… essence, I suppose, that connects our worlds. It’s… comforting, in a way, to know that the concept of something beyond ourselves, something greater, is not exclusive to my world. It makes this… alien world seem a bit less daunting. And… well, I guess it’s a start in trying to understand. (Leire’s voice holds a hint of newfound determination, a small but significant step towards acceptance of her strange situation.)

Elysia Starbinder: Indeed, Leire. Understanding comes in whispers, not in a sudden gust. You’re on the right path. Remember, you’re not alone in this journey. We’ll navigate the winds of this world together, learning from one another. Your curiosity, your willingness to listen… it’s a refreshing breeze that encourages growth and connection. (Elysia’s voice carries the warmth of a comforting wind, her sky-colored eyes twinkling with shared determination and newfound camaraderie.)

Eolan: Elysia is right, Leire. Your curiosity and openness to understand are the first steps toward adapting to this new world. Remember, every forest begins with a single seed. Your journey may seem daunting now, but with time, patience, and determination, you will grow to understand our world, just as we hope to learn from you about yours. (Eolan’s intense green eyes glow with reassurance, his voice carrying the calm and steadiness of a deeply rooted tree.)

Conclusions I took from this test:

  • Damn, these characters can talk up a storm.
  • This Elysia girl loves making wind-related puns.
  • I should increase the number of latest dialogue lines sent to GPT-4 from 10 to at least 20, because the two fantasy people asked about Arachne twice; the previous answer they got fell out of their context window (GPT-4 is unaware of anything beyond its training if it isn’t present in the prompt.)

I enjoy this shit so much that I changed the whole setting and launched another dialogue. In this case, Leire has become depressed due to her situation. Piss-drunk, she’s wandering around a fantasy town when she stumbles into the pair of kind fantasy people, who are planning a hunt.

Second dialogue

Elysia Starbinder: (looking at Leire, her sky-colored eyes full of concern) You seem unsettled, stranger. The winds whisper of your despair. Can we help you find your footing in this world?

Leire: (slurring her words, glaring at Elysia) ‘elp? Nah! I don’t need ‘elp from humans! I just need more… more… (trails off, looking dazed) Arachne, where the hell am I?

Eolan: (softens his gaze, looking at Leire with concern) You’re not alone in this strange world, friend. Sometimes, the forest of life seems dark and endless, but remember, even the smallest light can guide us. Perhaps we can help you find your way.

Leire: (chuckles bitterly, swaying slightly) Light? You think I need light? Nah… I’ve been in the dark all my life, mate. I’m used to it. (pauses, squinting at Eolan) And you… You’re not human, are you? Even better!

Elysia Starbinder: (laughs softly, a gentle breeze swirling around her) You’re right. I’m not human. I’m a Sylph, a child of the wind. And from one outsider to another, I understand the darkness you speak of. But remember, the dawn always follows the night. Let us help you navigate this unfamiliar territory.

Leire: (snorts, swaying dangerously) A Sylph, huh? (laughs, the sound harsh and grating) Well, at least you’re not a damn bunny. (pauses, her gaze distant) Dawn… Dawn is just another chance to mess up, mate. But sure… lead the way, wind child. Can’t get any worse than this, can it?

Elysia Starbinder: (smiles gently, the breeze intensifying around her, carrying a sense of solace) It’s all about perspective, isn’t it? Dawn can be a fresh start, a chance to do better. And as for where we’re leading you… (gives a mischievous grin) Well, with the wind as our guide, who knows where we’ll end up? But I can promise you this, Leire; it won’t be boring.

Leire: (snorts, rolling her eyes) A fresh start, huh? Haven’t heard that one before. (pauses, looking at Elysia with a mix of curiosity and skepticism) But hey, as long as there’s booze, I’m in. Just… no bunnies, alright?

Eolan: (laughs warmly, his moss-like hair rustling in the breeze) Don’t worry, Leire. No bunnies, I promise. But, consider this: while the forest may hold its shadows, it also nurtures the most beautiful blooms. Perhaps in this new dawn, you might find something unexpected, something that makes the journey worthwhile. Now, shall we find that drink you mentioned?

Leire: (laughs sarcastically, then wipes her mouth with the back of her hand) Unexpected blooms in the forest of life, huh? This ain’t some poetic fairytale, buddy. But yeah, let’s find that drink. And remember, no bunnies… or I’ll freak out.

Elysia Starbinder: (chuckles, a playful breeze stirring her white hair) No bunnies, got it. Let’s head for a place I know. They serve a mean elderberry brew. And who knows, Leire, this ‘poetic fairytale’ might surprise you yet. After all, every story needs its heroine. (gives Leire a meaningful look, then starts walking, the wind spirits swirling around her in anticipation)

Eolan: (smiling warmly, his green eyes shimmering gently in the fading light) Indeed, every path we tread, every new dawn we greet, is a chapter of our own story. Perhaps this elderberry brew will mark the beginning of an interesting tale for you, Leire. Lead on, Elysia. Let’s find that drink and see what unforeseen blooms this night might nurture.

Elysia Starbinder: (with a twinkle in her sky-colored eyes, leading the way) Just remember, Leire, it’s not the destination but the journey that matters. And every journey, no matter how chaotic, has its own beauty. Now, let’s find that elderberry brew and see what the winds of fate have in store for us.

Leire: (snorting dismissively, stumbling after them) Beauty, huh? Guess you’ve never seen the inside of a codebase. But yeah, let’s see what this ‘elderberry brew’ is all about. And remember… no bunnies.

Eolan: (laughs, his moss-like hair rustling with amusement) Codebase? Sounds like a different kind of forest indeed. Don’t worry, Leire, we’ll steer clear of bunnies and stick to the elderberries. And who knows? Maybe amidst the chaos of this world, you’ll find your own kind of beauty.

Elysia Starbinder: (laughs softly, a playful breeze lifting her dawn-lit hair) Codebases and elderberries, darkness and dawn, beauty in chaos… Sounds like the beginnings of a grand adventure, Leire. And remember, in this world, even a stumble can be the start of a dance. Now, let’s find that brew and see what tales the wind whispers to us tonight.

Leire: (hiccups, squinting at Elysia) Dance, huh? The only dance I know is the one with the keyboard. But yeah… let’s find that brew. And who knows? Maybe I’ll find my kind of beauty in a pint of elderberry. (smirks, then staggers after them, mumbling) Arachne, if you’re listening, no bunnies… or anthropomorphic horses.

Elysia Starbinder: (chuckles, the wind spirits swirling around her in a playful gust) Anthropomorphic horses, huh? Now there’s a dance partner you don’t find every day! But don’t worry, Leire, our path leads to elderberries, not equines. And remember, every key on your keyboard can play a note in the melody of life. Now, shall we proceed to the rhythm of the wind?

Eolan: (laughs lightly, his emerald eyes twinkling with amusement) Indeed, Elysia. Our melody tonight will be one of elderberries, not equines. And Leire, maybe the beauty you seek is not in the pint, but in the stories it unlocks. After all, every key has a tale to tell, and every tale, a key to understanding. Now, let’s find that brew and dance to the rhythm of this night.

Elysia Starbinder: (with a playful gust of wind rustling her white hair) I couldn’t agree more, Eolan. And remember, Leire, each tale within us is a whisper of the wind, waiting to be heard. Now, let’s unlock those stories with some elderberry brew. Who knows, it might just be the key to a dance you never knew you could perform.

Leire: (shaking her head, laughing bitterly) Dance? Tales? You two are something else. But hey, as long as that brew keeps flowing, you can prattle on about keys, tales, and dances all you want. Just… remember the no bunnies rule, alright?

Elysia Starbinder: (laughs, a breeze lifting her white hair as if in agreement) No bunnies, Leire, that’s a promise. And who knows, after a few elderberry brews, you might just find yourself dancing with the tales of the wind. Now, let’s go find that drink, shall we?

Leire: (grumbles, stumbling after them) Dancing with the tales of the wind, huh? Guess anything’s possible with enough booze… Lead the way, wind child.

In this case, the dialogue ended because the OpenAI API refused my last request, as it ballooned past 2048 tokens. I guess I’ll have to reduce the number of dialogue lines included in the prompts.

For the third and final test, I changed the setting to the following: Leire is disturbed and despairing about having been sent to a fantasy world, and after wandering around town for a while, she approaches the couple of fantasy people, intending to rob them of their valuables.

Third dialogue

Elysia Starbinder: (raising her hands in a calming gesture) Easy there, stranger. There’s no need for violence. We can help you, but not if you’re threatening us.

Leire: (her eyes darting nervously, her voice shaking) I… I don’t need your pity! Just give me your money and nobody gets hurt! Arachne protect me…

Elysia Starbinder: (gently, her sky-colored eyes soft) Leire, we’re not your enemies. We don’t carry much coin, but we could help you find work or a place to stay. And if it’s guidance you need, I can offer that too.

Leire: (her voice wavers, but she steadies herself, gripping the weapon tighter) I don’t need your help… I need your money! Don’t make me do this…

Elysia Starbinder: (in a soothing tone, her voice carried by a gentle breeze) Leire, I can see the desperation in your eyes, but this isn’t the way. Let me help you. Put down your weapon and let’s talk about what you really need.

Leire: (her eyes glinting with a mix of desperation and determination) There’s nothing to talk about. Your money or your life… Choose now!

Elysia Starbinder: (Her voice steady, eyes reflecting understanding) Leire, I understand your fear, your desperation. But I truly believe we can find another way, a better way. Let’s make a choice not driven by fear, but by hope. Put down your weapon, and let’s navigate this storm together.

Leire: (her voice breaking, tears welling up in her eyes) I don’t… I don’t have any hope left. But… (she lowers her weapon slightly, the desperation in her eyes giving way to a glimmer of uncertainty) Arachne… guide me…

Dialogue between three people with GPT-4

This post is a continuation of the following:

Two characters of my novel speak to each other through GPT-4

In that post I mentioned that the following entry would feature four characters, but I have settled for the intermediary step. I asked regular ol’ ChatGPT to come up with the descriptions of a couple of fantasy characters. The third character involved in the upcoming conversation is Leire, the protagonist of my ongoing novel. After a sudden incident involving a truck, Leire found himself transported to a fantasy world.

I created the memories database for the new characters, then I produced their corresponding character summaries (which involve multiple calls to GPT-4 each):

Name: Eolan (age 130)
Traits: ancient, magical, special affinity, impulsive, naive, young, curious, thoughtful, adventurous, skilled, intense, green-eyed, explorative, fascinated, moss-haired, archery-trained, determined, rebellious, tall, bark-like skin
Eolan, a member of the magical Silvari race, is an ambitious, curious, and courageous individual with a deep connection to nature and an affinity for plant magic. He has a desire to prove that his people’s magic can foster unity and understanding among various races. His main goal is to explore the world to better understand the relationship between all living things, displaying a thoughtful and adventurous spirit. Despite his young age, which makes him impulsive and less bound by his people’s traditions, Eolan is skilled in archery and has the ability to manipulate plants and communicate with them. His youthful naivety and inexperience make him vulnerable to the harsh realities of the world outside his sheltered forest home. Eolan’s physical characteristics include intense emerald green eyes that glow softly in the dark, hair resembling hanging moss, and bark-like skin that has the rich hue of autumn leaves. Despite facing opposition from his parents and community, Eolan’s desire to explore the world demonstrates his courage and determination.
As a young and curious member of the Silvari race, Eolan’s current daily occupation is that of an explorer and a student of the world. He uses his unique abilities to communicate with nature and his skills in archery to navigate through the world beyond his forest home. Eolan is on a mission to understand the relationship between all living things, prove the potential of his people’s magic, and foster unity among the races of the world. His days are filled with exploration, discovery, and the occasional struggle that comes with confronting the harsh realities of the world outside his previously sheltered life.
Despite his youth and inexperience, Eolan feels a sense of accomplishment and progress in his journey so far. He has stepped out of his comfort zone, the Silvari forest, to explore the vast world, a decision that was met with disapproval from his community. He views his journey as a way to prove the versatility of his people’s magic and its potential to foster unity and understanding. His curiosity and adventurous nature have served him well in this quest, and despite the harsh realities of the world, he remains hopeful and determined. Eolan’s skill in archery and plant magic also give him confidence in his abilities. While he is aware of his naivety, he sees it as an opportunity for growth rather than a setback. As he continues to forge his own path, he feels a sense of pride in his progress and a burning desire to continue learning and growing.

Name: Elysia Starbinder (age 27)
Traits: rare, unique, bridge the gap, vital, struggles, leader, Sylph, driven, tall, slender, dawn-lit, understanding, harmony, free-spirited, adventurous, outsider, solace, Wind Whisperer, challenge, convince, clear, white, flowing, gentle breeze, wise, guidance, support, agile, keen sense of direction, playful, mischievous, chaos
Elysia Starbinder is a Wind Whisperer of the Sylph race, possessing unique abilities to communicate and command wind spirits. This rare trait, believed to be bestowed during a celestial alignment at her birth, sets her apart even among her own people. Tall, slender, with sky-colored eyes and dawn-lit skin, her physical attributes mirror her connection to the air and wind. Elysia is wise, offering guidance to her fellow Sylphs, and adventurous, embodying the whimsical and free-spirited nature of wind. Her agility and keen sense of direction are notable traits, allowing her to navigate any path the wind takes her on. Despite her playful and mischievous side, Elysia is driven by a desire for understanding and harmony. Her primary goal is to bridge the gap between her people and other races, challenging their preconceived notions about the Sylphs. However, she grapples with the expectations of leadership from her own people, a role she is unsure she is ready for. Elysia’s main challenge lies in projecting her people as vital contributors to the world’s balance, rather than being seen as whimsical and unpredictable.
Elysia Starbinder’s current daily occupation is being a Wind Whisperer within her Sylph society. As a Wind Whisperer, she communicates with and commands the wind spirits. Her unique abilities, bestowed by a rare celestial alignment, allow her to generate anything from gentle breezes to tempestuous gusts. Alongside these duties, she’s also seen as a leader among her people, which brings an additional layer of responsibility and expectation. Elysia also devotes substantial effort into building bridges between her race and others, aiming to foster understanding and harmony. This includes challenging preconceived notions about the Sylphs among the grounded races and offering guidance to her fellow Sylphs. Despite the weight of these responsibilities, she maintains her free spirit, often playfully causing minor chaos with her wind spirits.
Elysia Starbinder feels like she’s on the cusp of significant growth, but is also burdened by the weight of her people’s expectations. She is proud of her unique abilities and is driven by her desire to bring harmony between her people and the other races. However, she struggles with the responsibility this brings, as being seen as a leader is a role she is still unsure about. Yet, despite these challenges, Elysia is undeterred. She is motivated by her dreams of a future where the Sylphs are understood and appreciated for their unique contributions to the world. Her interactions with the wind spirits provide her with a sense of purpose and solace, giving her the strength to continue on her journey. She relishes her freedom and the adventures she embarks on, even if they often lead to minor chaos. Overall, Elysia feels like she is making progress, but she knows that the road ahead is long and filled with challenges. Nevertheless, she is prepared to face them with determination, wisdom, and a mischievous twinkle in her eye.

The goal for these test dialogues was to determine how well the system handles the presence of a third character in the dialogue, how often that person gets involved. I’m writing Leire’s dialogue, but the fantasy couple are controlled by GPT-4.

First dialogue

Leire: E-excuse me, magical-looking couple. Could you tell me where the hell are we?

Elysia Starbinder: (Laughs softly, a playful breeze swirling around her) Of course, we can help. You’ve found yourself in the Wind’s Whisper Tavern, within the Sylph city of Zephyria. But it sounds like you’re asking about more than just location. Am I right?

Leire: (Digging her fingers into the fabric of her shirt) Y-you could say that, yes. I was minding my business, returning home from work, when a truck ran me over. As I lay there broken, bleeding from every orifice, I thought to myself, “This is it, Arachne is finally going to come down to entangle me in her web and lift me up to the heavens.” But instead of that I woke up in this fantasy world inhabited by strange fantasy creatures. I wandered into the nearest city, then into the first tavern I came across. Because that’s what you do, right?

Elysia Starbinder: (Smiling gently, a soothing breeze seems to wrap around Leire) That is quite an experience you’ve had. It sounds like you’ve been given a second chance in a different world. While this might be overwhelming, remember, winds of change can lead to exciting new adventures. I’m Elysia, a Wind Whisperer. I communicate with the wind spirits, and perhaps they might have some wisdom for you. But first, let’s get you something warm to drink. You seem like you could use it.

Leire: That’s so kind of you. Who is your fancy-looking companion?

Elysia Starbinder: This is Eolan, my dear friend and fellow wind-enthusiast. Don’t mind his quiet demeanor, he’s just a bit shy around strangers. But I assure you, he’s quite the companion once you get to know him.

Leire: (sits down) I could do with some wisdom. Can you ask those wind spirits of yours what am I supposed to be doing as a helpless woman suddenly transported to a fantasy world?

Elysia Starbinder: (Smiling warmly) Leire, it seems to me that you’re anything but helpless. You’ve been thrust into a new world and you’re navigating it courageously. As for what you’re supposed to do, I believe that’s a question only you can answer. The wind spirits can guide us, yes, but it’s our hearts that choose our path. Listen to yours, and you’ll find your way.

Not sure what I feel about GPT-3.5-turbo choosing to end the conversation there, given that not much of anything has been resolved. Perhaps it’s because I put the context as Leire being disturbed because of the whole isekai thing, and now she feels somewhat better. Also, the third character didn’t speak.

Second dialogue

Leire: Excuse me, could you offer me a moment of your time, pair of strange, elfish creatures?

Elysia Starbinder: Of course, traveler. We aren’t elfish, though. We’re Sylphs, beings of the wind. You seem distressed; how may we aid you?

Leire: I’m quite distressed. This morning I was run over by a truck, and I’ve suddenly found myself in this fantasy world full of generic fantasy races.

Elysia Starbinder: I see, that is indeed a predicament. But don’t be too quick to judge, Leire. Our world, its races and cultures, are far from generic. Each has its unique essence, like us Sylphs with our wind spirits. Perhaps some understanding could help you find your bearings here.

Leire: I didn’t intend to offend you. I can tell that you could conjure up some spell and tear me apart in seconds.

Elysia Starbinder: Tear you apart? Oh, no, you misunderstand. We Sylphs prefer to communicate and guide rather than harm. We are more likely to summon a gentle breeze to soothe your worries than a gust to tear you apart. We believe in understanding and harmony, not hostility.

Eolan: And it’s the same with my people, the Silvari. We might be misunderstood as generic elves because of our appearance, but our magic and connection to nature is unique. I’m Eolan, by the way. And while it’s true that we have the ability to manipulate plants, we don’t intend to harm unless it’s necessary for survival. Leire, you seem to have been thrust into an unfamiliar world, but perhaps there’s a reason for it. The world is vast, filled with different races and cultures, and there’s so much to learn and understand. Don’t view it as a curse, consider it a new beginning, a chance to explore and experience something beautiful.

Can’t help that fact that this Elysia person knew Leire’s name without having introduced herself. Perhaps I should have asked regular ChatGPT to come up with fantasy characters that weren’t so elfish, because their speech lacks the needed variety. Still, the third character spoke.

Third dialogue

Leire: Hi! I’m selling these fine leather jackets.

Elysia Starbinder: Leather jackets, you say? Ah, the grounded races and their strange customs. Tell me, stranger, do they make these jackets light enough to dance with the wind?

Leire: I doubt you could dance in them, but they would make you look tough, and probably give you a biker chick vibe.

Elysia Starbinder: A biker chick vibe? Now that’s a gust of fresh air! But I’m afraid I’m more of a breeze dancer. My friend Eolan, however, might be interested. He’s always been intrigued by your grounded fashions.

Leire: What do you say, Eolan guy? Are you in the market for some fresh leather jackets? Only a thousand gold coins!

Eolan: A thousand gold coins, you say? That’s quite a sum. But I’m intrigued, not so much by the jacket, but by your story. You seem out of place. Where are you from?

Leire: (tearing up) Well, I’m not from here, that much you could tell. This morning I found myself transported to this fantasy world after a regrettable mishap involving a truck and my body. I suddenly found myself broke and helpless, so I strangled some passerby and stole his leather jacket.

Eolan: (visibly taken aback) That’s…quite the tale. You’ve had a hard day, it seems. We may not have much use for leather jackets, but we can certainly offer you some company and a warm meal. You’re not alone.

Leire: I have just confessed that I’m a murderer, though. Are you okay with me being someone who could kill you in your sleep for reasons you would never find out, and that wouldn’t make sense anyway?

Elysia Starbinder: (laughs softly) Well, that’s the chaos of life, isn’t it? One moment we’re dancing with the wind, the next we might be caught in a storm. I’ve found that fear doesn’t get you far in this world. So, Leire, we’ll take our chances. Sit, share a meal, and let’s find a way to navigate this whirlwind you’ve found yourself in.

Leire: (sits down at the couple’s table) Great. I’m so hungry I could eat the both of you up! I just might!

Elysia Starbinder: (Laughing) Well, we might be a bit too breezy for your taste, Leire. But let’s not resort to cannibalism just yet. The tavern’s stew is quite delicious. Tell us more about your world. How different is it from ours?

Leire: (sighs) It has trucks, nasty machines designed to violently transport random people to fantasy worlds. Other than that, it’s pretty much your normal, average world. We also have the internet.

Elysia Starbinder: The internet, you say? Now that’s a gust I haven’t caught yet. Is it some form of wind communication in your world, Leire?

Leire: If you pass wind next to people they get the point that they should stay away from you.

Elysia Starbinder: (laughs heartily) Well, Leire, in our world we tend to use the wind a bit differently, but I suppose that method could work too. It’s fascinating how diverse the universe can be, isn’t it?

Leire: (looking at Eolan) What about you, silent fella? Want to interject with some meaningful commentary?

Elysia Starbinder: (smiling at Eolan) Eolan, why don’t you share a bit of our world too? After all, it’s not every day we get to converse with someone from another realm.

Eolan: (smiling gently, eyes glowing in the dim tavern light) I’ve always been fascinated by the stories of worlds beyond our forest. You talk of trucks and the internet, and I can’t help but wonder what other wonders and mysteries your world holds. But here, in ours, we communicate with the wind, the trees… nature itself is our internet. (leans in, curious) Tell me, Leire, in your world, do you have a way to talk to the trees?

Elysia Starbinder: (chuckles softly) Indeed, Eolan has a way with words, don’t you think, Leire? While we can’t claim to have trucks or this internet of yours, we do have our own unique wonders. For instance, the wind spirits I commune with – they whisper stories of the world, tales of the past, present, and possible futures. And trees, oh, they hold centuries of wisdom. So, in a sense, our world is full of voices, if one knows how to listen.

Leire: In our world, as long as you get high enough, you can communicate with anything. But the spirits are little shits that throw your property around, and the worst ones even sit on your chest while you’re trying to sleep. One of them wears a hat.

Eolan: (laughs gently) Spirits sitting on chests and throwing property around, sounds like a mischievous bunch! Here, the spirits are more… subtle, more connected to the natural world. They guide us, share their wisdom, and sometimes, play harmless pranks. As for the one with the hat, I’d love to meet him someday. (pauses, thinking) In your world, Leire, do you have spirits or beings connected to the trees and nature, like we do here?

Leire: (lowers her head) Sadly, no. Magic died long ago in our world, after a swarm of meteors bombarded us 12,800 years before my time, kicking off the end of the Ice Age and plunging the planet into the thousand-years-long cold spell named the Younger Dryas.

Eolan: (his eyes widening in surprise) That sounds like such a monumental event, Leire. It’s heartbreaking to hear that magic was lost in your world. I can’t even begin to imagine how that must have affected your people… and your trees. (softly) Magic is a natural part of life here in our world, as vital as the air we breathe. It’s what connects us to nature, to the trees, and to each other. (pauses, thoughtful) I wonder, is there anything in your world that has replaced that connection since the loss of magic?

Leire: Thankfully we have the internet, which allows us to sit in our underwear in front of a computer for most of the day while occasionally chuckling at fail videos.

Elysia Starbinder: (laughs gently) The internet sounds like a peculiar place, Leire. Here, our connection to the elements and spirits replaces the need for such… conveniences. But I suppose every world has its own charm. And as for spirits causing mischief, well, (smiles mischievously) let’s just say wind spirits can be quite playful too.

Leire: Playful as in you’ll end up naked and slimy?

Eolan: (laughs heartily) Not quite, Leire. Our spirits are more about a gentle breeze on a hot day or a sudden gust warning of an approaching storm. They’re playful, but in a way that reminds us of their presence and their connection to the world around us. As for ending up naked and slimy… well, that’s an adventure for another day!

That was a success. This Elysia gal couldn’t stop herself making wind-related puns. What a nice pair of fantasy people!

As I was producing these “tests,” I came across the following video of someone doing pretty much the same stuff with GPT-4 but involving Skyrim VR and its lovable characters. Check it out.

Two characters of my novel speak to each other through GPT-4

This is a continuation of the following post:

Talking to a gooey blob through GPT-4

I have gutted the original class that coordinated dialogues (relying on GPT to produce responses) into several classes and modules. To test if the new system worked properly, I set Leire against Alberto the blob, and let the artificial intelligence produce their lines of dialogue according to the context and their character summaries.

Leire and Alberto the blob are main characters in my ongoing novel We’re Fucked. Here’s its latest chapter.

Anyway, the following is the resulting dialogue in its entirety. GPT-4 wrote it from the first to the last word.

Alberto: Look, Leire, I know we’ve had our differences and I’m not exactly a sight for sore eyes right now. Hell, I’m literally a walking nightmare, but this isn’t about us. Reality as we know it is teetering on the edge. I didn’t ooze down from another dimension just for kicks, you know. I need you to get past your disdain for humanity and help me fix this mess.

Leire: Alberto, I’ve got enough on my plate without dealing with your dimension-hopping drama. Besides, you’re asking me to save a species I barely tolerate. Why should I care if reality teeters on the edge?

Alberto: Look, I get it, Leire. You’re not a fan of the species, I know. Hell, neither am I, especially after what happened. But this isn’t about whether we like them or not. It’s about the potential end of everything, including us. You think I enjoy being a gooey, stinking, eyeball-studded blob? No, I don’t! But if we don’t act, I might end up being the last thing left in existence. And trust me, that’s not a universe anyone wants to live in.

Leire: Alberto, I find your existence, in all its gooey glory, as repulsive as ever. But even more repulsive is the thought of you being the last… whatever you are… in existence. I’ll help, not for the humans, but to ensure the universe isn’t left with just… you.

Alberto: Well, I can’t argue with that, Leire. I wouldn’t wish an eternity with just me on the universe either. Let’s get to work then and put my repulsiveness to good use.

Leire: Fine, let’s get this over with. But Alberto, if I hear even one sloppy squelch from your blobby self, I’m out.

Alberto: Deal, Leire. I’ll keep my squelching to a minimum. Now let’s get this universe-saving show on the road!

Leire: Alright, Alberto. Just remember, I’m only doing this to save Arachne’s universe, not the humans. And especially not to save you. Let’s get this catastrophe sorted out so I can go back to my quiet, blob-free life.

Alberto: Fair enough, Leire. Your motivations are your own. Let’s just focus on getting this reality back on track. And, uh, thanks… in as much as a grotesque blob can thank anyone without making it weird.

Leire: Alberto, just for the record, I’m not doing this for your gratitude. Now, let’s get to work. The sooner we fix this, the sooner I can get back to my code… and away from you.

Alberto: I wouldn’t expect anything less from you, Leire. Alright, let’s crack on with it. The quicker we do this, the quicker you can get back to your code… and I can stop being a constant, squelching thorn in your side.

Leire: Alberto, if you make this any more awkward than it already is, I swear by Arachne, I’ll send you back to whatever dimension you crawled out from. Now, let’s focus. The universe won’t save itself.

The AI made Leire even more of a bitch than in the original, and the blob relatively passive even though his character summary says that he’s abrasive and sarcastic. Whatever. For the next post, now that the dialogue works with two people, I’ll set up a dialogue among four or so, to see how the system handles it.

I wasn’t going to post more tests, but the second attempt produced this short, concise dialogue:

Alberto: Look, Leire, I didn’t ooze all the way down from the fifth dimension just to argue. We have to shut down that damn contraption before it tears reality apart. I know you don’t like people, hell, I don’t like people. But this isn’t about liking people, it’s about saving them… and everything else.

Leire: Alberto, you blob of cosmic goo, I don’t give a damn about people. But… (sighs) If that contraption threatens my Jacqueline and Nairu, then we have a problem. What do you need me to do?

Alberto: First, I need you to stop calling me a blob of cosmic goo. It hurts my myriad feelings. Second, we need to get to the professor’s lab, find the contraption, and destroy it. And third, you better start caring about people, Leire, or you’ll end up just like me.

GPT-3.5-turbo decided that the dialogue had reached a natural conclusion that soon.

You can clone the repository and mess around with it through this link.

Talking to a gooey blob through GPT-4

This is a continuation of the following post:

Talking to RPG characters through GPT-4

I have spent a few hours today implementing vector databases in my repository, which would hold the memories of the agents that may end up involved in these AI-related experiments. Once that was done and I could query those databases for relevant memories, I rewrote the class that handles the dialogue between two or more agents.

To test if it worked properly, I created the vector databases for the two characters of my ongoing novel that have kept me occupied for however long the current sequence has lasted: Leire and Alberto the blob (here’s the so far latest chapter where they appear). I wrote Leire’s dialogue when I was asked, while GPT-4 acted out Alberto’s part based on his memories and character summary.

First of all, I screwed up something in the code; I was prompting GPT-3.5 to determine who was the next speaker, but at times the AI decided that the same person who had just talked should produce the next line of dialogue. Although I fixed it later, the effects of that bug are present in the following dialogue.

First attempt at player-AI dialogue

Alberto: Leire, you need to listen to me! This is no time for petty office squabbles. The reality-altering contraption is going to collapse reality if we don’t act. I know I’m a wall-wide, gooey, stinking blob now, but you knew me before… as a co-worker, as a friend. We need to work together to save the universe. So, how about it?

Leire: Friend? I was never your friend. You were the prick who kept tangling Jacqueline and I into arguments about women because you hated your ex-wife, who cheated on you and left you to rot.

Alberto: Ouch, that’s harsh, Leire. But you’re right. I was a prick. Still am, probably. But this is bigger than my past mistakes or my… gooey present. We need to put aside our differences, because if we don’t, there won’t be any reality left to argue in.

Alberto: Look, Leire, I get it. I’ve always been a pain in the ass. But right now, we’re facing an existential threat, and it’s bigger than any office drama or personal grudge. Are you really going to let the universe crumble because you can’t stand working with me?

Alberto: Hell, Leire, I don’t blame you for not wanting to work with me. I wouldn’t want to work with me either! But this isn’t about me or you, it’s about everything and everyone. We’re the only ones who understand the contraption. We’re the only ones who can fix it. So, are we going to do this or just keep arguing until there’s nothing left to argue about?

Alberto: Fine, you don’t see me as a friend. You think I’m a prick. But Leire, consider this – we have a broken contraption that threatens to implode the universe. And guess what, we’re the only ones who can fix it. Sure, we don’t have to like each other, but we have to work together. So, what do you say? Are you in or are you out?

Leire: I think I’d rather go home and snuggle up to my beloved Jacqueline, the most buxom mommy in the world.

Alberto: Leire, I understand your reluctance, but sit with this thought – If the universe implodes, there won’t be a home or a Jacqueline to go back to. We’re in a pickle and as much as it stinks, we’re the only ones who can fix it.

Leire: Holy crap, I think you are right. If the universe ends, my girlfriend will die!

Leire: I don’t want my mommy Jacqueline to die! I want to snuggle up to her forever and ever!

Alberto: That’s the spirit, Leire! We’re not just saving the universe, we’re saving Jacqueline too. Let’s get to work and make sure your eternal snuggles remain a reality.

Leire: Alright, I guess I can help you even though you have become an utterly repulsive and vomitive blob. What do I have to do again?

Alberto: Thank you, Leire. I know I’m not the easiest blob to work with. As for what needs to be done, we need to reverse engineer the contraption. We have to figure out how to stabilize the reality-altering function before it’s too late.

Leire: How about I reverse engineer your ass with a shovel?

Alberto: Ha, good one, Leire. But let’s save the shoveling for after we’ve saved the universe, okay? Right now, we need every brain cell focused on the contraption.

Leire: Well, tell me where that damned machine is located and I’ll get right to reverse engineering it or whatever.

Leire: Are you listening to me or are you just oozing?

Leire: Hey, wake up, blob!

Alberto: Easy, Leire, I’m not asleep, just… processing. The contraption is in the old lab at the sub-basement. You’ll need the access code, though, and that’s… complicated.

Alberto: Complicated because it’s not a simple number code. It’s a sequence of actions. You have to press the third button from the left, turn the red dial clockwise, then press the second button from the right. And be careful, Leire. The lab… it’s not a safe place.

Alberto: There are… things in there. Things that shouldn’t be. I can’t go with you, but I’ll be in your ear, guiding you through. Just remember, Leire, no matter how bad it gets, we’re doing this for Jacqueline. For the universe.

Alberto: And remember, don’t let your fear or disgust get the better of you. We’ve got a universe to save.

Alberto: Remember, Leire. Third button from the left, red dial clockwise, second button from the right. And whatever you see in there, stay focused. It’s for Jacqueline. It’s for the universe. And… thank you, Leire.

Alberto: Just remember, Leire. Don’t let the office politics distract you. We’re not here to win employee of the month. We’re here to save the universe. So, get your game face on and let’s do this.

Alberto: Leire, I know I’m a sight for sore eyes, but focus! Remember the sequence: third button, red dial, second button. And don’t let the horrors in the lab distract you. Do it for Jacqueline. Do it for the universe. And… thank you, Leire.

Alberto: And remember, Leire, it’s not just about saving the universe anymore. It’s about putting things right. Restoring what’s been lost. Restoring… me. So press that third button, turn the dial, press the second button, and let’s save the bloody universe!

Alberto: Leire, I won’t sugarcoat it. The lab is a hellhole. But it’s a hellhole we need to dive into if we’re going to put things right. So, remember, third button, red dial, second button. And remember, we’re not just saving the universe, we’re saving ourselves. Now, stop staring at my blobby form and let’s get to it!

Alberto: Enough dawdling, Leire! Third button, red dial, second button. Swallow your fear, ignore the stench, and let’s save the damn universe! And for the love of everything, stop staring at me like I’m some grotesque spectacle!

Leire: Alright, alright, I’m going. Stop talking to me.

GPT-4 is fantastic at making shit up when it doesn’t have enough information, which was a horrible pain before OpenAI added the option to introduce functions into the equation. For example, the AI chose to stop the dialogue right after my last utterance as Leire, thanks to the function ‘stop_dialogue’ I passed along. Now I just appreciate the AI’s creativity.

Second attempt at player-AI dialogue

Alberto: Leire, by the festering sores of my eyeballs, you need to listen to me! The professor’s contraption is on the verge of causing a dimensional collapse. You’re the only one who can stop it, dammit!

Leire: (chuckling) By the festering sores of your eyeballs! That’s a good one.

Alberto: This isn’t a bloody joke, Leire! We’re on the brink of a reality collapse! I didn’t morph into this grotesque, goo-oozing blob for fun. You need to stop the contraption before it’s too late!

Leire: I’d rather just stick around in the office and listen to you complain about the end times.

Alberto: Oh, fine! Just sit there and gawk at me. You’ll be laughing on the other side of your face when the universe implodes and I’m the only blob left!

Leire: What? Are you expecting to survive if the universe ends? How would that work?

Alberto: I don’t bloody know, Leire! I didn’t ask to become a multi-dimensional blob, did I? But apparently, in this state, I exist beyond the normal confines of space and time. So yes, I might survive. But that’s beside the point, dammit! We need to stop this from happening in the first place!

Leire: Crap, you are making enough sense. I don’t want the universe to end if that means that you would survive!

Alberto: That’s the spirit, Leire! Now, let’s get to work and stop this damn reality collapse before I become the last bloody thing left in existence!

Leire: Alright, I guess I can spare some time from occupying my overtime productively to listen to a putrid blob who keeps oozing his goddamn black goo everywhere. I hope I’m not the one who will end up cleaning up this shit.

Alberto: Well, you better get used to it, Leire! Because if we don’t stop this, the whole damn universe will be oozing with this black goo. Now, let’s cut the crap and get to work!

Leire: Wait a second, the universe will start oozing with a similar black goo? Is that a consequence of the tears ripped open in reality?

Alberto: Yes, that’s exactly it! The black goo is a byproduct of the contraption’s reality-altering process. It’s the universe’s way of trying to patch up the holes in reality. If we don’t act soon, there’ll be nothing left but black goo and blobs!

Leire: So the tar-black goo is like caulk for the holes in reality? I didn’t come up with that notion.

Alberto: No, you didn’t, Leire, but it’s a good analogy. The universe is trying to heal itself, but the goo is just a temporary fix. We need to find a way to shut down the contraption and close the tears for good!

Leire: First of all, stop shouting at me. I already have enough with your stench and the horrifying sight of your slimy bulk.

Alberto: Fine, Leire, I’ll try to keep my volume down. But we don’t have time for your disgust. We need to focus on the task at hand. Now, did you understand the severity of the situation or do I need to explain it again?

Leire: I’ll pretend that I understood, because I don’t want you to explain it to me again.

Alberto: Good, you’re getting the hang of it, Leire! Now, let’s get moving and find that damn contraption before everything turns into a black goo nightmare.

Leire: I need to finish programming a function of my Python program, though. I’ll probably spend an hour or so refactoring it as well.

Alberto: An hour?! We don’t have that kind of time, Leire! Your petty coding can wait. The universe can’t!

Leire: Petty coding? What the hell do you think pays my bills? Have some respect for people’s trades.

Alberto: Leire, I respect your work, truly. But right now, we have a bigger task at hand. The universe is on the brink of collapse. I promise, we’ll get back to your coding as soon as we save reality. Now, can we please focus on the contraption?

Leire: What contraption was that again?

Alberto: The reality-altering contraption, Leire! The one that turned me into this… this gooey nightmare! We need to find it and shut it down before it’s too late!

Leire: Well, where the hell is it?

Alberto: It’s in the professor’s old lab, hidden behind a bookshelf. Trust me, I know it sounds crazy, but I’ve been there. We need to go now, Leire!

Leire: By all means, if you can lower yourself from that wall and slink your way through the doorway, I’d love to see it. You first.

Alberto: Trust me, Leire, if I could get my blobby self off this wall and through that door, I would have done it already. But I can’t! That’s why I need your help. We need to save the universe together!

Leire: Then don’t say ‘we need to go’ if you aren’t even going to move from your position. I’m the one who will spend energy moving around while you ooze the rest of the evening on that wall.

Alberto: Look, Leire, I know this is a lot to take in, and I’m sorry I can’t physically help. But, I can guide you. I can tell you exactly where to go, what to do. I know I’m a blob, but I’m a blob with knowledge! So, are you in, or are you going to let the universe collapse?

Leire: I think I need to take a nap first. Shut up for a while.

Alberto: Fine, take your nap. But remember, every moment we waste, the universe edges closer to collapse. When you’re ready to save reality, you know where to find me. Oozing away on this wall.

Leire: Are you going to stare at me while I sleep? Can’t you sink your dozens of eyeballs in your gooey bulk?

Alberto: I’d say I’m offended, but honestly, you’re right. I’ll try to keep my eyes… submerged. Just remember, Leire, the fate of the universe rests in your hands… and my eyes. Sleep well.

Pretty cool. You can play around with the code, if you know your way around Python, GitHub and the OpenAI API, by cloning the repository: RPGs-with-LLMs. It’s far from finished, though, and you need a paid subscription to OpenAI.

Talking to RPG characters through GPT-4

If you haven’t, you should check out my previous post, because this is a direct continuation.

OpenAI added functions to the GPT API

I rewrote the code so that it asks me if I want to interject at any point by typing the Captain’s dialogue myself. In those cases, GPT-4 acted out the boss’ companions.

This time I’m always using the same “basic” prompt for GPT:

The Captain is a human male, about thirty years old. He used to live on Earth until a truck ran him over, and he ended up transported to this fantasy world; however, his teammates are unaware that the Captain came from another world. The Captain, as he likes to be called, is the bruiser of the group, and very competent with a sword. He spends most of the loot on booze and whores. He buries his despair at having ended up trapped in a fantasy world by killing as many monsters as possible. After killing hundreds of creatures, he’s discovered a disturbing side of his psyche: inflicting pain arouses him. The Captain gets along fine with Bimbo, the fire mage of the group, whom the Captain considers a good buddy. The Captain is creeped out by the grey-skinned elf Kutinaira, because she peeks at him while he pees.
Bimbo is the fire mage of the group that the Captain commands. Bimbo is a halfling. He joined the Captain’s group because he needed money, but he has a hard time adjusting to the deaths he’s seen along the way. Bimbo is brooding, and usually prefers to keep to himself. He’s planning on earning enough money to buy farmland and build a homestead in which to live isolated from the horrors of this world. He is intimidated by the irrational behavior of the Captain, but he prefers his company to that of Kutinaira, who seems single-mindedly focused on satisfying her fetishes.
Kutinaira is the water mage of the group that the Captain commands. Kutinaira is an ancient grey-skinned elf. She claims that she was once a goddess, but that she has been demoted to demi-goddess. Kutinaira is a voyeuristic pervert, and wants to jump the Captain’s bones. She suffers from obsessive-compulsive disorder, and her intrusive thoughts solely involve sex. She has lived for so long that nothing interests her any longer, and she opts to get high on sex as often as possible to forget the long-dead loved ones that she’ll never meet again.
Notes: If you need to include description or narration, put it in parentheses. Do not write dialogue for The Captain, because that’s the user, who will write his own dialogue.
Location: Dense, darkening forest, in the evening.
Context: The Captain’s group, including Bimbo and Kutinaira, have ventured into the forest to raid a goblin cave, to fulfill a contract with the Adventurer’s Guild. Somehow they’ve gotten lost; they have been walking in circles for the last hour. Orcs and similar vermin are known to prowl these parts, and the Captain wants to avoid an ambush.

First attempt at player-AI dialogue

The Captain: Neither of you can read a map? How have we survived for this long?
Bimbo: (Stares at the ground, abashed) I… I thought I knew the way, Captain. The cartographer’s symbols… they’re different from the ones I learned.
Kutinaira: (Her voice drips with sarcasm) Oh, don’t worry Captain. I could read your map. Any fool with half a brain could. I simply chose not to. (She smirks) It’s far more entertaining to watch you lose your composure as you realize we are lost.
The Captain: What the fuck are you talking about, Kutinaira? Lose my composure? Do you really wish me to lose control of myself again? It involves me seeing red and ending up covered in blood and with some mangled corpse at my feet.
Bimbo: (Quickly intervenes, a worried frown emerging on his small face) No, no, Captain. We don’t want that. It’s…It’s just a mistake, right Kutinaira?
Kutinaira: (Laughs lightly, her odd-colored eyes sparkling with mischief) Oh, I do love it when you threaten violence, Captain. It’s so… primal. But do save it for the goblins, won’t you? After all, we are still on a contract, aren’t we?
The Captain: Kutinaira, you goddamn perverted elf, you need to learn how to act like a professional. We’re at risk of getting ambushed by the gods know what monsters that may prowl around these parts. Don’t you understand the danger we are in? Tell her, Bimbo!
Bimbo: (Nods, a serious look on his face) Yes, Kutinaira. The Captain’s right. This is dangerous territory. We need to be careful, keep quiet, stay together.
Kutinaira: (Rolls her eyes, but sighs) Fine, fine… I’ll behave, Captain. I sometimes forget you humans take everything so seriously. But don’t expect me to stop enjoying myself completely. That would be terribly dull.
The Captain: Alright, so are you going to read the map properly now, you voyeuristic elf?
Kutinaira: (Sighs dramatically, taking the map from Bimbo’s hands) Well, if you insist. Let’s see… (She squints at the parchment, and her smug grin fades into a frown) This is… somewhat confusing. The symbols are so primitive.
Bimbo: (Gulps nervously, looking from the map to The Captain) I did tell you. The cartographer’s symbols are… unique. But I can try again, Captain, if you want.
The Captain: Aren’t you primitive yourself, Kutinaira? You must have lived for a thousand years. Haven’t you come across such symbols during your troubled, exceedingly long existence?
Kutinaira: (Snorts) Primitive? No, dear Captain, I am ancient, but certainly not primitive. If anything, I’d call these symbols… provincial.
Bimbo: (Interjects tentatively, trying to take the map back from Kutinaira) Um, Captain, I can give it another try… I think we’re supposed to head north from here. I think.
The Captain: Bimbo, my old pal, you are always there when I need you. Who else can I rely on? Certainly not this grey-skinned pervert. Why do we need a water mage again?
Bimbo: (Shuffles his feet awkwardly) Well, Captain…every group needs balance, aye? Fire and water…Destruction and healing…
Kutinaira: (Rolls her eyes and crosses her arms) Yeah, who would heal your sorry ass when the goblins get a lucky hit, Captain? Or got a wound that needs cleaning? Remember, water isn’t just about control. It’s about life too.
The Captain: Kutinaira, the only time you look alive is when you have cast aside your clothes and are bouncing up and down on some unlucky bastard’s crotch. I’m talking about your unbridled lust.

Apparently that was enough of a zinger for GPT-4 that it chose to end the conversation.

Second attempt at player-AI dialogue

The Captain: Neither of you can read a map? How have we survived for this long?
Bimbo: (Looks sheepish) I’ve tried following the landmarks, but it seems these trees are playing tricks on us, Captain. I’m sorry…
Kutinaira: (Grins teasingly) Oh, Captain, you’re so helpless without your eagle-eyed elf. Don’t worry. Kutinaira is here to lead you out of your confusion.
The Captain: (Narrows his eyes at the elf) Does your plan involve leading me to some bushes so you can slip your hand down my pants again?
Kutinaira: (Laughs coquettishly) I can see why you’d think that, Captain. But my intentions are purely navigation-wise this time, I promise.
Bimbo: (Shudders) Can we just keep things professional, please? We have a job to do… And it’s getting darker by the minute.
The Captain: Oh, it’s going to get way darker, Bimbo. I’m so sick of fighting my way through this fantasy life! What is even the point?
Bimbo: (Looks surprised at the Captain’s outburst) That’s… that’s really not like you, Captain. I know it’s hard, but we have to push through. We have a contract to fulfill.
Kutinaira: (Strokes the Captain’s arm) Aw, poor darling. Let Kutinaira make everything better for you later tonight. Now, let me lead us to that goblin cave and finish what we’ve started.
The Captain: (Tearing up) Finish what we’ve started. That’s right, I had stuff I wanted to finish. I never got to watch the ending of Neon Genesis Evangelion. Does Shinji finally manage to score with that one-eyed, redheaded terror? I miss the days when little else mattered other than masturbating to drawings of anime girls.
Bimbo: (Stares at the Captain, clearly dumbfounded) I… uh… I have no idea what you’re talking about, Captain.
Kutinaira: (Laughs heartily) Oh, you humans and your strange obsessions. But whatever comforts you, darling. We all have our little ways to escape. Now, shall we start moving again? I promise, no peeking or touching, okay?
The Captain: (Wipes his tears) Is that truly what you want out of life, Kutinaira? Go to some forsaken goblin cave and drown helpless goblins? Do you know they may be less perverted than you?
Kutinaira: (Winks) Well, that’s not all I want, darling, but it’s a good start. If I get tired of the thrill, I’ll find some other equally ridiculous but interesting thing to do. Life’s too long to be boring, after all.
Bimbo: (Quietly) Captain, I… I don’t like killing any more than you do. I’m just trying to survive in this cruel world. Hopefully, I’ll earn enough soon to leave all this violence behind.
The Captain: (Somber) This violence will never end. We will spend the rest of our days killing one monster after another. Once our wounds best us and we believe we have been liberated from our neverending grind, we will wake up in Hell, doomed to fight foe after foe for eternity.

GPT-4 chose to end the conversation there. I think I’ve also had enough.

Nevermind, one more.

Third attempt at player-AI dialogue

The Captain: Neither of you can read a map? How have we survived for this long?
Bimbo: (visibly flustered) I… I thought I was reading it right, Captain. But everything looks the same in this damn forest.
Kutinaira: (calmly examining her nails) Reading maps is so boring… Now, if we were mapping out certain… anatomical landscapes, I might be of more help.
Bimbo: (blushing deeply) You… you’re not helping, Kutinaira! Why can’t you be serious for once? We could be ambushed any second now!
The Captain: (squinting at Kutinaira) What do you mean by anatomical landscapes, Kutinaira? I didn’t quite get the meaning of that.
Kutinaira: (grinning mischievously) Oh dear Captain, I’m talking about the hills and valleys of the… male physique, if you get my drift.
Bimbo: (growing even redder) Stop it, Kutinaira! This isn’t the time for your… your disgusting cravings.
Kutinaira: (chuckles softly) Boring… But fine. I suppose we should find the goblin cave and get this over with.
The Captain: No, I want to hear more about your disgusting cravings. When did this lustful madness start, you ancient elf?
Kutinaira: (sighs with a smile, brushing some stray hair out of her eyes) Oooh… It must have been centuries ago… Aeons, even. So long ago, dear Captain, that I don’t quite remember exactly when. But isn’t madness just another form of sanity? One man’s madness may well be another’s ecstasy.
Bimbo: (muttering) Or a woman’s. We’re talking about you, after all.
Kutinaira: (laughs, a sound full of dark amusement) Oh, Bimbo. So pure, so untouched. Why don’t you ever join us at the brothel? Afraid of losing yourself, or simply uninterested?
Bimbo: (deepening his frown) I’m not like you two. Not everyone needs to drown their sorrows in carnal pleasure. Some of us have dreams, ambitions. I want a quiet, peaceful life. It’s all I’ve ever wanted.
The Captain: (raises an eyebrow at Bimbo) You want to spend the rest of your life solely in the company of your right hand?
Bimbo: (blushing fiercely now, stammers) I…I want more than that, Captain. I’d like to have a family, one day. Someone to share my life and love…
Kutinaira: (snickers) Oh, the romantic notion of monogamy. How…quaint.
Bimbo: (glaring at Kutinaira) It’s no less valid than your lifestyle! It’s noble and…
Kutinaira: Boring? (She looks at the Captain). But then, I suppose it’s all about variety, isn’t it, dear Captain?
Bimbo: (defensively) It’s about empathy and companionship. Something which you seem to lack altogether!
Kutinaira: (laughs) Oh Bimbo, dear Bimbo. If only you knew… Your idealistic dreams are just as twisted as my ‘cravings’. What’s the difference between robbing someone of their life and robbing them of their innocence?
Bimbo: (visibly discomfited) That’s…that’s not the same thing.
Kutinaira: Isn’t it? I add joy to the world with my interludes. You and Captain simply take. (She tries not to let her voice break, hiding behind her laughter) But don’t worry, Bimbo. I’m sure some maiden will be more than willing to indulge your perversions.
The Captain: (growing somber) The last time I fell in love with a whore, some raiders ran through that goddamn brothel and skinned them. They tortured most of those delightful whores to death.
Bimbo: (sobering up) That’s… horrific, Captain. I… I’m sorry, I didn’t know.
Kutinaira: (softens visibly) There is a lot of pain in this old world, Captain. We’ve all seen our share of it. But, it’s how we deal with it that sets us apart. You kill, Bimbo dreams, and I… well, we won’t get into that again.
Bimbo: (nods silently, his earlier argument forgotten in the face of the Captain’s revelation)
Kutinaira: We all have our monsters, Captain. Some are simply more literal than others. And in our own ways, we’re fighting them. And that, I suppose, is the best any of us can do.
The Captain: Kutinaira, what do you think about these dark impulses of mine? Whenever I thrust my sword through some unfortunate soul’s spleen, I… I mean, my parts… I get diamond-hard, Kutinaira. Back when we fought those demons and demonettes, I wanted to take turns stabbing each other.
Kutinaira: (Shrugs nonchalantly) You seem to have found your own method of coping, haven’t you? Sex and violence… they’ve been linked for eons. For some, the thrill of danger can serve as an aphrodisiac. As long as you don’t hurt anybody without their consent, I see no issue.
Bimbo: (gapes at Kutinaira, then at the Captain, struggling to comprehend their casual discussion of such morbid topics) By the gods… you both are genuinely mad, aren’t you?
Kutinaira: (laughs) Probably, Bimbo. But then again, isn’t everyone, in their own special way?
The Captain: No, nobody is as insane as the both of us. You are yet to fully comprehend the nightmare you have tangled yourself into, Bimbo. This rotten elf and I are heading straight to perdition.
Bimbo: (swallows hard, looking supremely uncomfortable) I…I see. But we’re still in this together, right? We are a team, a unit. And we depend on each other to survive. Perhaps… perhaps that’s our salvation.
Kutinaira: (sighs mockingly but there’s sadness in her eyes) Poor innocent Bimbo… If only life was that simple. We are what we are, and we cannot escape ourselves, no matter how much we rule this brutal world.
Bimbo: (whispers) I still have hope. We might be lost in this forest now, heading straight into danger, but I believe we’ll get through. Together.
Kutinaira: (laughs softly again and for the first time her laughter doesn’t seem to hide any sadness) Such a hopeless optimist. Oh, how boring life would be without you, Bimbo.
Bimbo: (tries to smile at this, but fails) I… Thank you, Kutinaira.
(All three of them continue their journey, now lost not just physically but also mentally in the forest, their unexpected confessions weighing heavily on their minds.)

Last one, honest.

Fourth attempt at player-AI dialogue

The Captain: Neither of you can read a map? How have we survived for this long?
Bimbo: Honestly, Captain, these woods ain’t like any I’ve seen. All the trees look the same. And under this dim light, I can’t make head or tail of this damn map.
Kutinaira: Oh, don’t worry dear Captain. Even if we encounter orcs, we have your strong, virile body to protect us.
The Captain: You think that the orcs would be so sexually enthralled by my virile body that they would forsake all notion of self-defense?
Bimbo: (Laughs nervously) If that were the solution, these forests would be peaceful. Orcs are stubborn, and dumb… too dumb to let go of hostility.
Kutinaira: (Purrs) You ought not to underestimate yourself, Captain. The sight of your rippling muscles would make anyone drop their weapons. Surely, surrendering to you would be a far better fate.
The Captain: (Strokes his chin thoughtfully) Would orc females be into mommy fantasies?
Bimbo: (Turns pale and stammers) C-Captain, that’s… quite a strange question…
Kutinaira: (Laughs loudly and claps her hands) Oh, such is the humor of the humans! Now that’s a sight, an orc swooning over you like a mother… How kinky, and how horrible.
The Captain: (Crosses his arms) Horrible, huh? I didn’t shame your kink that one time you came mid-battle because a minotaur was choking you.
Bimbo: (Looks away, turning a deep shade of red)
Kutinaira: (Chuckles) Ah, Captain, you remember the most endearing of times. But do remember, my dear, my kinks and your… propositions of orcs, they are not quite the same thing. Ah, the diversity of life’s pleasures… it is simply delicious!
The Captain: Kutinaira, one of these days we’re going to die for real. We’re skirting the edge of debauchery here. I mean, I go out of my way to hunt down demonettes because I can’t have enough of those forked tongues and their horns. Oh, and those glorious claws. My back looks like I’ve been flogged for years!
Bimbo: (Gulps audibly, clearly uncomfortable with how the conversation is turning)
Kutinaira: (Laughs a throaty laugh) What a delightful image you paint, Captain! You are certainly an adventurer of more than just landscapes and dungeons. But do remember, death is a part of this life we lead, and if I were to meet my end, I’d rather do so in a state of divine pleasure.
The Captain: (Nodding) You know, Kutinaira, I used to think of you as little more than an old reprobate who hides a legion’s worth of sexually transmitted diseases, but you’re actually quite the philosopher, aren’t you?
Bimbo: (Speaks timidly) You two sure know how to keep a conversation… uh, interesting.
Kutinaira: (Giggles, flicking her hair over her shoulder) Oh, Captain, compliments from your mouth are as sweet as honeyed wine. We all hide our depths beneath what we present, do we not? Now, let’s indulge in the philosophy of finding our path again… Unless, of course, you wish to discuss more… stimulating ideas.
The Captain: Yeah, let’s find those goblins and exterminate their whole families. Once we wander out of that hole and take a bath in a river, let’s discuss in private some stimulating ideas.

OpenAI added functions to the GPT API

If you love artificial intelligence and large language models (LLMs), and on top of that you know your way around programming, you may have requested access to OpenAI’s API so you could write some programs that spoke directly to GPT-3.5-turbo and GPT-4. Although the models are amazing (unfortunately so at times, because the open-source variants are a bit far from catching up), they were missing one enormous capability: you couldn’t rely on GPT to consistently return a precise answer.

To put an example of what I actually tried to do: I offered the agents in a simulation a list of locations so they would choose a single one, in order to move them there. I wanted the AI to return just the name of the location as it was listed, but I couldn’t get it to do so in a reasonable manner.

To rate the importance of character memories that were getting shoved into a vector database, I was sending GPT-4 the following prompt:

On the scale of 1 to 10, where 1 is purely mundane (e.g., brushing teeth, making bed) and 10 is extremely poignant (e.g., a break up, college acceptance), rate the likely importance of the following piece of memory.
Memory: {memory_description}
Rating: <fill in>

GPT sometimes answered “Rating: 4” or just a number. I could extract the number from those answers, but sometimes it just refused to answer properly, due to either hallucinations or the usual censorship spiel: “As an AI model, I can’t…”

However, this week OpenAI has updated the API to accept a list of functions along with the prompt. You can tell GPT to choose among the functions which one it should call if it considers it necessary, or else you can order the model to always call a function. Well, GPT doesn’t actually call the function, but it does return the name of the function called, along with a proper value for all the parameters you ask it to fill.

If you are a programmer, you already understand how wonderful that is. But if you aren’t, consider the following case: during a normal conversation with the chatbot you’ve built for yourself, you ask GPT-4 to tell you the current weather in your area. As a language model, GPT doesn’t have access to that information, but if you send it the function “get_weather_in_area” along with instructions for how to fill its parameters (for example, “area_name”, “time_of_day”, etc.), the model’s response could be something like this: “get_weather_in_area(‘Barcelona’, ‘4:00pm’)”. After you catch that response programmatically, you call the function “get_weather_in_area” (that must obviously exist in your codebase), that connects to the API of some weather service.

That means that you can already automatize pretty much everything that you do regularly on your computer, or create complex AI-based simulations like games, by involving GPT. You want the AI to decide when a character has to equip a weapon? Pass it the description of a function that does that. Want some characters to engage in a dialogue? Pass GPT a function that it should call when the model itself considers that at that point the characters should start talking to each other.

To test the new capabilities with a relatively simple example, I planned the following: I would write the description of three characters from an old free verse poem of mine, pass it to GPT, and have the model write an ongoing dialogue that involved the three of them talking in character. To know when the dialogue should end, I would append to the request a function called ‘end_dialogue’ (with no arguments) that the AI should call when necessary.

Here are some results:

Prompt to GPT-4

I am DialogueGPT. I have the responsibility of carrying on a dialogue between two or more characters until the context of the dialogue suggests that the dialogue should end.
The Captain is a human male, about thirty years old. He used to live on Earth until a truck ran him over, and he ended up transported to this fantasy world. The Captain, as he likes to be called, is the bruiser of the group, and very competent with a sword. He spends most of the loot on booze and whores. He buries his despair at having ended up trapped in a fantasy world by killing as many monsters as possible. The Captain gets along fine with Bimbo, the fire mage of the group, whom the Captain considers a good buddy. The Captain is creeped out by the grey-skinned elf Kutinaira, because she peeks at him while he pees.
Bimbo is the fire mage of the group that the Captain commands. Bimbo is a halfling. He joined the Captain’s group because he needed money, but he has a hard time adjusting to the deaths he’s seen along the way. Bimbo is brooding, and usually prefers to keep to himself.
Kutinaira is the water mage of the group that the Captain commands. Kutinaira is an ancient grey-skinned elf. She claims that she was once a goddess, but that she has been demoted to demi-goddess. Kutinaira is a voyeuristic pervert, and wants to jump the Captain’s bones.
Location: Dense, darkening forest, in the evening.
Context: The Captain’s group, including Bimbo and Kutinaira, had ventured into the forest to raid a goblin cave, to fulfill a contract with the Adventurer’s Guild. Somehow, they’ve gotten lost; they have been walking in circles for the last hour.
The Captain: Damn it all, we’re lost! Wasn’t that cave easy to find? We have to figure out what to do before night falls.

GPT-4’s response

Bimbo: I told you we should’ve marked our path, Captain. But no, “the Captain knows the way” you said. Look where that’s got us!
The Captain: Oh, put a sock in it, Bimbo! You’re not exactly helping with that attitude, are you? Now, anyone else got any bright ideas about how to find our way out of this leafy hell?
Kutinaira: I could try casting a water divination spell, Captain. Water flows towards the lowest point, so if we follow it, it’s likely we’ll find a way out. And… maybe after that, we could… you know… have some “private time”… she suggests, her eyes twinkling naughtily.
The Captain: By the gods, Kutinaira! There’s a time and place for everything, and this ain’t it. Focus on the spell, nothing else!
Kutinaira: Alright, Captain… if you insist. She then begins chanting in an ancient tongue, her grey fingers dancing in the air, drawing moisture from their surroundings to form a swirling ball of water.
Bimbo: While Kutinaira works on that, I’ll gather some firewood. We may need to set up camp if we’re going to be here for the night. He mutters and stomps off into the forest, but not before sending a small fire spell to light a nearby tree branch, casting an eerie glow around them.

For whatever reason, GPT-4 mixed narration with the dialogue lines. Next time I’ll instruct it to put it in parentheses.

Prompt to GPT-4

The Captain is a human male, about thirty years old. He used to live on Earth until a truck ran him over, and he ended up transported to this fantasy world. The Captain, as he likes to be called, is the bruiser of the group, and very competent with a sword. He spends most of the loot on booze and whores. He buries his despair at having ended up trapped in a fantasy world by killing as many monsters as possible. The Captain gets along fine with Bimbo, the fire mage of the group, whom the Captain considers a good buddy. The Captain is creeped out by the grey-skinned elf Kutinaira, because she peeks at him while he pees.
Bimbo is the fire mage of the group that the Captain commands. Bimbo is a halfling. He joined the Captain’s group because he needed money, but he has a hard time adjusting to the deaths he’s seen along the way. Bimbo is brooding, and usually prefers to keep to himself. He is intimidated by the irrational behavior of the Captain, but he prefers his company to that of Kutinaira, who seems single-mindedly focused on satisfying her fetishes.
Kutinaira is the water mage of the group that the Captain commands. Kutinaira is an ancient grey-skinned elf. She claims that she was once a goddess, but that she has been demoted to demi-goddess. Kutinaira is a voyeuristic pervert, and wants to jump the Captain’s bones. She suffers from obsessive-compulsive disorder, and her intrusive thoughts solely involve sex.
Notes: If you need to include description or narration, put it in parentheses.
Location: Dense, darkening forest, in the evening.
Context: The Captain’s group, including Bimbo and Kutinaira, have ventured into the forest to raid a goblin cave, to fulfill a contract with the Adventurer’s Guild. Somehow they’ve gotten lost; they have been walking in circles for the last hour. Orcs and similar vermin are known to prowl these parts, and the Captain wants to avoid an ambush.

The Captain: Damn it, Kutinaira! Weren’t you supposed to know how to read a map? You got us lost in a forest? You’re an elf, for fuck’s sake!

GPT-4’s response

Kutinaira: (Giggling softly while tracing the pattern of the Captain’s chest hair with her eyes) And you’re a human, Captain, killed by a truck not known in this world. When last did you see a human reading maps so nonchalantly? (Chuckles lightly) Stop being grumpy and put your muscly arm around me. It’s getting chilly…
The Captain: (shivers visibly from her proximity, steps back, and looks towards Bimbo) Bimbo, light one of your spells so we can see better. Try not to burn the forest down while you’re at it.
Bimbo: (Nods silently, reaches for his wand, and mutters an incantation. A small fireball appears at the tip of his wand, casting flickering shadows on the dense foliage, eerily silhouetting the party.) Let’s be quick… I don’t like the look of this place.
The Captain: Good job, Bimbo. Let’s keep moving. (Turns toward Kutinaira) Don’t get any closer to me. Keep your eyes open for enemies instead.
Kutinaira: (Rolls her eyes but grins, straying her gaze down towards the Captain’s pants) Oh, I’ll keep my eyes open alright… I’ll watch out for those… ‘enemies’.

GPT-4 dutifully obeyed that whole thing about putting narration in parentheses. Let’s try some more.

Prompt to GPT-4

The Captain is a human male, about thirty years old. He used to live on Earth until a truck ran him over, and he ended up transported to this fantasy world; however, his teammates are unaware that the Captain came from another world. The Captain, as he likes to be called, is the bruiser of the group, and very competent with a sword. He spends most of the loot on booze and whores. He buries his despair at having ended up trapped in a fantasy world by killing as many monsters as possible. After killing hundreds of creatures, he’s discovered a disturbing side of his psyche: inflicting pain arouses him. The Captain gets along fine with Bimbo, the fire mage of the group, whom the Captain considers a good buddy. The Captain is creeped out by the grey-skinned elf Kutinaira, because she peeks at him while he pees.
Bimbo is the fire mage of the group that the Captain commands. Bimbo is a halfling. He joined the Captain’s group because he needed money, but he has a hard time adjusting to the deaths he’s seen along the way. Bimbo is brooding, and usually prefers to keep to himself. He’s planning on earning enough money to buy farmland and build a homestead in which to live isolated from the horrors of this world. He is intimidated by the irrational behavior of the Captain, but he prefers his company to that of Kutinaira, who seems single-mindedly focused on satisfying her fetishes.
Kutinaira is the water mage of the group that the Captain commands. Kutinaira is an ancient grey-skinned elf. She claims that she was once a goddess, but that she has been demoted to demi-goddess. Kutinaira is a voyeuristic pervert, and wants to jump the Captain’s bones. She suffers from obsessive-compulsive disorder, and her intrusive thoughts solely involve sex. She has lived for so long that nothing interests her any longer, and she opts to get high on sex as often as possible to forget the long-dead loved ones that she’ll never meet again.
Notes: If you need to include description or narration, put it in parentheses.
Location: Dense, darkening forest, in the evening.
Context: The Captain’s group, including Bimbo and Kutinaira, have ventured into the forest to raid a goblin cave, to fulfill a contract with the Adventurer’s Guild. Somehow they’ve gotten lost; they have been walking in circles for the last hour. Orcs and similar vermin are known to prowl these parts, and the Captain wants to avoid an ambush.

The Captain: Neither of you can read a map? How have we survived for this long?

GPT-4’s response

Bimbo: I’m not the one who usually handles the map, remember? You know I can barely make out anything in this dwindling light. And your way of identifying landmarks is to slash them with your sword. How am I supposed to remember which tree you’ve marked?
Kutinaira: Well, I can read a map just fine. But reading a map is less exciting than watching your muscular arm flex when you swing that big sword of yours, Captain. Why don’t you play with your sword some more? I’m sure Bimbo wouldn’t mind a short break from walking.
The Captain: That’s enough, Kutinaira! If you’d pay more attention to navigation and less to your twisted desires, perhaps we wouldn’t be lost right now. Bimbo, give her the map. Let’s see if she can do any better.
Bimbo: Alright, here you go Kutinaira. Just remember, we’re supposed to be looking for the goblin cave, not following the sound of running water. I know how you love… water.
Kutinaira: Oh, Bimbo, always so full of judgment! But you’re not wrong about my love for water. (grinning) Let’s see… Oh, it appears we’ve made a simple mistake. We should have taken a left at the gnarly oak. We can head back that way if you want, Captain. Or we could stop and set up camp for the night? I vote for the latter.
The Captain: No, Kutinaira, we’re not making camp. Not yet. Let’s turn back and head towards the goblin cave. We’ve got a job to do. Bimbo, stay close, and keep your eyes open; we don’t need any nasty surprises.
Bimbo: Alright, Captain. I’ll keep watch. Kutinaira, could you focus on the map and directions, and less on the Captain’s backside? We’d all appreciate it.
(With that, the group heads back towards the gnarly oak, continuing their mission deeper into the dark forest.)

I’m quite sure you could now write a fully-fledged single-player RPG, even if just console-based, with GPT acting as the dungeon master and voicing the other characters.

I wrote a continuation to this post. Check it out.