Sanity Check
- Skye Winters

- Nov 25
- 8 min read
This week, I reflect on what I’ve done so far and describe some conclusions I’ve made regarding story generation systems from a content standpoint.
Second-Year Review
With the end of my Autumn Semester of my second year of graduate school, I’ve decided to take a step back and reflect on my journey thus far. As such, I’ve gone through the process of redefining what my core research focus is and what the steps will be to achieve it. Below is a more detailed breakdown of my conclusions.
Key Terms
To begin with, I figure it is worth redefining some of the key terms that I have been using in order to clarify what I mean.
NPC: Any “character that is not under the control of a player within an environment” – Silva and Ribeiro (2021)
Believability: An NPC “who seems lifelike, whose actions make sense, who allows you to suspend disbelief” (Mateas 1999)
Immersion: “A level of engagement in an activity that overtakes the senses such that the participant experiences time slippage, a feeling of being completely surrounded by a different reality, and a lessened awareness of the real environment” (Eddy 2021)
Thesis Overview
As may have been hinted at above, I’ve now begun shifting my end goal being an increase in overall players immersion. The reason being is that immersion is a well understood concept in game design allowing for a more understandable objective to industry practitioners. As such, my new core research question is:
How can research through design inform the creation of narrative and gameplay systems that increase NPC Believability to strengthen player immersion when playing video games?
In particular, some of the research gaps that I’ve identified in my field are as follows:
No formalized method of evaluating the concept of “believability” beyond simply asking “On a scale 1-10, how believable is X?”
Very little work connecting the concepts of social systems to social believability
Literature synthesises connecting together the foundational works of the field of social simulators and believability
Very little work demonstrating the implementations of theoretical models for believability, gossip systems, and story generation systems
Thus I’ve come up with the following sub goals:
Creation of a validated criteria for Believability
Creation of multiple systems predicted to increase believability
Validation of believability systems
A quantitative analysis of effectiveness in increasing believability, immersion, game enjoyability
A released commercial game utilizing design systems to act as a case study of system
A released open-source version of the system that can be utilized by future game designers / researchers
A design journal documenting rational for design decisions to act as guide for determining what can / cannot be included
A series of literature synthesises connecting together foundational works of the field
With the overarching goal of the
Creation and Implementation of Narrative and/or Gameplay Systems that increase NPC Believability to strengthen player immersion in video games
Current Progress
Already, my work has begun to enfold. I’ve thus far managed to:
Develop a potential metric for believability
Determine the ten essential components for believability based off the writings of numerous scholars (shown below)
Create a simple prototype for a gossip system
Create a simple prototype for a story generation system
Maintain a weekly design journal documenting my progress and reasoning

Timeline
Overall, with three semesters remaining, I’ve developed a rough timeline of the key milestones I’ll need to hit. Below is both a linear timeline of the main thesis project of Project Conversation as well as a google sheets breakdown of all four components that will make up my thesis journey.

Next Steps
My next steps will be:
Determine the game that will be used for project conversation
Finish writing my IRB for my believability study and submit it for review
Begin looking at conference to tailor my work towards
Research Through Design
System Diagrams
So for this week, I was advised to take some time to document
How my systems work
How my systems interact with believability
As a result I created the following visualizations of my believability systems



