On Writing: Plot point generation #2

You can check out all my posts on writing through this link.

A story is made out of meaningful stuff that happens. Each unit of meaningful stuff that happens is often referred to as a plot point. Here’s how to come up with them, before you consider fitting them into a structure.

  • Could weather create delays and accidents? Could it obscure vision, or make someone weak or faint?
  • What setting in your story could make some character to feel sad, fearful, nostalgic, angry, guilty, etc.? Think about the plot points that could be derived from that.
  • Find in your setting specific places that have extra significance, or places where events recur. To make a place iconic, make something big happen there.
  • Prior to the climax of the novel, find, brainstorm, try to apply six points at which your protagonist can demonstrate some heroic quality.
  • How will you show what your characters feel? What will express their thoughts? What will reveal their inner struggles?
  • Have your characters do things only they would do. Every character action represents that character. So when they act, have them act in a manner unique to them. Use every character action in your story to sell us on the unique nature of that character.
  • What events would reveal character?
  • Create stakes-raising dilemmas that give your protagonists opportunities to use their unique abilities. Let that explain why this character succeeded where others failed.
  • Can you allow characters to do the things that characters with different labels (protagonist, villain, etc.) would do?
  • How would a reflection character show the protagonist why and maybe how he can make it through the door, when he might slip back, have fear and doubt, second-guess himself?
  • Figure out plot points in which the allies are there for your hero, stick by him, speak truth in love, reflect back what the hero needs to see in order to understand and move one step closer to his goal?
  • In what plot point could the most “ally” character oppose your character regarding her goal?
  • Can you find a moment for each of your main characters to want the opposite of their hearts’ desire? Can you make it bigger, more emotional?
  • Where can you have characters say something other than what they mean (subtext)? Hint at something secret?
  • Can you find/add five places in your novel where a character acts rashly, inconsistently, contrary?
  • Imagine a moment when your protagonist is moved, unsettled or disturbed. This might occur when he’s facing a difficult choice, needing something badly, suffering a setback or surprise, having a self-realization, learning something shocking, or feeling in any way overwhelmed. Write down all the emotions inherent in this moment, both obvious and hidden.
  • What’s the biggest way in which your protagonist can act out? What can she destroy? Whom can she attack? What truthful thing can she say? What will shock others in the story?
  • Let your characters make mistakes: protagonists, antagonists, and secondary characters.
  • What events would push someone’s buttons relative to worldview and personal belief systems?
  • What would a character’s belief/past experience cause him to do?
  • What secrets does a character have, what lies he has told, to others and even to himself, that might cause plot point issues?
  • Think of plot points that would suggest the main character will get just more entrenched in his flaw, making it impossible to change, and others which suggest the possibility of changing.
  • What key moment in your novel showcases the primary reflection character/ally’s support?
  • What is your protagonist good at doing? Throw them the opposite of what they’re best at and make them deal with it.
  • Think up a moment in your novel in which the hero and the antagonist agree on something.
  • Think of a moment in which the antagonist is actually vulnerable and / or empathetic.
  • What is the primary antagonist and what key moment showcases the big conflict and issue between them?
  • The impact character may or may not be actively trying to get the protagonist to see that Truth, but he’s going to be there at crucial moments in the story to help the protagonist see the error of his ways. He has the answers the protagonist is looking for (even though the protagonist won’t know that at the beginning of the story), and those answers are going to end up being pivotal to the protagonist’s ability to conquer the antagonist and the external conflict in his quest for his story goal.
  • A character can’t change without something that impacts him by consistently and convincingly conflicting with his belief in the Lie.
  • What events could show off or amplify the inner journey?
  • Start by determining self-revelation, at the end of the story, then go back to the beginning and figure out the hero’s need and desire.
  • Brainstorm actions that prove the transformation.
  • Plant a redemptive action, the actions which could solve MC’s “fatal flaw”, and have the other person fail to do it.
  • Think of a way of showing a character’s change by putting him in a similar situation but acting differently, even to the point of disagreeing with his previous action in similar circumstances.
  • What event could bring about change for your protagonist?
  • What event could bring about change for a secondary character?
  • Throughout the story, the protagonist and his blind faith in his Lie are going to keep running smack into the impact character’s Truth. The protagonist may want to be left in peace with his Lie, but the impact character’s persistent presence keeps churning up the protagonist’s awareness of the Truth–and creating internal conflict.

