Interdimensional Prophets (Game Dev) #3


The core loop of this game/experiment of mine consists of the encounter system. As the team of explorers (consisting of four members for balancing reasons, like in Arkham Horror LCG) ventures through strange new worlds, they will face encounters (psychological tests, team struggles) in the following circumstances: either the player ends the turn deliberately, or he/she moves the team to a different tile. That will trigger the code to shuffle the potentially very, very large list of encounters loaded from a TOML file, and then a complex function will determine which will be the encounter that the team of explorers will face based on numerous conditions.

The following is an example encounter from the TOML file, that gets loaded to the game on start.

encounters.toml

[[encounters]]

identifier = 1

title = “A New World”

image_path = “/resources/encounters/1.png”

description = “We have made it. Nobody believed we would manage to create a portal to a multiverse, but here we are, in this strange new world. I take a deep breath as I gaze at the field of grass.”

duration_in_turns = 1

encounter_condition = 1

psychological_test_identifier = 1

[[encounter_conditions]]

identifier = 1

requirements_biome_identifiers = [1]

requirements_feature_identifiers = [

    { AnyRequired = [] },

    { AllRequired = [] },

    { AnyExcluded = [] },

]

requirements_encounter_identifiers = [

    { AnyPreviousEncounter = [] },

    { AllPreviousEncounters = [] },

    { AnyExcludedEncounter = [] },

]

requirements_trait_identifiers = [

    { AnyRequired = [] },

    { AllRequired = [] },

    { AnyExcluded = [] },

]

team_size_requirements = [

    { MinimumTeamSize = 1 },

    { MaximumTeamSize = 6 },

]

team_overall_mental_health_requirements = [

    { MinimumTeamOverallMentalHealth = 0.0 },

    { MaximumTeamOverallMentalHealth = 100.0 },

]

team_overall_health_requirements = [

    { MinimumTeamOverallHealth = 0.0 },

    { MaximumTeamOverallHealth = 100.0 },

]

time_spent_in_alternate_earth_requirements = [

    { MinimumTimeSpentInAlternateEarth = 0 },

    { MaximumTimeSpentInAlternateEarth = 10 },

]

Each encounter is, so far, associated with a psychological test, but soon enough they will be associated with a team struggle as well. The most important part of an encounter is the conditions for it to trigger, which can be the following:

  • The current biome is any of the required (obligatory: all encounters should be attached to at least one biome).
  • The features associated with this exploration zone (ex. NativeInhabitants, Irradiated) are compatible with the any/all/excluded specifications.
  • The list of previous encounters is compatible with the any/all/excluded specifications. This should allow for story-like threads of narrative that depend on previous “chapters” having been passed.
  • The combined list of character traits (from all team members) is compatible with the any/all/required specifications.
  • The team size should be between the set values, if any.
  • The team’s overall mental health should be between the set values, if any.
  • The team’s overall health should be between the set values, if any.
  • The time spent wandering in the current exploration zone should be between the set values, if any.

This allows, for example, for encounters with mythical beasts that only inhabit certain biomes, maybe during some lunar condition (which would be a feature), and only when the team of explorers has trackers (which would be a character trait). Also, when the team’s mental health is deteriorating and their overall health is becoming dangerous, encounters about the team stopping to rest and heal could pop up.

When an encounter triggers, the user is presented with the following window:

I’m not an interface man. I need to figure out which background color would be preferable to plain black, but white and such other clear options seem too grating to me. Anyway, the photo on the upper left is the one associated with the encounter. The row of photo IDs under that is the team of explorers, starting with the player. Regarding text, there’s the title, a short description (thankfully you can program text wrapping). A blue text that you can barely distinguish from here announces that there’s a psychological test associated with the encounter, and that it tests the following psychological dimensions: cognitive abilities and interpersonal skills. Then the values of those psychological dimensions are displayed for each team member.

In the lower right you get a reminder of what biome you are currently in (in this case, a temperate grassland). The fancy button to its left is the one to trigger the psychological test. I have already written the code to gather all the results, which will appear under the description of the encounter.

