<<nobr>>
<<timed 0.5s t8n>>
I love folk horror when it teaches me something about a people or place outside my body of knowledge. Nothing makes me more eager to learn than being an outsider to the history or mythology of a story. I've noticed protagonists in folk horror reflect that knowledge gap, either as
<span id="link-outsider">
<<link "an outsider">>
<<run $('#outsider-text').slideToggle(200)>>
<<run $('#link-outsider a').toggleClass('active-link')>>
<</link>>
</span>
or
<span id="link-expert">
<<link "an expert.">>
<<run $('#expert-text').slideToggle(200)>>
<<run $('#link-expert a').toggleClass('active-link')>>
<</link>>
</span>
<div id="outsider-text" class="expansion-box" style="display:none;">
<strong>The Outsider:</strong> This protagonist unintentionally collides with the old ways. In a video game, this is the player-character who most accurately reflects the player's state: they know nothing and the risk they face comes from their lack of specific knowledge. This is the protagonist of my game, //Cannibal Court//, who wakes up in the Canadian arctic archipelago, surrounded by masked cultists who demand the player prove they are human.
<br><br>
I wanted to give the player a blank slate character, but sometimes the outsider comes to these dark places with a clear intention, like Curdin in Hidden Field's //Mundaun// (2021), returning for his grandfather's funeral, or Karen searching for her son in Antagonist's //Through the Woods// (2016). Their mission compels them to push through a place where they are clearly unwelcome.
</div>
<div id="expert-text" class="expansion-box" style="display:none;">
<strong>The Expert:</strong> They are entangled with the traditions that now threaten a community or family, and they are called upon for their expertise. In games, this translates to a player character who arrives ready to confront the horror, or at least disprove the local beliefs.
<br><br>
//Carimara: Beneath the Forlorn Limbs// (2025) from Bastinus Rex, is an interesting example of this, where the player is a kind of roaming paranormal investigator who must uncover the reason for a haunting at an isolated cottage. In Cloak and Dagger's //The Excavation of Hob's Barrow// (2022), we control a skeptical scholar digging into the secrets of a superstitious English village. The expert may succeed, like in //Carimara//, or collapse in the face of the sublime evil, like in //Hob's Barrow//.
</div>
<</timed>>
<<timed 1.5s t8n>>
<br>
Both must contend with a community knitted together by something sinister. The protagonist is always at risk—either because they know nothing, or because they think their knowledge will protect them.
<</timed>>
<<timed 2.5s t8n>>
<br>
The specific knowledge that I need to understand a story can be based on the <<linkappend "real history of a place, which gives its horror more potency.">> <span class="revealed-text">
<br><br>
Red Candle Games' //Detention// (2017) has to happen during the Taiwanese White Terror in order for the weight of the betrayals and authoritarian violence to devastate the player. IMGN.PRO's //Kholat// (2015) takes a real historical event as a launching point, similar to my own //Cannibal Court//, and then speculates into the horrific from there.</span><</linkappend>>
<</timed>>
<<timed 3.5s t8n>>
<br>
Folk horror based on specific mythologies, without referencing specific historical events, also gives a game distinctness. Mythology and history are usually interwoven, anyways: history becomes folklore, and <<linkappend "folklore becomes a part of a community's history.">><span class="revealed-text">
<br><br>
//Through the Woods// and Dimfrost's //Bramble: The Mountain King// (2023) both rely on regional folklore and biomes to ground their games. //Mundaun// can't be separated from its specific cultural representation of a remote Alpine valley, given the language, mythology and landscape it employs.</span><</linkappend>>
<</timed>>
<<timed 4.5s t8n>>
<br>
That's not to say that the generic is inferior. I think horror stories set in places that could be any sleepy suburb or isolated forest have their own punch: in those stories, we can project ourselves to those places. It could have happened anywhere; it could happen to you.
<</timed>>
<<timed 5.5s t8n>>
<br>
But there's another problem. //Cannibal Court// has a specific setting, but unlike these other games, it is a systemic puzzle game, not a linear story. In systemic games, players expect high agency. They want to change the world I've painstakingly researched and created.
Balancing specificity with systemic game design was a challenge unto itself.
<</timed>>
<<timed 7.5s t8n>>
<br>[[THE SPECIFIC AND THE SYSTEMIC]]
<br>[[KNOWLEDGE THE OUTSIDER LACKS]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
I built //Cannibal Court// around three game design pillars. Each pillar creates a knowledge gap for the player when they begin the game.
<</timed>>
<br>
<<timed 1.5s t8n>>
1. <<linkappend "<b>A claustrophobic community of cultists.</b>">>
<br><br>
<span class="revealed-text">
The cultists consist of families, lovers, rivals, children, the elderly... this is a settlement, a village of cultists, who have relations and histories with each other that impacts them as much as the cult doctrines do.
</span>
<</linkappend>>
<br><br>
<b>Knowledge gap:</b> The player must untangle these toxic kinship webs to understand the power dynamics of the cultists.
<br><br>
2. <<linkappend "<b>The twisted delight of being a master manipulator.</b>">>
<br><br>
<span class="revealed-text">
You’re going to defeat the cult with the same tools of manipulation that the cult elders use to keep the community under their control: gathering information about each person’s weaknesses, biases and beliefs.
</span>
<</linkappend>>
<br><br>
<b>Knowledge gap:</b> The player must learn each cultist's individual goals and personality to figure out how to persuade them.
<br><br>
3. <<linkappend "<b>The chilling realism that comes from the specificity of setting.</b>">>
<br><br>
<span class="revealed-text">
The cult feels realistic and credible. Their trek and settlement of an unmapped island in James Bay is as geographically accurate as possible: it’s reflected in their clothing, their beliefs, their names, the visual setting and way of life.
</span>
<</linkappend>>
<br><br>
<b>Knowledge gap:</b> The player must learn a little real Canadian history to understand the cult's beliefs and history and outwit them.
<</timed>>
<br>
<<timed 3.5s t8n>>
This setup actually works very well for folk horror, where the protagonist is often an <<linkappend "ignorant outsider.">>
<br>
<span class="revealed-text">
<br>
This kind of protagonist can be seen in classics like //The Wicker Man (1973)//, //Alison's Birthday (1981)//, to modern takes like //Midsommar (2019)// and //Hokum (2026)//.
<br><br>
The protagonist commits quasi-religious faux pas, ignores warnings, fails to understand the true reason for their invitation, and above all, they fail to see how all the small, uneasy interactions accumulate into a diabolical ritual. The community does not explicitly hide what they are, beyond being remote or isolated, but their practice is so opaque that the protagonist's ignorance dooms them.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 4.5s t8n>>
The player, like the protagonist in folk horror media, can choose many modes of approach, from being dismissive to morbidly curious. In //Cannibal Court//, the manner in which the player speaks and conducts themselves impacts what information is revealed to them.
<</timed>>
<br>
<<timed 5.5s t8n>>
But what if the player knows something of the real history of the area? Because I've chosen specific history to weave in, this is a real possibility.
<</timed>>
<br>
<<timed 6.5s t8n>>
Games don't usually acknowledge a player's external knowledge. If you haven't learned something in-game, if a boolean doesn't return true for a knowledge state-check, then the game assumes you don't know it. I think players accept this because it is common in game design, not because it's ideal.
<</timed>>
<br>
<<timed 7.5s t8n>>
I wanted to let the player use their prior knowledge as a form of agency because it deeply resonates with the Mastermind Manipulator and the Setting Specificity pillar. And if the player doesn't know the history, the game has to teach them everything they don't know so they can feel those pillars. Gaining knowledge is the main form of progression in //Cannibal Court//.
<</timed>>
<br>
<<timed 8.5s t8n>>
I have to teach real life history without boring the player.
<</timed>>
<<timed 10.0s t8n>>
<br>[[TEACHING SPECIFICITY WITHOUT OVERWHELMING]]
<br>[[BENEFITS OF EXTERNAL KNOWLEDGE]]
<</timed>>
<</nobr>>
<<nobr>>
<<timed 0.5s t8n>>
The atomic unit of //Cannibal Court// is the concept of a <<linkappend "<mark>phrase</mark>.">><br><br>//(Word might be a more accurate term, but at the time I designed the system, I had the idea that some atoms could be multi-word units.)<</linkappend>>
<</timed>>
<br>
<<timed 1.5s t8n>>
There are also <mark>dialogue-snippets</mark>.
<br>
These are <<linkappend "modular lines of dialogue with a lot of metadata.">> I found <a href="https://emshort.blog/2019/11/29/storylets-you-want-them/" target="_blank" rel="noopener"> Emily Short's blog on interactive fiction ⧉ </a> an invaluable resource for thinking through these problems. The idea of dialogue snippets was inspired by the post on "storylets".<</linkappend>>
Phrases form the basis of a dialogue-snippet's metadata. The player uses their acquired phrases to activate dialogue.
<</timed>>
<br>
<<timed 2.5s t8n>>
Essentially, the player <<linkappend "plays a phrase to begin a turn.">> If they play the phrase //"help"// from their inventory, they are then given three dialogue-snippets to choose from:
<br>
<br> //"I don't need your help."//
<br>// "Please help me!"//
<br> //"You're lucky I'm here to help you."//
<br><br><<linkappend "The player plays one, which contains its own metadata.">> <br><br>The NPCs are polled for the best <mark>response</mark>, which is a type of dialogue-snippet, and once the best match is found, an NPC juror responds.
<br><br><<linkappend "But the NPC's dialogue-snippet also contains phrases that the NPC uses and that the player can collect in their <mark>phrase inventory</mark>.">><br><br>This activates the whole system again, seeking responses from other NPCs. It's sort of like the intricate, rules-based bark system in games like Naughty Dog's //The Last of Us (2013)//, except the barks trigger more barks.
<</linkappend>>
<</linkappend>>
<</linkappend>>
<</timed>>
<br>
<<timed 3.5s t8n>>
The phrases that a player chooses affect the opportunity space for moving each juror's <mark>persuasion meter</mark>.
<br><br>
Phrases impact everything: a player's dialogue options, their ability to answer fact-based interrogation events, and phrases reflect the state of a player's knowledge generally.
<</timed>>
<br>
<<timed 4.5s t8n>>
But there is a limited number of turns in each trial. Thus, the player can use a limited number of phrases each run. The limitation helps force a distinct experience: some players may replay a level just to experience all content, but most players will probably play a level just enough times to pass and then move on, leaving a lot of content untouched.
<</timed>>
<br>
<<timed 5.5s t8n>>
To allow players to persuade the jury in the specific way they want, I had to be willing to let players miss out on content. I think this is a very painful thing for game developers to do, because it feels like you've "wasted" content if every player doesn't get to see it (easily).
<</timed>>
<br>
<<timed 6.5s t8n>>
<<stampText>>But absence of an experience is also a part of player agency. <</stampText>>
<</timed>>
<<timed 9.5s t8n>>
<br>[[SPECIFICITY IN CANNIBAL COURT (SPECIFICALLY)]]
<br> [[KNOWLEDGE THE OUTSIDER LACKS]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
An interesting side effect of player agency colliding with a specific world is that eventually, the player expects their decisions to change the world you've researched and crafted.
<</timed>>
<br>
<<timed 1.5s t8n>>
Which raises the question: how much can a player change a place before it stops being the place that the game was originally about?
<</timed>>
<br>
<<timed 2.5s t8n>>
I understand the frustration of a player who is presented choices and then feels that those choices didn't matter in the end, but I also don't want the world to become subordinate to the player. Too much "gamification" of a real historical event feels kind of <<cycle $"adjectives" once>>
<<option "tasteless.">>
<<option "disrespectful.">>
<<option "vulgar.">>
<<option "tacky.">>
<<option "... weird, I guess?">>
<</cycle>>
<</timed>>
<br>
<<timed 3.5s t8n>>
One way I've overcome that is by basing the story on many tragic naval voyages in the Canadian north <<linkappend "instead of a single event.">>
<br><br>
<span class="revealed-text">
//(Although I haven't watched it yet, because I don't want to pollute my creative ideation process right now, I understand that the first season of AMC's //The Terror (2018)// takes the lost expedition of Sir John Franklin as a launch point for a full on supernatural horror story. Once //Cannibal Court// is shipped, I'll watch it because I'm curious how they handle the balance of real history with fictionalized horror.)//
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 4.5s t8n>>
The cult's beliefs are also unreliable; they are not perfect arbitrators of history themselves, and as in any group, power struggles would have encouraged the cult to reinterpret history as it suited them. This allays the need for 100% accuracy.
<</timed>>
<br>
<<timed 5.5s t8n>>
There's another benefit too. Because the specific history is being filtered through a
<<linkappend "mesh as malleable as a cult's beliefs...">>
<span class="emphasized-typewriter">
<<type 40ms>>
<br>
... then the player manipulates the filter, not the substance.
<</type>>
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 7.5s t8n>>
So the player can have extraordinary influence on a cult's interpretation of history without affecting the real history. The player acting out their agency affects the way the cult behaves and what they believe about the specificity of their setting, not the real setting. This is possible because //Cannibal Court// is so centered on conversation and persuasion, not physical action.
<</timed>>
<br>
<<timed 8.5s t8n>>
So does allowing too much player agency ultimately ruin the painstakingly researched, specific story I've crafted? Not really. If anything, the player's choices become a part of this fictional history.
<</timed>>
<<timed 10.5s t8n>>
<br> [[THE WORLD EXISTS WITHOUT THE PLAYER]]
<br> [[RESEARCHING FOR SPECIFICITY]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
The world is based on a history that existed before the player and will continue to exist after them.
<</timed>>
<br>
<<timed 1.5s t8n>>
<<linkappend "I'm trying to bridge an unavoidable narrative gap.">>
<br><br>
<<stampText>>
The story may be highly specific and transport the player somewhere far away, but the causes of this horrific world are universal.
<</stampText>>
<</linkappend>>
<</timed>>
<br>
<<timed 6.5s t8n>>
This is the primary source of horror for a game with the word "cannibal" in its title.
<</timed>>
<br>
<<timed 7.5s t8n>>
//Cannibal Court// doesn't have jump scares or shock moments for a horror game; I was trying to create the discomfort of being in an upside-down world. These cultists have bizarre morals and twisted ambitions, but the player feels that everything is <b>logical</b>. The world operates on rules, and that makes it real, even if that reality is ugly.
<</timed>>
<br>
<<timed 8.5s t8n>>
Just because the game stops, the world does not. When a world is based on real world events that the player must learn, that's even more obvious. Of course the real world continues. The player could even look up more information about the historical events and keep the story going in their head, so to speak.
<</timed>>
<br>
<<timed 9.5s t8n>>
It actually feels like that makes the challenge of researching for this story even more meaningful. If people do some light research on their own afterwards, it's worth it.
<</timed>>
<br>
<<timed 11.5s t8n>>
<br> [[TEACHING SPECIFICITY WITHOUT OVERWHELMING]]
<br> [[RESEARCHING FOR SPECIFICITY]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
I'm not writing a linear script for a narrative game. I wanted to tackle a systemic game with emergent experiences, but I wanted what emerged to be bound by the specific. I wasn't sure how to balance these competing constraints.
<</timed>>
<br>
<<timed 1.5s t8n>>
I wonder if specificity shares the same problem that procedurally-generated systems do when they aim to create unique experiences: <<linkappend "the bowls of oatmeal problem.">> <span class="revealed-text"><br><br>The term was coined by Kate Compton, although I first came across it in the fantastic essay compilation by Tanya X. Short and Tarn Adams: <a href="https://www.taylorfrancis.com/books/edit/10.1201/9780429488337/procedural-storytelling-game-design-tanya-short-tarn-adams" target="_blank" rel="noopener noreferrer">Procedural Storytelling in Game Design ⧉</a>. Basically, one can generate ten thousand bowls of oatmeal that are perfectly, mathematically unique, where no bowl has the same arrangement of oat grains... but who cares? The bowls are not //meaningfully// unique and their randomness has no value for the eater of oatmeal.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 2.5s t8n>>
Something can be specific, like getting the exact texture of the bark of an eastern white cedar represented on my 3D model, but that doesn't mean the specificity automatically matters.
<</timed>>
<br>
<<timed 3.5s t8n>>
<<linkappend "So how much specificity matters for a systemic game?">>
<div class="emphasized-typewriter">
<<type 40ms>>
<br>
What does it mean for a systemic game to create a meaningfully specific experience?
<</type>>
</div>
<</linkappend>>
<</timed>>
<br>
<<timed 5.5s t8n>>
Especially when building a game based on real world setting, the player may arrive at the game with any level of knowledge of the actual events. Every game designer should contend with players approaching the game with varying levels of game experience, but adding a specific history adds another layer of "experience" that the player can have.
<</timed>>
<br>
<<timed 6.5s t8n>>
Every player brings their specific history to the tightly controlled yet meandering experience that is //Cannibal Court//.
<</timed>>
<br>
<<timed 8.5s t8n>>
<br>[[SPECIFICITY IN CANNIBAL COURT (SPECIFICALLY)]]
<br> [[TRUE SPECIFICITY VS EXPERIENTIAL SPECIFICITY]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
There is an odd side effect of using real, specific history in your game.
<</timed>>
<br>
<<timed 1.0s t8n>>
<span class="emphasized-typewriter">
<<type 40ms>>
Some players will arrive with more knowledge than others.
<</type>>
</span>
<</timed>>
<br>
<<timed 4.0s t8n>>
Sometimes this happens in other games based on real history. Yet I find that even when they are not linear narrative games, the focus is on immersing you in a <<linkappend "historical experience.">>
<br><br>
<span class="revealed-text">
Like in 11 Bit Studio's //This War of Mine (2014)//, based on real modern sieges, we play a simulation with the usual mechanics of hunger, mood and resource management. We experience the history as we try to survive, but knowing more about the siege of Sarajevo does not give the player a mechanical advantage in the game.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 5.0s t8n>>
But //Cannibal Court// rewards knowledge. The collecting and using of <mark> phrases</mark> is the core engine of the game.
<br><br>
The player collects knowledge as phrases in their inventory, and can use those phrases to move the conversation in the direction they want.
<</timed>>
<br>
<<timed 6.0s t8n>>
Some of those phrases are real historical figures and events.
<</timed>>
<br>
<<timed 7.0s t8n>>
<<linkappend "Unfortunately, the game doesn't have a way to give the player any phrases early if they already know them.">>
<br><br>
<span class="revealed-text">
For example, upon the first reference to the //Erebus//, the player might immediately understand the historical event being referenced. But the related phrases may not have appeared in conversation yet, so the player will not have them in their inventory. //Cannibal Court// doesn't close this gap between real life knowledge and in-game knowledge.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 8.0s t8n>>
On the other hand, there are quick-time events that function as interrogation moments. The player could successfully answer a fact-based question without the game explicitly teaching them the history. The player then gains the subsequent boons earlier than they otherwise would have.
<br><br>
<<linkappend "An example (and a mild spoiler).">>
<br><br>
<span class="revealed-text">
The juror may ask, "Who lost the Erebus?"
<br>
If the player has the phrase //Franklin// and knows their history, they can successfully pass this interrogation.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 9.0s t8n>>
Only games based in real specific world events can <<linkappend "reward players for real life knowledge.">>
<br><br>
<span class="revealed-text">
Although that makes me wonder about games like Paradox's WW2 strategy series, //Hearts of Iron (2002)//. I know that it takes a long time to master the game's complex systems, but I'm not sure if it reflects era-appropriate politics and warfare to such a degree that knowing the history of mid-century Europe would be a material benefit to your gameplay. Maybe an expert in WW2 would know.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 10.0s t8n>>
But the reward has to be limited: a small boon that makes the game a little easier. In //Cannibal Court//, the player earns a broad "bonus" persuasion point for passing the interrogation moment. They are <b>not</b> blocked from progressing if they don't know the answer.
<</timed>>
<br>
<<timed 11.0s t8n>>
<<linkappend "So maybe we can say that the player can be rewarded for having external knowledge of the specific history woven into a game...">>
<span class="emphasized-typewriter">
<<type 40ms>>
<br>
... but they should never be punished for lacking it.
<</type>>
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 12.0s t8n>>
It is, after all, your job as the game designer to immerse them in your world.
<</timed>>
<<timed 14.5s t8n>>
<br>[[TEACHING SPECIFICITY WITHOUT OVERWHELMING]]
<br> [[SPECIFICITY THROUGH MECHANICS]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
I think certain players come to games to be overwhelmed.
<</timed>>
<br>
<<timed 1.5s t8n>>
People come to games like Rundisc's //Chants of Sennaar (2023)// or Lucas Pope's //Return of the Obra Dinn (2018)// to be overwhelmed by symbols you can't read, memories you can't understand. <<linkappend "You expect to be ambushed around every corner with more information you can't parse yet.">>
<br><br>
<span class="revealed-text">
//The vast field of knowledge that awaits conquering is the appeal. It's the promised satisfaction of putting everything together. It's like dumping a 1000 piece jigsaw puzzle onto the table with a bit of masochistic glee. It's the reason some of us pick up giant fiddly tabletop games like Mindclash's <b>Voidfall (2023)</b> knowing that we'll have a headache for the rest of the day just from reading the instructions manual.//
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 2.5s t8n>>
One of the pillars I designed //Cannibal Court// around: the player should feel like a mastermind manipulator. But the unwritten part is that the feeling of mastery must be earned through careful deduction.
<</timed>>
<br>
<<timed 3.5s t8n>>
A game that challenges a player's deductive skills works best when the player can <<linkappend "test their theories.">>
<br><br>
<span class="revealed-text">
//Chants of Sennaar// lets you match words to pictures in your translation notebook and //Return of the Obra Dinn// lets you play with sentence construction. Both games provide too many variables to brute force figure out the puzzle.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 4.5s t8n>>
<<stampText>>
For <b>Cannibal Court</b> to truly feel like a deductive reasoning game, the players must have opportunities to test their knowledge.
<</stampText>>
<</timed>>
<br>
<<timed 7.0s t8n>>
It's important to know that the primary unit for tracking a player's knowledge in //Cannibal Court// is the object called a <mark>phrase</mark>, which the player stores in their inventory.
<br><br>
Phrases have multiple uses in game:
<br>
<br>1. <<linkappend "Players activate a phrase to choose dialogue they'll say to the jury.">>
<br><br>
<span class="revealed-text">
On activating the phrase <mark>human</mark>, maybe the player chooses to say: <<cycle "$dialogue option">>
<<option "Who are you to determine who's human?">>
<<option "I am human. You are animals.">>
<<option "Do what you want. I know that I'm human.">>
<</cycle>>
</span>
<</linkappend>>
<br>
<br>2. <<linkappend "The jury both activates and reveals phrases as they speak.">>
<br><br>
<span class="revealed-text">
The juror might respond with: Your attitude is as arrogant as the <<linkappend "Lady Franklin, who never knew when to quit!">>
<br><br>
<span class="revealed-text">
//Phrase acquired//: <mark>lady franklin</mark>
<br><br>
Because the juror brought up the Lady Franklin, the player has now acquired that knowledge as a phrase.
</span>
<</linkappend>>
</span>
<</linkappend>>
<br>
<br>3. <<linkappend "Jury members can test a player's knowledge, which requires the player to choose the correct phrase from their inventory.">>
<br><br>
<span class="revealed-text">
Later on, another juror may ask the player: <br><br>"Did anyone even care to keep looking for Franklin after he died for their vanity?"
<br><br>
<<linkappend "To which the player can now answer by selecting the phrase:">> <mark>lady franklin</mark>
<br><br>
<span class="revealed-text">
Which grants the player a persuasion bonus.
</span>
<</linkappend>>
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 8.0s t8n>>
The final use case, where jurors test the player's knowledge, is also where the majority of real, specific history matters.
<</timed>>
<br>
<<timed 9.0s t8n>>
So when a player fails a knowledge test, I endeavoured to have the jury reveal the correct answer, or at least a hint, in their response. Every time the player attempts to answer a knowledge test, they should gain information to help them on their next attempt.
<</timed>>
<br>
<<timed 10.0s t8n>>
When combined with the fact that the player can instantly replay a trial upon failing, <b>while retaining all the new phrases they acquired</b>, each trial becomes an opportunity for the player to test theories too.
<</timed>>
<br>
<<timed 11.0s t8n>>
And on each run, a player's previous answer attempts in prior runs are also highlighted in the game UI so the player doesn't have to externally document their previous playthroughs.
<</timed>>
<br>
<<timed 12.0s t8n>>
But there is also the specifics of the cultist characters and their relations, which is tied to another game pillar: this is a claustrophobic community of cultists.
<</timed>>
<br>
<<timed 13.0s t8n>>
To this end, //Cannibal Court// contains a <mark>codex</mark>, which features the sort of <<linkappend "phrasal template gameplay of Color Gray's //The Case of the Golden Idol (2022)//">>.
<br><br>
<span class="revealed-text">
This allows the player to use the phrases they've collected to document what they know about the cultists, but it also doubles as a hint system: the visible words of the sentence nudge the player's thinking about certain cultists.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 14.0s t8n>>
Ultimately, understanding the real history is <<linkappend "sort of optional, but I don't think that's the worst thing.">>
<br><br>
<span class="revealed-text">
In theory, the player could fail every fact-based interrogation question and fail to understand any of the history of the Northwest Passage, and still succeed in the game. It would not be an easy way to win the game, but because there are only boons from having real-life knowledge and no punishments, its an inevitable part of the design.
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 15.0s t8n>>
It shouldn't matter. The world of //Cannibal Court// should feel so alive that even if the player learns nothing, they sense that world will exist without their validation.
<</timed>>
<br>
<<timed 17.0s t8n>>
<br> [[BENEFITS OF EXTERNAL KNOWLEDGE]]
<br> [[THE WORLD EXISTS WITHOUT THE PLAYER]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
A meaningful difference, to some degree, relies on whether or not a player recognizes the journey as being as important as the destination.
<</timed>>
<br>
<<timed 1.5s t8n>>
Or in other words: is a unique playthrough dependant on how many endings a game contains? This is the classic <<linkappend "CYOA style structure, and the game often highlights the quantity of endings as a selling point, i.e., 8 unique endings! 2 new endings added!">><br><br>Of course, this is the combinatorics struggle of CYOA games, and is also why branching narrative games often get "compressed" back to a few manageable paths at critical junctures in the story. Sam Kabo Ashwell has a great blog post on this topic that I reference often: <a href="https://heterogenoustasks.wordpress.com/2015/01/26/standard-patterns-in-choice-based-games/" target="_blank" rel="noopener">Standard Patterns in Choice-Based Games ⧉</a>.<</linkappend>>
<</timed>>
<br>
<<timed 2.5s t8n>>
In theory, if there are dozens of critical choices the player could have made before arriving at one of those endings, then there are far more than 8 possible stories told. A story is more than just an ending. But I'm not sure if players agree, especially in narrative games.
<</timed>>
<br>
<<timed 3.5s t8n>>
But in games like Paradox's //Crusader Kings (2004)// series, the player learns pretty quickly that there are finite in-game event variations, and the ending isn't even the point. But //Crusader Kings// is not a narrative game: it's a narrative sandbox, so players lean into the way the story unfolds as the unique experience.
<</timed>>
<br>
<<timed 4.5s t8n>>
In a sandbox, the //play// is the unique story that players experience. Maybe players do, in fact, enjoy variations on their <a href="https://golancourses.net/2022f/wp-content/uploads/2022/09/kate-compton-oatmeal.pdf" target="_blank" rel="noopener">bowl of oatmeal ⧉</a> when they are the ones pushing oats around as they try to master the games' systems.
<</timed>>
<br>
<<timed 5.5s t8n>>
But the more authored an experience becomes, the less the journey matters and the more the finale matters. The player has been led along a path, and even if they had some influence at various crossroads, they still expect the storyteller to bring it home them with an ending that poignantly reflects the journey we undertook together.
<</timed>>
<br>
<<timed 6.5s t8n>>
//Cannibal Court// is in a strange middleground. It is not a walking simulator with environmental storytelling and NPC "important dialogue choice" moments to evaluate. But it doesn't have the complexity of a true simulation game either.
<</timed>>
<br>
<<timed 7.5s t8n>>
But I think the more I can make the player feel like a tinkerer, and less like a passenger, then the more they will value every tiny difference.
<</timed>>
<br>
<<timed 8.5s t8n>>
<<linkappend "Maybe this can be summarized as a general principle.">>
<span class="emphasized-typewriter">
<<type 40ms>>
<br>
The higher their agency, the more meaningful even the smallest decision will seem to the player.
<</type>>
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 9.5s t8n>>
So it isn't the quantity of content that makes a playthrough of a game feel specific and unique for the player. It is the amount of agency that the player had to reach that content.
<</timed>>
<br>
<<timed 11.5s t8n>>
<br> [[PLAYER ACTIONS CHANGE A SPECIFIC WORLD]]
<br> [[SPECIFICITY THROUGH MECHANICS]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
The world I've created in //Cannibal Court// are static and specific. The lore and history is based on the tragic search for the Northwest Passage, and the setting -- from the dogwood and the cedars to the cultists names and masks -- are specific to the James Bay region. This is mainly reflected visually, through the 3D models I made, but also through the expressions and references the characters use.
<</timed>>
<br>
<<timed 1.5s t8n>>
But how much the player actually learns of this world, and how it is revealed to them, is dynamic and emergent. Some players might replay the conversation puzzles over and over again and experience every piece of content, whereas others could (by sheer luck) convince their jury on the first try and move onto the next trial.
<</timed>>
<br>
<<timed 2.5s t8n>>
<<set $options to ["deductive skill", "luck", "curiosity about the world", "desire to poke things"]>>
<<set $idx to 0>>
The dynamism, then, comes from the player's own
<span id="cycle-link">
<<link $options[$idx]>>
<<set $idx to ($idx + 1) % $options.length>>
<<set $mode to $options[$idx]>>
<<run $('#cycle-link a').text($options[$idx])>>
<<if $mode is "deductive skill">>
<<replace "#description">>Making a conversation a logical, winnable puzzle was one of the most challenging parts of designing //Cannibal Court// over its predecessor, //Conversations with Cannibals//, where I didn't even attempt to quantify "persuasion". I'm still not sure that the game balances the right amount of information to esoterism, like in Weather Factory's //Cultist Simulator (2018)//, a game I spent many pleasant hours trying to untangle.<</replace>>
<<elseif $mode is "luck">>
<<replace "#description">>A little bit of random chance was necessary to keep the system from feeling like a dialogue maze, vis-a-vis ZA/UM's //Disco Elysium (2019)//, which are remarkable but not the experience I wanted to create. My first attempt at a system was very logical, without any randomness, and while it kept things predictable, it also made the experiences very stale after a round or two. <</replace>>
<<elseif $mode is "curiosity about the world">>
<<replace "#description">>Which I guess is a testament to my own writing ability. I toyed with the idea of dynamically generating even the cultists themselves (randomly combining a 3D mesh with a personality type and dialogue options), sort of like the dynamically generated houses of Kitfox's //The Shrouded Isle (2017)//, which I thoroughly enjoyed as a cult management simulator. But I decided that since I really wanted players to explore the world's lore, I needed the player to build a consistent relationship with the NPCs. The player needed to be invested, and that would require handcrafted, memorable cultist characters. I don't know if I achieved it, but that was the goal.<</replace>>
<<elseif $mode is "desire to poke things">>
<<replace "#description">>Each cultist has their own agenda and is seeking certain kinds of people to add to the community. However, they are also actively repulsed by other kinds of people, and often what one cultist loves another despises. A player's willingness to piss off some cultists to win the approval of another is one of the core ways the player expresses themselves (and possibly escapes). The fact that the player can keep redoing the level gives it a narrative sandbox feeling, like the rewind mechanic in Dontnod's //Life is Strange (2015)//. <</replace>>
<</if>>
<</link>>
</span>.
<br><br>
<div id="description">
Making a conversation a logical, winnable puzzle was one of the most challenging parts of designing //Cannibal Court// over its predecessor, //Conversations with Cannibals//, where I didn't even attempt to quantify "persuasion". I'm still not sure that the game balances the right amount of information to esoterism, like in Weather Factory's //Cultist Simulator (2018)//, a game I spent many pleasant hours trying to untangle.
</div>
<</timed>>
<br>
<<timed 4.5s t8n>>
On the other hand, the game is basically just a dialogue choice-consequence game. One of the reasons I made this game was because of my love of reputation systems impacted by dialogue, like an <<linkappend "old Bioware game.">> <br><br> Nothing was more satisfying then being such an absolute asshole to everyone in //Mass Effect (2007)// that I qualified for the ultra-renegade dialogue options that could let me skip an entire fight sequence. The delight that I got from checking my reputation after every conversation was something so potent that I wanted an entire game of just doing that. <</linkappend>>
<</timed>>
<br>
<<timed 5.5s t8n>>
That is high-agency, in theory, but I don't think it's the kind of agency that a player recognizes right away. The player must understand that the experience they had is not the same as other players.
<</timed>>
<br>
<<timed 6.5s t8n>>
The player has to feel clever, and like they found their own particular way to convince the jury. That's where their specific story comes in.
<</timed>>
<br>
<<timed 8.5s t8n>>
<br>[[SPECIFICITY THROUGH MECHANICS]]
<br>[[TRUE SPECIFICITY VS EXPERIENTIAL SPECIFICITY]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
In 2020, I listened to a folk horror podcast that leaned hard into its setting, both of place and time: <<linkappend "The Old Gods of Appalachia.">>\
<span class="revealed-text"><br><br>These are stories that could only take place in the late 19th century coal mines of Kentucky and the early 20th century railway towns of Tennessee. The real struggles of people living in those places -- including people who had only recently acquired what little rights they had -- manifests the horror that has taken up residence in this alternate Appalachia. </span>
<</linkappend>>
<</timed>>
<<timed 1.5s t8n>>
<br>
<<set $options to ["specific", "grounded", "singular"]>>
<<set $idx to 0>>
I had never written a story so
<span id="cycle-link">
<<link $options[$idx]>>
<<set $idx to ($idx + 1) % $options.length>>
<<set $mode to $options[$idx]>>
<<run $('#cycle-link a').text($options[$idx])>>
<<if $mode is "specific">>
<<replace "#description">>I wanted to create a story that could only happen in a specific time and place, because the lore of the world was tied to a real history. I also wanted the player to feel that their playthrough was specific to them.<</replace>>
<<elseif $mode is "grounded">>
<<replace "#description">>But I didn't want to be constrained by reality. I wanted something on the cusp of paranormal, grounded in just enough history to be believable, but about a people and culture that were entirely fictional. This is still speculative horror, not historical fiction.<</replace>>
<<elseif $mode is "singular">>
<<replace "#description">>I wanted to write something that only I would write. Something that combined my obsession with folk horror, obscure Canadian history and systemic game design. Nobody else would ever make this game... for better or worse.<</replace>>
<</if>>
<</link>>
</span>.
<br><br>
<div id="description">
I wanted to create a story that could only happen in a specific time and place, because the lore of the world was tied to a real history. I also wanted the player to feel that their playthrough was specific to them.
</div>
<</timed>>
<<timed 3.0s t8n>>
<br>
I'd already set other constraints for my next game: I wanted a systemic game and I wanted to stay in the horror genre. Folk horror, in particular, I think, lends itself well to specific stories.
<br><br>
What was one more constraint?
<</timed>>
<<timed 4.0s t8n>>
<br>[[FOLK HORROR AS THE SPECIFIC]]
<br>[[WHY BOTHER?]]
<br>----
<br> <a href="https://store.steampowered.com/app/4381540/Cannibal_Court/" target="_blank" rel="noopener">//Cannibal Court// on Steam ⧉</a>
<</timed>>
<</nobr>>
<<nobr>>
<<timed 0.5s t8n>>
I wrote a novel once: 100,000 words rewritten 10 times.
<</timed>>
<br>
<<timed 1.5s t8n>>
Filling a blank page? Overwhelming.
<</timed>>
<br>
<<timed 2.5s t8n>>
Rewriting what I'd aready written? Easy! That's my editor hat. That's just a to-do list item.
<</timed>>
<br>
<<timed 3.5s t8n>>
But constraints can help you face <<linkreplace "the blank page.">><span class="revealed-text"> the dreaded blankness.<br><br>//(But sometimes you have to face the blankness without any aids at all. I worry about this especially with LLMs in writing: it is so easy to run from the blank page and generate a quick "first draft" that you start editing and refining. But it's a dirty chalice. Your first attempt to create anchors you, so if you are forever averting your eyes from the blank page, then you are always allowing your gaze to be directed by someone else's first move. The blank page is infinite possibility space. Facing the blank page means trusting my own creativity to traverse that space.)//</span><</linkreplace>>
<</timed>>
<br>
<<timed 4.5s t8n>>
<<set $options to ["time", "budget", "knowledge"]>>
<<set $idx to 0>>
Lucky for us, life is filled with natural constraints, like
<span id="cycle-link">
<<link $options[$idx]>>
<<set $idx to ($idx + 1) % $options.length>>
<<set $mode to $options[$idx]>>
<<run $('#cycle-link a').text($options[$idx])>>
<<if $mode is "time">>
<<replace "#description">>However, I'm fortunate enough to work full-time on game development these days, so while not unlimited, my time is ample. <</replace>>
<<elseif $mode is "budget">>
<<replace "#description">>I'm making nearly everything myself, so my budget is very small. I'm not motivated only by budget constraints though: I wanted a strongly authored experience, and I prioritized artistic coherence over technical excellence. Doing everything myself seemed like the safest way to make it consistent, even if the results were inferior to what I could purchase. I only purchased assets where my personal skill level is currently well below average (making music, for example).<</replace>>
<<elseif $mode is "knowledge">>
<<replace "#description">>The trickiest one, the invisible wall of my creative projects. The best I can do is create a project that I think is a reasonable stretch from my current skill, but that implies I am capable of assessing my own skill level accurately, and capable of assigning myself the right amount of challenge. Risky. <</replace>>
<</if>>
<</link>>
</span>.
<br>
<div id="description">
I'm fortunate enough to work full-time on game development these days, so while not unlimited, my time is ample.
</div>
<</timed>>
<br>
<<timed 6.5s t8n>>
But you can choose your own challenges. These are conceptual limits, and I chose two optional constraints to help me face the blank page: the horror genre, and telling a story in a specific setting.
<</timed>>
<br>
<<timed 7.5s t8n>>
<<linkappend "Do you want to try a little experiment?">>
<h3>Challenge 1: The blank page</h3>
Write a poem.
<br><br>
<span id="trigger-1">
<<link "Start Writing Poem 1">>
<<set $startTime1 to Date.now()>>
<<run $('#poem1-container').slideDown(200)>>
<<run $('#trigger-1').hide()>>
<</link>>
</span>
<div id="poem1-container" style="display:none; margin-top: 15px;">
<<textbox "$poem1" "" autofocus>>
<br><br>
<<button "Finish Poem 1">>
<<set $elapsedSeconds1 to Math.round((Date.now() - $startTime1) / 1000)>>\
<<replace "#poem1-container">>\
<div class="expansion-box">
<em>"$poem1"</em>
<br><br>
<small>Blank page poem completed in <strong>$elapsedSeconds1 seconds</strong>.</small>
</div>
<<run $('#poem2-section').slideDown(400)>>\
<</replace>>\
<</button>>
</div>
<</linkappend>>
<</timed>>
<!-- POEM 2 SECTION (Initially hidden until Poem 1 is done) -->
<div id="poem2-section" style="display:none; margin-top: 40px;">
<<timed 8.5s t8n>>
<h3>Challenge 2: The blank page again, with help</h3>
Now write a couplet about your favourite holiday.
<br><br>
<span id="trigger-2">
<<link "Start Writing Poem 2">>
<<set $startTime2 to Date.now()>>
<<run $('#poem2-container').slideDown(200)>>
<<run $('#trigger-2').hide()>>
<</link>>
</span>
<div id="poem2-container" style="display:none; margin-top: 15px;">
<<textbox "$poem2" "" autofocus>>
<br><br>
<<button "Finish Poem 2">>
<<set $elapsedSeconds2 to Math.round((Date.now() - $startTime2) / 1000)>>\
<<replace "#poem2-container">>\
<div class="expansion-box">
<em>"$poem2"</em>
<br><br>
<small> Constrained poem completed in <strong>$elapsedSeconds2 seconds</strong>.</small>
</div>
<<run $('#comparison-summary').slideDown(400)>>\
<</replace>>\
<</button>>
</div>
<</timed>>
</div>
<br>
<<timed 9.5s t8n>>
<<linkreplace "The challenge above is a tiny example of the power of constraint.">>
Technically it wasn't a blank //blank// page test, even the first challenge limited you to a poem. But most of the time I do sit down with at least a vague goal in mind (I'm going to write a short story, I'm going to draw people, etc). I guess the ultimate blank page is when you wake up in the morning and say, "Today I will make something!"
<</linkreplace>>
<</timed>>
<br>
<<timed 10.5s t8n>>
But there are also the big-picture constraints beyond a single game. When I think of //Cannibal Court//, I'm not thinking of a single commercial game. I am thinking about the kinds of games that I want to make in the future: horror games, systemic games, weird games. I am constrained by my own long term vision for my indie game career.
<</timed>>
<br>
<<timed 11.5s t8n>>
I guess what I'm saying is, sometimes its worth it to play it on hard mode. Even if the challenge can be rage-inducing.
<</timed>>
<<timed 13.5s t8n>>
<br>[[ARTIST STATEMENT]]
<br>[[RESEARCHING FOR SPECIFICITY]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
I knew that telling a story in a specific setting would be challenging and should be handled with care, but I still don't know if I've done enough.
<</timed>>
<br>
<<timed 1.5s t8n>>
//Cannibal Court// benefits from not being based on a single historical event, but on the accumulation of many tragic stories in the Canadian arctic archipelago. The cultists themselves are not representative of any group in Canada but are a purely fictional group of people who, intrigued by the history of the north, made the journey north themselves. The cult's founders have more in common with us than any of the historical figures they reference, and I think that helps both humanize them but also treat them with less formality.
<</timed>>
<br>
<<timed 2.5s t8n>>
<span class="hover-swap">
<span class="default-text">The challenge of a specific story gave me a self-directed curriculum of primary sources and non-fiction books. The primary sources were largely the journals of the sailors themselves, surprisingly readable from the 19th century onwards. The early modern English from the 17th century, not so much (hover to see what I mean).</span>
<span class="hover-text">The challenge of a ſpecifick Storie gave unto me a ſelf-directed Curriculum of primary Sourceſ and non-fiction Bookes: the which primary Sourceſ were for the moſt part the Iournalls & Logs of the Seamen and Sailers, ſurpriſingly readable from the 19th Century onward. The Early-Moderne Engliſh from the 17th Century, not ſo much.</span>
</span>
<</timed>>
<br>
<<timed 3.5s t8n>>
I wanted references that brought in Indigenous perspectives, and the best I found was a book published by <a href="https://www.thelandwasalwaysused.ca/" target="_blank" rel="noopener noreferrer">Nattilik Heritage Center and Parks Canada called "The Land Was Always Used" ⧉</a>. Although most of the modern books on the Franklin Expedition make some effort to address the role of the arctic Indigenous people, this book was one of the few that centered Inuit knowledge and oral traditions in the search for the lost ships across their land.
<</timed>>
<br>
<<timed 4.5s t8n>>
Another useful account of life on Hudson's Bay for Indigenous communities was <a href="https://archive.org/details/voicesfromhudson0000unse" target="_blank" rel="noopener noreferrer">Voices from Hudson Bay: Cree Stories from York Factory ⧉</a>, which is the transcription of recorded conversations held with Cree elders recalling their daily lives and experiences in York Factory, Manitoba from the early to mid 20th century.
<</timed>>
<br>
<<timed 5.5s t8n>>
Here are the main texts I used while researching the lore for //Cannibal Court//:
<br><br>//Narrative of a Journey to the Shores of the Polar Sea (1819-1822)// by Sir John Franklin <a href="https://franklinoverland.ca/">(link ⧉)</a>
<br><br>//A Journal of Mr. Hudson's last Voyage for the Discovery of a North-west Passage// and //A larger Discourse of the same Voyage and the success thereof (1625) // by Abacuk Pricket <a href="https://cpercy.artsci.utoronto.ca/hell/anthology/travel/Travel1625Pricket.htm"> (link ⧉)</a>
<br><br> //The Land Was Always Used// by Nattilik Heritage Center and Parks Canada <a href="https://www.thelandwasalwaysused.ca/">(link ⧉)</a>
<br><br>//Voices from Hudson's Bay: Cree Stories from York Factory// by Flora Beardy and Robert Coutts <a href="https://archive.org/details/voicesfromhudson0000unse"> (link ⧉)</a>
<br><br>//Frozen in Time: The Fate of the Franklin Expedition// by Owen Beattie and John Geiger <a href="https://en.wikipedia.org/wiki/Frozen_in_Time:_The_Fate_of_the_Franklin_Expedition"> (link ⧉)</a>
<br><br> //Searching for Franklin: New Answers to the Great Arctic Mystery// by Ken McGoogan <a href="https://kenmcgoogan.com/books/searching-for-franklin/"> (link ⧉)</a>
<br><br>//Dead Reckoning: The Untold Story of the Northwest Passage// by Ken McGoogan <a href="https://kenmcgoogan.com/books/dead-reckoning/"> (link ⧉)</a>
<br><br>//The Man Who Ate His Boots: The Tragic History of the Search for the Northwest Passage// by Anthony Brandt <a href="https://www.penguinrandomhouse.com/books/17611/the-man-who-ate-his-boots-by-anthony-brandt/"> (link ⧉)</a>
<br><br>//Ice Ghosts: The Epic Hunt for the Lost Franklin Expedition// by Paul Watson <a href="https://www.penguinrandomhouse.ca/books/259012/ice-ghosts-by-paul-watson/9780771096549"> (link ⧉)</a>
<br><br>Although not a book, I'd be remiss not to mention the invaluable <a href="https://northernontarioflora.ca/?m=I" target="_blank" rel="noopener noreferrer">Northern Ontario Plant Database ⧉ </a> , which helped me greatly in determing what plants to model and creating the level environments in //Cannibal Court//.
<</timed>>
<br>
<<timed 9.5s t8n>>
With all this research, I have to remember that the player <<linkappend "might not have this knowledge.">> Okay, realistically, the player most likely has never encountered this history and has none of this extremely niche knowledge.<</linkappend>> That's not a bad thing, since lack of knowledge is essential to the outsider-protagonist's vulnerability in folk horror. But if the player does, by chance, happen to know a lot about this topic, I'd love to recognize that.
<</timed>>
<<timed 10.5s t8n>>
<br> [[KNOWLEDGE THE OUTSIDER LACKS]]
<br>[[BENEFITS OF EXTERNAL KNOWLEDGE]]
<</timed>>
<</nobr>><<nobr>>
<<timed 0.5s t8n>>
But why bother? What do I gain by telling a story with a specific setting? It's not inherently better than one in a generic setting.
<</timed>>
<br>
<<timed 1.5s t8n>>
I think every artist reaches a point where they desire specific skills that they feel they're lacking in their craft. Maybe this is actually the difference between an art practice and a hobby. There's nothing wrong with hobbies, and art always begins as a hobby, but there's an intentionality to your improvement that makes something a "practice".
<</timed>>
<br>
<<timed 2.5s t8n>>
For me, right now, the craft is writing and storytelling. Yes, there is also the craft of game development and all its composites that I need to work on, like my <<cycle "$skills." once>>
<<option "visual design.">>
<<option "game design.">>
<<option "programming.">>
<<option "audio design.">>
<<option "UX design.">>
<<option "marketing.">>
<<option "business bullshit.">>
<<option "everything, basically.">>
<</cycle>>
But I'm still at a place where just generally doing the work of making a game, even doing the work badly, will help me improve just for having made the attempt.
<</timed>>
<br>
<<timed 3.5s t8n>>
On the other hand, because I have been a creative writer my whole life, I'm at a point where writing anything isn't a guarantee that I'm improving my skills. It's like being a runner: I can go out and run 5km every day, and at first I improve readily just from the daily jog, but eventually I need to integrate targeted excercises to get faster.
<</timed>>
<br>
<<timed 5.5s t8n>>
<<linkappend "I'm not saying I'm an amazing writer with nothing left to learn.">>
<span class="emphasized-typewriter">
<<type 40ms>>
<br>
I am a comfortable, steady, lifelong writer whose improvement has plateaued.
<</type>>
</span>
<</linkappend>>
<</timed>>
<br>
<<timed 6.5s t8n>>
But maybe a constraint like "tell a very specific, well-researched story" is exactly the forcing function I need to level up.
<</timed>>
<br>
<<timed 7.5s t8n>>
//I think this actually helped me clarify the current guiding principle for my game projects. An artistic statement, if you will.// 🙈
<</timed>>
<<timed 9.5s t8n>>
<br>[[SPECIFICITY AS CONSTRAINT]]
<br>[[ARTIST STATEMENT]]
<</timed>>
<</nobr>>
<<nobr>>
<<stampText>>
I give myself weird artistic constraints and then make games that push against those limits to better understand the space of interactive storytelling.
<</stampText>>
<br>
<<timed 4.0s t8n>>
<h3> Portfolio</h3>
<a href="https://loomnorth.itch.io/cannibal-court" target="_blank" rel="noopener noreferrer">Cannibal Court Demo ⧉ </a>
<br>A non-linear, non-branching dialogue-driven puzzle game about convincing your captors to let you go.
<br><iframe frameborder="0" src="https://itch.io/embed/3649313?border_width=2&link_color=002395&border_color=000000" width="554" height="169"><a href="https://loomnorth.itch.io/cannibal-court" target="_blank" rel="noopener noreferrer">Cannibal Court by loomnorth</a></iframe>
<</timed>>
<br>
<<timed 5.5s t8n>>
<a href="https://loomnorth.itch.io/conversations-with-cannibals" target="_blank" rel="noopener noreferrer"> Conversations with Cannibals ⧉ </a>
<br>The prototype before Cannibal Court, where the words direct conversation but there is no logic or scoring, only vibes.
<br><iframe frameborder="0" src="https://itch.io/embed/2465745?border_width=2&link_color=002395&border_color=000000" width="554" height="169"><a href="https://loomnorth.itch.io/conversations-with-cannibals" target="_blank" rel="noopener noreferrer">Conversations with Cannibals by loomnorth</a></iframe>
<</timed>>
<br>
<<timed 7.0s t8n>>
<a href="https://loomnorth.itch.io/hotpot-of-horrors" target="_blank" rel="noopener noreferrer"> Hotpot of Horror ⧉ </a>
<br>Telling a tiny, spooky-cute story using riddles as gameplay.
<br><iframe frameborder="0" src="https://itch.io/embed/2283604?border_width=2&link_color=002395&border_color=000000" width="554" height="169"><a href="https://loomnorth.itch.io/hotpot-of-horrors" target="_blank" rel="noopener noreferrer">Hotpot of Horrors by loomnorth</a></iframe>
<</timed>>
<br>
<<timed 8.5s t8n>>
<a href="https://loomnorth.itch.io/only-humans" target="_blank" rel="noopener noreferrer">Only Humans ⧉ </a>
<br>A creepypasta style horror story in a reCAPTCHA.
//<<linkappend "AI Disclosure">>: I made this in the early days of GenAI (2023) but the use of AI in this way doesn't fit my values anymore. It's delisted in search/browse but for archiving sake, it can be accessed here.<</linkappend>>//
<br><iframe frameborder="0" src="https://itch.io/embed/2179405?border_width=2&bg_color=ffffff&fg_color=000000&link_color=002395&border_color=000000" width="554" height="169"><a href="https://loomnorth.itch.io/only-humans" target="_blank" rel="noopener noreferrer">Only Humans by loomnorth</a></iframe>
<</timed>>
<<timed 10.0s t8n>>
<br>[[SPECIFICITY AS CONSTRAINT]]
<br>[[RESEARCHING FOR SPECIFICITY]]
<</timed>>
<</nobr>>
<div class="global-passage-header">
<<print passage()>>
</div>
<hr class="header-divider"><<nobr>>
<<run $discoveredPassages.add(passage())>>
<hr class="footer-divider">
<footer class="twine-footer">
<div class="footer-item footer-start">
<<if passage() isnot "THE BEGINNING">>
[[← Return to Beginning|THE BEGINNING]]
<<else>>
<span class="footer-disabled">← Return to Beginning</span>
<</if>>
</div>
<div class="footer-item footer-progress">
Passage <<print $discoveredPassages.size>>/15
<<if visited() > 1>>
<div class="visited-note"><em>(You've been here before.)</em></div>
<</if>>
</div>
<div class="footer-item footer-home">
<a href="../index.html" class="external" target="_top">loomnorth.ca ↗</a>
</div>
</footer>
<</nobr>><<set $discoveredPassages = new Set()>>