Story Engine
Regarding the story engine, this week I focused primarily on the content pool of available actions and responses to said actions. Through my work, I ended up coming to a conclusion about the content generation problem with Story Engines. The following section analyzes it from a mathematical standpoint (sorry but my comp sci is showing) but the end conclusion was that story engines can explode if not approached in a generalizable way. Thus a core goal needs to be to maximize the amount of uses a given action can apply to or maximize the amount of actions before a player notices that the content is repeating. Additionally, a similar conclusion can be reached about gossip MadLib formats.
Math:
Let n be the number of npcs in a game
Let p be a given personality
Let np be the subset of n for npcs with personality p
Let a be the number of possible actions that can be taken
Let ap be the number of actions that can be taken by an npc with personality p
Let u be the number total number of unique actions a player can remember having occurred
Let e be the number of extra variations you need to allow for some variation for looping
Thus if you say your game has each npc take tn total actions and you want a player to not notice that two npcs took the same action, you would need
min (t, u) < sum(ap) for each p where sum(ap) is all the actions an npc can take given their personality
However, this could then result in two npcs taking the same action, which may or not be okay. For simplicity however, let's say this is the case since we will need to further complicate it in a second. Now lets say each npc can have a relationship r with their target and that actions now have required relationships. Thus you would need
min (t, u) < sum(apr) for each p and r where sum(apr) is all the actions belonging to the npc that can be used on the target given the current relationship, r
Thus if your game has 3 relationship types (like project conversation), you would need 3 actions per personality per action taken in the game. So if your game has 3 personalities and 4 actions, you would need (3 3 4) = 36 actions. However, as can be observed, this is a linear equation that can quickly grow out of proportion. Thus a solution needs to be developed to minimize u or to allow for sum(apr) to result in an equally quickly growing equation.
For example, if you instead require each npc to be able to have two personalities, then the equation for actions becomes
0.5 p r * t = ap
since each npc can have twice as many actions to draw from. Thus in our above example you would only need 18 actions. Additional gains can be acquired by having generic actions which can work for any relationship type and / or personality type since each action would be worth multiple points (for example, if you made every action generic you would only need t actions). However, doing so too often would lessen the personality strength of an npc since they are only doing generic actions.
Therefore, a potential solution would be to make a method of inserting personality and relationship details onto a given action in a generalizable way. For example, if you could have a converter that takes a given action and turns it to one matching a personality you could get the same effect for less effort if you can phrase that action in multiple ways such as
Replace “talked” with “debating”, “friendly discussed”, “joked” you could then write the following actions:
{subject} {talked} with {target}
{subject} {talked} with the barkeeper
{subject} {talked} with a group of their friends
Additional gains could be made by making other aspects be replaceable such as adding location to each action so that it adds more variations.
However, a potential caveat to this system is the proximity between two npcs with respect to the player being able to view said actions. For example, if two npcs were standing next to each other and performing the same animation in sync with one another, a player would be able to then notice that the animation is the same and have their suspension of disbelief broken due to noticing the underlying system. The same also applies with the message based system I am using since if two npcs take the same action, it becomes very apparent when seen in a social media app side by side. Thus, depending on the proximity, the equation may also be increased for the total number of actions since each npc needs to be able to take their own unique action.
Overall, through analysis of creating this system the following takeaways arise:
Adding more specificity to a given action linearly increases the total amount of actions needed
A potential solution for making these types of systems is to either
Decrease the memorability of actions to prevent players from remembering them (which may make it worse overall)
Increase the reusability of actions in ways that players don’t notice
A way to increase reusability may be to add ways of creating variations based off context in consistent ways
GDC and Other Conference Talks
Breathing Life Into 'The Last of Us': Part I and II
This talk provides a solid overview of how to create what the speakers describe as murmurations. Essentially, it's their solution to the design problem of how to create audio that can match motion matching and be dynamic to reflect player state. More specifically, how could they create a realistic breathing system to show the level of exhaustion of a player.
(D) None of the Above: Interactive Dialogue Without Multiple Choice
In this talk, Marleigh Norton (2010) provides an overview of four different potential alternate systems that can be used for dialogue. In particular, she discusses
A small talk system where you would choose a response based off its risk level and then complete a rhythm game
An eavesdropping system where you’re in a situation where multiple NPCs are conversing and you need to choose who you would listen to
An emotion based system where instead of selecting based off a potential dialogue response, you select an emotion that you want to convey
A context based system where you would respond by choosing when to interject rather than what you want to interject
Several interesting ideas and a good reminder to think outside the box with these systems.
Game Narrative Summit: Making Player Choices Feel like They Matter in Your Narrative
In this talk, the creators of Gloomshollow present their view of the types of narrative feedback that can be presented to a player. For each type they then provided advantages, challenges, and tips. The types are as follows:
Cascade: A choice that permanently alters the world / game that it takes place (these are like your major branching decisions)
Callbacks: A reference to something that happened earlier in the story specific to a player choice without interrupting the flow of the narrative (these would be like acknowledging the player had said asked about someone earlier)
Heuristics: A problem solving technique to use to find a good enough solution (such as a romance meter)
Overall, they suggest that all three should be used and that you should always be asking when this narrative benefits from interactivity.
The Wrap Up
Overall, I feel like I’m at a good point in my journey and am excited to see what comes next!
Work Cited
Crawford, C. (2004). Chris Crawford on interactive storytelling. New Riders Games.
Johnson-Bey, S., Liao, K., Shields, S., Hwang, D., Wardrip-Fruin, N., Mateas, M., & Melcer, E. (2025). Building Visual Novels with Social Simulation and Storylets. In J. T. Murray & M. C. Reyes (Eds.), Interactive Storytelling (Vol. 15468, pp. 145–161). Springer Nature Switzerland. https://doi.org/10.1007/978-3-031-78450-7_9
Lankoski, P., & Holopainen, J. (2018). Game design research: An introduction to theory & practice. ETC Press.
Treanor, M., McCoy, J., & Sullivan, A. (2021). A Framework for Playable Social Dialogue. Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, 12(1), 232–238. https://doi.org/10.1609/aiide.v12i1.12885

Comments