Thank you Midjourney for the effortless AI images. Regarding GPT-4, I make a point of bothering it by presenting my code and asking “this represents an Outcome given [game concept]. Can you offer any suggestions and improvements?” The AI is eager to point out what I’ve done wrong, with no regard to my feelings. As such, it has proven to be an invaluable tool while programming. Also, when I suspect there’s more to squeeze out of a concept (such as psychological tests, team struggles, outcomes, etc.), I ask GPT-4 if it can come up with more features for that concept, and more often than not, it provides very valuable insight.

Anyway, I have been feeling guilty because I’m mainly a writer and I have neglected my novel for a week. I think that for the foreseeable future I will write one day, program the next. Programming is very addictive for the obsessive mind I was born with, as long as you don’t end up in some ditch of which you don’t know how to climb out.

Interdimensional Prophets (Game Dev) #2


Although I had managed to develop the code to load environments (now called exploration zones) from a Lua file, to pick one and then create a map using the biomes that the exploration zone allowed, the process of loading relatively simple data from Lua annoyed me. It seemed way too complex for this day and age, even though GPT-4 wrote most of the code helped me. I asked the AI for preferable alternatives, and it suggested either JSON files or TOML ones. TOML seemed fancier and better somehow (I have already forgotten the reasons), so I have spent some hours going through the somewhat grueling process of destroying the basic code that worked, to improve the system.

Thankfully, deserializing TOML files to Rust instances is trivial thanks to the “serde” crate. In addition, it had worried me that the process of adding a new type of biome or a feature (some aspect of the exploration zones, like bad weather) required me adding a new element to the corresponding enum, which meant that no user of the game (meaning me for the most part) would be able to add new biomes nor features without access to the code. Obviously that’s terrible for modding; the holy grail of modding consists on having every piece of game data exposed to be fondled by the greasy fingers of the users.

Behold the TOML files that now store all the game data for biomes, features of an exploration zone, and the exploration zones themselves (obviously the data itself is made of examples):

biomes.TOML

[[biome]]

identifier = “temperate_grassland”

name = “Temperate Grassland”

description = “A biome characterized by rolling grasslands and few trees.”

[[biome]]

identifier = “sky_islands”

name = “Sky Islands”

description = “A biome consisting of floating islands high in the sky.”

[[biome]]

identifier = “alpine”

name = “Alpine”

description = “A biome consisting of high land and some pines.”

features.TOML

[[features]]

identifier = “haunted”

name = “Haunted”

description = “a supernatural presence, allowing encounters with ghosts.”

[[features]]

identifier = “ancient_ruins”

name = “Ancient Ruins”

description = “contains the remains of an ancient civilization, with hidden treasures and traps.”

[[features]]

identifier = “unstable_geology”

name = “Unstable Geology”

description = “frequent earthquakes and volcanic activity, posing geological hazards for the team.”

[[features]]

identifier = “radioactive”

name = “Radioactive”

description = “high levels of radiation, potentially causing health problems and mutating local flora and fauna.”

exploration_zones.TOML

[[exploration_zones]]

identifier = “zone_1”

name = “Verdant Valley”

description = “A lush valley with dense forests, clear rivers, and abundant wildlife.”

allowed_biomes = [“temperate_forest”, “river”, “temperate_grassland”]

features = [“rich_flora”, “native_inhabitants”]

[[exploration_zones]]

identifier = “zone_2”

name = “Frozen Tundra”

description = “A vast, frozen wasteland with treacherous ice and snow, and sparse vegetation.”

allowed_biomes = [“tundra”, “ice”, “glacier”]

features = [“extreme_cold”, “limited_visibility”]

From now on, as long as the identifier of a biome written in the exploration_zones TOML file matches with an entry in the biomes TOML file, the game will work properly and use that biome (and its image). If not, the game will burn to the ground (in Rust’s terms, it will panic).

Now I will move on the encounter system, which is composed of various steps:

-A very complex determination of whether or not any given encounter will trigger (can depend on certain biomes and/or features and/or previous encounters having been seen and/or the team members having certain traits and/or the team size being between a certain range and/or the team’s average mental health being between a certain range and/or the team’s overall health being between a certain range and/or the time spent exploring being between a certain range. That code is already written and is the most unit tested area of the game so far (thanks to GPT-4).

-If an encounter triggers, then each team member should go through a number of psychological tests. For example, having walking octopi wanting to drink your blood may test their self-regulation and/or coping skills. The outcomes are on a range of thresholds, so worse outcomes should cause worse consequences, and so on. Those will also end up as TOML files.

-After all the psychological tests pass, there should be one or more team tests. The way these tests work, the best one that GPT-4 and I have come up with, is adding beneficial character traits * their individual weight against negative character traits * their weight, and applying outcomes based on a range like in the case of the psych tests.

If that psychological test thing followed by team test reminds you of something, yes, I was inspired by the Arkham Horror LCG, my favorite card game. In that game, before your turn starts, you are forced to deal with some nefarious encounter (it’s always unnerving to see that card coming from the deck) that you have to face with your abilities. The encounter can make you lose sanity and/or health, or who knows what other horrors. Afterwards you can act with your cards, and other players can get involved if you share a location with them. Hence my notion of a round of psychological tests followed by a team test/struggle.

I won’t go through the trouble of creating a anything visual for this encounter system until it works well in the console and is well-tested. The encounter system seems like the toughest nut to crack of this game, and I’m for one excited to face how to implement it.

If you, whoever the hell you are reading this, can come up with some idea for this game, please tell me. If it’s good, I’ll implement it. Otherwise I’ll yell at you and call you stupid.

Interdimensional Prophets (Game Dev) #1


A couple of years ago I wrote a wild (and long) free verse poem about some unhinged scientist who was leading teams of unfortunate people through an interdimensional portal to explore alternate Earths. This is the link to that poem (it requires a rewrite, though, particularly to add periods). I was fascinated by the potential for stories that such a concept included. I played around with the notion of developing some game around it, but my experience with programming solo was more often than not the same: I tried to implement some general game concept only to find myself hitting my head against an implementation detail that had seemed easy to solve. Eventually I discarded all my grand programming ideas. One of them involved Python, and it was the language itself that ended up pissing me off.

Enter GPT-4, the most advanced AI that I have ever interacted with. Turns out that GPT-4 is great at programming in Rust. Literally, you tell that damn thing to write unit tests for your code, and it does. I remain constantly amazed by its insight. In a couple of days, I cobbled this stuff together:

This is the beginning of the “base” screen, set on regular Earth, where the team will manage its staff, handle their health and psychological problems, and, more importantly, delve into alternate Earths through the portal. A description gives the general notion of the alternate Earth on the other side of the portal: “A bizarre, otherworldly environment dominated by massive fungi, and strange creatures.”

This is the map view during exploration. The icon represents the actual position of the team. I didn’t mention it before, but the person on the upper left side is the player (for now generated randomly), who will lead the team of explorers to face the dangers alongside them.

I already have many, many different environments written and illustrated, thanks to the back-and-forth between GPT-4 and myself, and Midjourney for the images. A bigger example, the Stormy Desert biome:

All these environments are written in a Lua file, so they are intrinsically moddable (so far, as long as the Biomes and the environment Features are coded in game). Here’s an example of a single environment in the file environments.lua:

    Highland = {

        description = “A high-altitude environment consisting of rolling hills, plateaus, and mountains, with a mix of grasslands, forests, and rocky terrain.”,

        allowed_biomes = {

            “Alpine”,

            “TemperateGrassland”,

            “Steppe”,

            “TemperateDeciduousForest”,

            “Taiga”,

            “Tundra”,

            “SkyIslands”,

            “AncientRuins”,

        },

        features = {

            “HighAltitude”,

            “Mountains”,

            “Avalanches”,

            “RockSlides”,

            “MountainClimbing”,

            “TreacherousPaths”,

            “LimitedResources”,

            “Isolation”,

            “ExtremeCold”,

            “Frostbite”,

            “Hypothermia”,

            “NativeInhabitants”,

            “ResourceCompetition”,

            “TerritorialConflicts”,

            “CaveSystems”,

            “HiddenCoves”,

            “LostCivilizations”,

            “AncientRelics”,

        }

    },

The combination of biomes and features will determine which types of encounters the team will face. That’s a whole different system I’m developing, and that I intend to be fully moddable as well.

I wanted each team member to be as psychologically complex as possible. Each encounter will test one or more psychological dimensions of their personality. For example, if they come across walking octopi that try to drink the team members’ blood (which happens in the poem), certain psychological dimensions will be tested.

For now, all psychological dimensions that GPT-4 and I have discovered (mostly the AI, though) are Interpersonal Skills, Cognitive Abilities, Self-Regulation, Coping Skills, Drive, Cross-Cultural Skills, and Mental Strain. For example, a single psychological test of that encounter could test a team member’s Coping Skills, and if he fails, his Anxiety psychological criterion could increase permanently. They could also lose health, acquire traits, etc. The notion is that when Mental Strain reaches 100, they are committed to a mental institution. They may quit some time earlier, though. The health system is very barebones at the moment (literally just a 0.0 to 100.0 value), but I want to create a whole system for that as well, including permanent injuries.

The grouping of psychological criterion to psychological dimensions is the following:

  • Interpersonal Skills: Extraversion, Agreeableness, Social Skills, Empathy, Conflict Resolution, Teamwork
  • Drive: Conscientiousness, Leadership, Risk-Taking, Time Management
  • Self-Regulation: Emotional Stability, Emotional Intelligence, Self-Esteem, Self-Awareness
  • Cognitive Abilities: Openness to Experience, Problem-Solving, Creativity, Situational Awareness, Decision-Making
  • Coping Skills: Resilience, Coping Strategies, Adaptability
  • Cross-Cultural Skills: Cultural Competence
  • Mental Strain: Anxiety, Depression, Stress

Right now, when a new team member is created, every psychological criterion is assigned a number from 0.0 to 100.0 on a normal distribution. GPT-4 even wrote psychological reports from the perspective of the team leader. The following is such a report generated in-game for the team leader herself:

Some experience working with others and collaborating towards shared goals. They may need additional support in order to effectively build relationships with others and resolve conflicts.
Average cognitive abilities and is capable of problem solving and critical thinking. They may need additional support or training in order to tackle more complex problems and situations.
Struggles to manage their emotions and reactions in high-pressure situations or when encountering unexpected events. They may be prone to panic or irrational behavior, making them a potential liability to any team exploring alternate Earths. They may require significant support and training to effectively manage their emotions and reactions in these situations.
Some coping skills and is able to manage stressful situations to some extent. However, they may require additional support or guidance in order to effectively deal with unexpected events or extremely stressful situations that may arise while exploring alternate Earths.
Some motivation and drive to achieve their goals, but may struggle to maintain focus and commitment when faced with obstacles. They may require additional support and encouragement to stay on track and fulfill their responsibilities on an exploration team.
Solid experience with cross-cultural communication and collaboration. They are able to adapt their communication style and approach to effectively engage with people from different cultures and backgrounds. They may benefit from additional training or exposure to further enhance their cross-cultural skills.
The candidate’s mental health is poor, and they may be highly vulnerable to the extreme stress and potential trauma of exploring alternate Earths. It would be inadvisable to consider them for such a high-risk job without extensive support and preparation.

As you can figure out, I’m quite pumped up about developing this shit, to the extent that I haven’t written any fiction in two days (that’s a lot for me).

Please, if you can come up with any ideas, I’d love to hear and implement them. One of the worst parts of programming for me is having built a careful architecture only to realize that a better idea will require a whole restructuring. I’ve already had to do that twice for the encounter system. So I want the best ideas first.

GPT-4 writes a therapy session with a teenage vampire

I was thinking of an old series of free verse poems I wrote, titled Alma: a Successful Case Study. I gave GPT-4, which is a cutting-edge multimodal large language model (an AI), the following prompt:

Write a dialogue between a clueless therapist and a teenage girl who has recently discovered she is a vampire, and who is struggling with her urge for blood.

The following is the unedited response of the artificial intelligence.


Therapist: Hello, Sarah. It’s nice to meet you. I understand that you’ve been experiencing some struggles recently. Why don’t you tell me about them?

Sarah: Well, it’s going to sound crazy, but I’ve discovered that I’m, uh, a vampire. I know it’s hard to believe, but it’s true. And I’m having a hard time dealing with my cravings for blood.

Therapist: (smiling) Oh, you have quite an imagination, Sarah. That’s an interesting way to express your feelings. But, let’s try to focus on the real issues that you’re facing. Perhaps there are some underlying emotions causing these thoughts?

Sarah: No, seriously. I am a vampire. I’ve even transformed into a bat and everything. And the cravings are getting unbearable. It’s not just my imagination.

Therapist: Alright, Sarah. I’m willing to hear you out. So, tell me more about these cravings. When did they start? How do they make you feel?

Sarah: They started about a month ago, after I was bitten by this strange-looking creature. The cravings make me feel anxious, like I’m losing control over myself. I don’t want to hurt anyone, but the urge for blood is so strong.

Therapist: It sounds like you’re experiencing intense emotions, and you’ve chosen to express them through this vampire metaphor. Perhaps these cravings represent a deeper issue in your life that you’re trying to confront?

Sarah: You’re not getting it. I am LITERALLY a vampire! I’ve been sneaking out at night to feed on animals, so I don’t hurt anyone. I need help controlling these urges!

Therapist: (pausing) Well, Sarah, I want to help you. Let’s approach this from a different angle. Instead of focusing on the vampire aspect, let’s talk about ways to cope with these feelings of anxiety and the need for control.

Sarah: (frustrated) Fine. But just remember, I’m trying to control my vampire instincts here.

Therapist: Okay, I understand. Have you tried any relaxation techniques or meditation to help with your anxiety?

Sarah: Yes, but they don’t seem to help much. The cravings are still there, and it’s getting harder to resist.

Therapist: I can see that you’re feeling quite overwhelmed by this. Let’s explore some other coping mechanisms. Have you considered engaging in physical activities, like running or martial arts, to help channel your energy and potentially curb your cravings?

Sarah: I’ve tried running, but it doesn’t seem to do much. I haven’t tried martial arts though. I guess I could give that a shot. But what if it doesn’t work?

Therapist: It’s important to remember that coping strategies might not have an immediate effect, and it could take some time to see results. If martial arts doesn’t work for you, we can explore other options. In the meantime, are there any safe outlets for your cravings that won’t harm others or yourself?

Sarah: Well, I’ve been feeding on animals like I mentioned before. But I feel guilty about it, and I’m scared of getting caught.

Therapist: I understand your concerns. Perhaps you can find a less harmful alternative to satisfy your cravings, such as trying a blood substitute or using a similar-tasting food to trick your mind. It’s worth experimenting with different options to see if any of them help.

Sarah: I guess I can try that. I just hope I find something that works before I lose control completely.

Therapist: I believe in your ability to find a solution, Sarah. Remember, I’m here to support you through this process. We can continue to explore coping strategies and alternatives together. And, if at any point you feel like you’re at risk of losing control, don’t hesitate to reach out to me or someone you trust for help.

Sarah: (fidgeting) Sorry, I’m just feeling really on edge right now. It’s like my whole body is screaming for blood. I don’t know how much longer I can hold out.

Therapist: I can see that this is a very challenging time for you, Sarah. Let’s try a grounding technique to help you regain some control over your emotions. Focus on your breathing and take slow, deep breaths. As you do this, try to become aware of your body and how it feels in this moment.

Sarah: (breathing deeply) Okay, I’m trying… but it’s still really hard.

Therapist: It’s okay, Sarah. Let’s keep going. Now, while you continue to breathe slowly, I want you to focus on your senses. Name five things you can see in the room, four things you can touch, three things you can hear, two things you can smell, and one thing you can taste.

Sarah: (still breathing deeply) Alright. I see a painting, a bookshelf, a clock, a plant, and a lamp. I can touch the chair, the rug, my clothes, and my hair. I can hear the ticking of the clock, your voice, and the hum of the air conditioner. I can smell the scent of the air freshener and the faint smell of coffee. And I can taste the mint from my gum.

Therapist: Good job, Sarah. By engaging your senses, you’re helping to ground yourself in the present moment. How are you feeling now?

Sarah: I still have the urge, but it feels a little less overwhelming for the moment.

Therapist: I’m glad to hear that. It’s important to have a variety of coping strategies to help you manage your emotions and urges. Remember, you can use grounding techniques like this one whenever you feel overwhelmed. We can also continue to explore other methods to help you gain control over your vampire instincts.

Sarah: Thank you for trying to understand and help me. I know it’s hard to believe, but I really appreciate it. I’ll keep using these techniques and hopefully find something that works.

Therapist: You’re welcome, Sarah. Remember that I’m here to support you, and we’ll work together to find the best strategies for your situation. Don’t hesitate to reach out if you need help or if you want to discuss anything further.


To me GPT-4 always sounds like it’s worried that it might offend somebody. Such people piss me off, even if they are artificial. But the AI can produce interesting output as long as you don’t push its boundaries.

AI news #1


I tend to look up videos that are related to AI, so I figured that I could write about some of the stuff that has interested me on that subject.

First of all, I got back into Fallout 4 a couple of weeks ago, thanks to the Wabbajack modlist “Life in the Ruins.” I was never a big fan of that game; they screwed up the progression right at the beginning, the writing was crap because they guy they had in charge believed that gamers didn’t want more complexity than that (even though games like The Witcher 3 proved him wrong), etc. However, in comparison with the crap that is getting released these days, Fallout 4 is a masterpiece, particularly when the huge mod “Sim Settlements 2” is involved.

Anyway, Eleven Labs and their fantastic AI-generated voices have reached that game. One of the main issues with Fallout 4 regarding modding was that the protagonists (male and female) were voiced, and people could at the most cut up and stitch together parts of sentences that the voice actors had said, because having a silent protagonist when the rest of the game is voiced was too conspicuous, so relatively few quest mods have been made for Fallout 4. However, some people are integrating Eleven Labs AI voices (which I have used to create audiochapters for my current novel) into that game. That allows them to add many more dialogue choices and improve the RPG-ness of the game.

Skyrim was released about eleven years ago, but its modding community has only grown recently. Its protagonists had always been silent, but some modders have made voice packs using characters from other games thanks to Eleven Labs, in case you want, for example, to play Skyrim as Geralt of Rivia (from the game, of course).

One of the holy grails of gaming is having unscripted AI characters. The following demo includes characters that reason and speak autonomously thanks to neural networks (similar to GPT-4, I’m guessing, if not using that through its API). As shown in the video, the player speaks to the game characters directly through his microphone, who speak back with AI-generated voices (which aren’t remotely as good as Eleven Labs’, though).

As the last video, check out the robot below. It recognizes voice commands, it processes them through GPT-4, replies with a competent synthetic voice, and most impressive of all, it acts out the commands it has decided upon. Amazing.

An example of GPT-4 as a programming aide

Here’s a little example of the value of GPT-4 (the most advanced multimodal large language model, meaning a state-of-the-art set of neural networks) as a programming consultant. After a long back and forth between the AI and myself, I was trying to refactor the determination of what was the tile type of a map at a certain hex coordinate, but the safety measures (greatly appreciated in general) of Rust were alerting me that I was trying to borrow a variable from a scope that was about to disappear, which is illegal. Such borrowing issues make refactoring in Rust vastly more thorny than in any other language of which I’m aware, but it also prevents memory bugs. I couldn’t remember how to solve it (I’m quite rusty myself), so I just asked GPT-4. Here’s the exchange:

Programming along with GPT-4 is like being able to rely on a sometimes forgetful veteran who will always stop whatever it is doing to help you. Given that it’s very unlikely that programming will trigger OpenAI’s content moderation systems, I don’t see why you wouldn’t use GPT-4 constantly while programming (as long as you can afford the subscription).

GPT-4 writes a therapy session with Alberto the blob

I wanted to know how well the most advanced (publically available) multimodal large language model does when you tell it to program some stuff in Rust (the results were quite impressive, although it made some mistakes). Then I thought the following: what if I feed GPT-4 a detailed description of Alberto the blob from my ongoing novel We’re Fucked (link to the latest chapter) and tell the AI to write a therapy session for the character?

The following text is the result. Note: I didn’t change ANYTHING from what the artificial intelligence shot back at me.


Therapist: (sitting down) Welcome to our session, Alberto. I’m glad you could make it. Please, make yourself comfortable.

Alberto: (oozing into the room) Comfortable? Ha! Look at me. Comfort’s a foreign concept for a blob like me.

Therapist: I can understand that might be difficult, but let’s try to focus on why you’re here today. Can you tell me a little bit about what’s been troubling you lately?

Alberto: (sighing) Fine, but don’t say I didn’t warn you. It all started when my wife cheated on me and divorced me. Can you believe that? Me! It turned me into this bitter, cranky mess that you see before you. And then, I disappeared from my job and became… this.

Therapist: That sounds like an incredibly difficult experience, Alberto. How has your relationship with your former co-workers, Leire and Jacqueline, changed since your transformation?

Alberto: (rolling dozens of eyes) Oh, they don’t even recognize me anymore. Not that I blame them. But I need Leire’s help to save the universe. She’s the only one who can, but I don’t know how to convince her. It’s not like we were close before, and now with me being a blob and all… (sighs)

Therapist: It sounds like you’re struggling with feelings of rejection and isolation. And it’s understandable that you’d be hesitant to reach out to Leire, given your appearance and your fears. But let’s focus on your goal of convincing Leire to save the universe. Can you share more about why it’s important to you?

Alberto: (mutters) It’s not like I care about the universe or anything. I just… I don’t want to see it all go to waste, you know? I may be an abrasive, foul-mouthed blob, but I’m not a monster. If Leire can save it, then maybe, just maybe, there’s hope for me too.

Therapist: That’s a very admirable goal, Alberto. It shows that despite your challenges, you still have a sense of purpose and empathy. Now, let’s discuss some strategies to approach Leire and work on your communication. It’s important to be honest and vulnerable when sharing your feelings and asking for help.

Alberto: (sarcastically) Great, vulnerability, just what I need. But I guess I’ve got nothing to lose at this point. Fine, let’s do it.

Therapist: I understand that it may feel daunting, but taking this step could be the beginning of a healing journey for you, Alberto. We’ll work together on how to express your feelings and needs to Leire in a way that she can understand and empathize with. Remember, we’re here to support you through this process.

Alberto: (grumbling) Yeah, yeah. Let’s get this over with. But I’m warning you, I’m not exactly a people-pleasing blob.

Therapist: That’s okay, Alberto. We’re not aiming for perfection, but progress. Let’s start by exploring what you want to say to Leire and how you can express it in a way that’s honest, respectful, and empathetic. We’ll take it one step at a time. Let’s begin by thinking about your relationship with Leire prior to your transformation. What was it like? Were there any positive aspects or moments you shared?

Alberto: (shrugs) We were just co-workers, really. I mean, we had a few laughs here and there. She always seemed to tolerate my sarcasm better than others, I guess.

Therapist: That’s a good start. It seems like there was a foundation of understanding between you two. When you approach Leire, it might be helpful to remind her of those shared moments, so she can remember the person behind the blob. Now, let’s think about what you want to say to her regarding your request for help. What are your main concerns?

Alberto: (sighs) I don’t know, I just want her to understand that the universe is in danger and that she’s the only one who can save it. But how do I say that without sounding like a lunatic or a desperate blob?

Therapist: It’s important to express your concerns with sincerity and honesty. You could start by acknowledging your current appearance and how it might make her feel, and then share your genuine fears for the universe. You could say something like, “Leire, I know my appearance is startling, and I understand if you’re hesitant to listen to me. But I’m here because I genuinely believe that you have the power to save the universe, and I’m concerned about what might happen if you don’t.”

Alberto: (grumbles) Yeah, I guess that doesn’t sound too crazy. But what if she still rejects me or thinks I’m just a pathetic blob trying to get attention?

Therapist: That’s a valid concern, Alberto. But remember, you can’t control how others react to your message. All you can do is present your thoughts and feelings as genuinely as possible. If she doesn’t respond positively, we can always explore other strategies to help you reach your goal.

Alberto: (sighs) Fine. I’ll give it a shot, but I’m not making any promises. This vulnerability thing is new to me.

Therapist: That’s completely understandable. Change and growth can be difficult, but they’re necessary for healing. Remember, we’re here to support you in this journey, Alberto. And as you practice vulnerability and open communication, you’ll find that it becomes easier and more rewarding.

Alberto: (nods) Alright, I’ll try. For the sake of the universe, and maybe even for myself. Thanks, Doc.

Therapist: You’re welcome, Alberto. I’m proud of you for taking these steps, and I’m confident that with time and effort, you’ll start to see improvements in your relationships and personal well-being. Remember, we’re here to help you along the way.


GPT-4 is a castrated AI (safe for work, ideologically compromised), so it seems to me an unsuitable partner for the actual process of writing a story, but it could help for peripheral character work, or coming up with ideas.

EDIT: I fed the AI the description and psychological state of my current protagonist, Leire, and it told me that it violated the content policies.