On Writing: Plot point generation #1

You can check out all my posts on writing through this link.

A story is made out of meaningful stuff that happens. Each unit of meaningful stuff that happens is often referred to as a plot point. Here’s how to come up with them, before you consider fitting them into a structure.

  • Imagine great scenes. See them in your mind and justify them later. Who are these people? Why are they doing what they are doing?
  • Take a stack of fifty or so index cards and start imagining scenes. Whatever picture comes into your head. When something vivid comes to mind, jolt the idea on a card. The notation may be as brief as: bar fight with biker.
  • Imagine memorable moments playing out on the big screen. What scenes would audiences talk about for years to come?
  • What are the things that frighten you? What would you usually try to avoid?
  • What events would provoke the greatest uncertainty in the reader?
  • How does the setting impact the characters, and viceversa?
  • Think of new events as actions taken by your hero or opponent.
  • Create a situation in which your exceptional protagonist is in over their head, feels unprepared, is simply lost, or in any other way must admit to themselves that they’re not perfect.
  • Think of what scenes you need in order to tell the story you have in mind.
  • What would the other major characters be up to, unseen?
  • Imagine scenes that add contrast to the motivations of characters, focusing on their differences regarding the actions, decisions, and attitudes. For example, two characters want to get control of an artifact, but while one character tries to negotiate their way to it, someone else intends to go in guns blazing.
  • Imagine moments in which your characters will change, be forced to make a choice, be pushed into despair.
  • Which plot points would be possible in this concept but almost in none others?
  • Picture a movie poster for your story. What one key scene is pictured on it that embodies your concept?
  • What iconic scene can you write in your story that will showcase the essence of the premise? How can you make it even bigger, more intense?
  • What events would hurt the important characters’ prospects?
  • Figure out what they want most, then put the things they fear most in their way.
  • Think about active events the villain might cause to thwart the good guys’ goals.
  • Can you put the object of desire of the scene’s driver in the room and have another character try to hide it?
  • What plot point could make a character rethink their decisions and goals?
  • What events would force the protagonist to deal with their inner issues?
  • What events would force a character to confront and deal with the issue that keeps them from achieving their goal, the thing that’s holding them back?
  • Brainstorm situations that force a character to confront their flaw.
  • What scenes would expose a character’s deepest secrets and most guarded flaws?
  • What scenes would force a character to confront their demons?
  • Use your action scenes to challenge your hero’s fatal flaw. This way, it’s not just about the action, but how that action affects your hero.
  • What scenes would show that a character is trying to overcome their flaws?
  • Figure out plot points in which an antagonist attacks a weakness, forcing that character to deal with it.
  • Which would be examples of how a character’s flaw limits their effectiveness?
  • What kind of events would test a character’s, particularly the protagonist’s, flaw to the max, in order to open their eyes?
  • Imagine an event in which a main character discovers, realizes, or is shown their inner need.

Neural narratives in Python #30

I recommend you to check out the previous parts if you don’t know what this “neural narratives” thing is about. In short, I wrote in Python a system to have multi-character conversations with large language models (like Llama 3.1), in which the characters are isolated in terms of memories and bios, so no leakage to other participants. Here’s the GitHub repo, that now even features a proper readme.

In the last part, our protagonist, having been sent by a ditzy goddess into a scorching desert world, or at least a deserty part of a fantasy world, deals with an imposing half-person, half-scorpion guardian, who offers him sanctuary in their safe house as long as the protagonist passes an initiation rite.

That was one of the funnest interactions I’ve had through this app. I’ve got a soft spot for that incompetent goddess. And the scene ends with the driving lesson of isekai: sometimes we must lose one world entirely to find our true place in another.

Although a week ago I programmed the ability for the user to add participants to an ongoing dialogue, I hadn’t programmed the feature to remove participants from one. It was necessary to do so given the circumstances; otherwise, the AI might have chosen to speak as Seraphina even though she was supposed to be gone. In addition, when a dialogue ends, a summary is generated and added as a memory to the participants. In the case of the participants leaving mid-conversation, it wouldn’t make sense to know what happened after they left, so now, for each character leaving mid-convo, the summary of the dialogue up to that point is added to their memories.

My app has a section called Story Hub that allows the user to generate story concepts, to help them figure out where the story may be going. They could already generate plot blueprints, scenarios, goals, dilemmas, and plot twists. Thanks to the massive refactoring I did of the whole width of story concepts in the app, adding new ones was easy.

I’ve also involved the facts added by the player in many prompts to the AI, including dialogue. Facts are supposed to represent well-known information about the world, such as legends, properties of animals or sentient races, etc. For example, one of the generated pieces of lore named the twin moons of this world, so I added that information to the facts. My biggest worry is the context window of some large language models: my favorite right now, Magnum 72B, has a tiny context of 16,000 tokens, and the more you add to memories and facts, the more they eat of the context, until you’re forced to switch to a subpar model.

That’s all for now. Stay whimsical.

Neural narratives in Python #5

I recommend you to check out the previous parts if you don’t know what this “neural narratives” thing is about. In short, I wrote in Python a system to have multi-character conversations with large language models (like Llama 3.1), in which the characters are isolated in terms of memories and bios, so no leakage to other participants like in Mantella. Here’s the GitHub repo.

Today I’ve been busy fully redesigning my web app, now that it includes plenty of interesting features.

Index page:

What it allows you to do is pretty self-explanatory, which is good. The relationship between the places is World > Region > Area > Location, and each of them have specific behavior in-game.

Story hub:

This one requires some explanation: at any point, the user can demand the system to generate story concepts, interesting situations, and interesting dilemmas. The large language model (the AI) will take into account all the info about the character, his or her followers, and their memories, to generate concepts, interesting situations and dilemmas that may fit what’s been going on.

Here are some examples of the interesting dilemmas the system can generate. Each “post-it” can be removed by just clicking on it. And now that I think about it, maybe I should make them yellow too.

Characters hub:

The player character front and center. The character images are generated by courtesy of an OpenAI model, that is provided a special prompt crafted from the character’s information.

Character generation:

Originally I told the AI to generate whatever characters it pleased based on the world, region, area and possibly location, but it ended up creating very similar characters: for example, in a police station, it would create a succession of serious detectives. So I programmed an intermediate step in which the AI creates character generation guidelines focused on coming up with a breadth of possible characters for that place. Of course, it also respects genre.

Character memories:

After each chat (and some other activities), a summary is created of what just took place, and is stored in the memories of all the participants. Those memories are loaded in most activities, and they color the characters’ dialogues and decisions. You can also generate self-reflections: the character, according to their personality, meditates upon their experiences, and writes a sort of journal entry about it, that goes into their memories to color their behavior and dialogue further. And of course, they can self-reflect about their self-reflections.

Location hub:

Lots of stuff to do on this page: generate a description of the place, find a new location among the existing ones matching the genre, visit found locations, and travel to other areas. You can also pick up followers here, or dismiss them.

The page for goal resolution is relatively simple so far, and I developed it just this morning, but it does something quite interesting: given a goal, you ask the large language model to write a narrative of the attempt to fulfill that goal, to decide whether or not the goal was achieved, and then a paragraph or two of the resolution, which gets saved as a memory.

This came about when the owner of a brothel, a succubus, suggested that I should travel to some nearby caves in search of treasure. That sounded interesting, but I would have needed to roleplay the entire thing through dialogues, including the possible obstacles found along the way. So I programmed in a system that figures it out by itself. In the future, I will probably program in a system to resolve explicit confrontations between characters or some opponent, like a bunch of wolves or something.

Now for the meat of this stuff, the chat system:

At any place, the user can choose to chat with any combination of characters present at the location, from those loitering around to the player’s followers. Multi-char convos is the first thing I made sure to program properly.

Chat:

All the NPCs speak in character, according to their personal info, their memories, and the ongoing conversation. There’s no leakage of information from other characters, because personal memories aren’t shared. If it weren’t because the calls to the LLM can be slow according to the whims of those servers, I would call the current system perfect.

So, what’s in the future? I plan on programming a system to generate goals, like it generates concepts, interesting dilemmas and interesting situations. Those goals will be loaded in a page, in case you want to attempt at resolving them. I also want to program in a way of swapping player characters easily. To deepen the simulation, I also want to include the notion of character health, and some way of altering the characters’ equipment and health after the actions have been resolved. At some point, I may rely on some local audio-generation server like XTTS to generate voices for each NPC utterance. That would be cool.

This whole thing has been a lot of fun. If I didn’t gravitate so much toward using it to engage in smut, I would have probably posted plenty of the stuff I’ve produced through the system.

EDIT: I fed this post to the Deep Dive pair, and they produced the following podcast (AI-generated):