<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <issn pub-type="ppub">1613-0073</issn>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Narrative Structure in Simulation-Driven Stories</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ben Samuel</string-name>
          <email>bsamuel@cs.uno.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adam Summerville</string-name>
          <email>adamsumm@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AIIDE Workshop on Experimental Artificial Intelligence in Games</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>The Molasses Flood</institution>
          ,
          <addr-line>51 Sawyer Road, Waltham MA, 02453</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Workshop Proce dings</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Moirai is a system that governs a social simulation experience from initialization, through the simulation, to its end. Previous social simulation experiences have usually utilized bespoke glue code that chains together the diferent aspects of running a social simulation, utilizing simulation either before play, during play, or after play. diferent initialization passes and simulation modules to enable a range of experiences that have not been shown before. This paper presents the syntax and semantics of the Moirai Domain Specific Language, and demonstrates how it can be used to create a variety of complex simulation-driven narratives inspired by case-studies from previously existing media.</p>
      </abstract>
      <kwd-group>
        <kwd>social simulation</kwd>
        <kwd>procedural narrative</kwd>
        <kwd>domain specific language</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>In Greek mythology the Moirai were the the sisters of
fate – Clotho, Lachesis, Atropos. In this paper, we discuss
Moirai a system that governs a social simulation
experience from initialization (Clotho or “spinner” the one who
presided over birth), through the simulation (Lachesis or
to stopping simulation (Atropos or “unturnable” the one
who severed the string of life). Moirai uses a Domain
Specific Language (DSL) that enables a user to set up a
social simulation experience, covering a wide range of
possible experiences.</p>
      <p>Previous social simulation experiences have usually
utilized bespoke glue code that chains together the
diferences have utilized social simulation at diferent times of
the experience:
• Before Play – to set up the experience
• During Play – to provide the simulation as the
experience
• After</p>
      <p>Play – to provide an epilogue
with all previous experiences (to our knowledge) using
at most two of these aspects. Furthermore, these
experiences have generally progressed in this one direction,
with no branching or looping, limiting the types of
experience possible.</p>
      <p>Moirai is capable of chaining together diferent
initialization passes, simulation modules, and filtering of
nEvelop-O
(A. Summerville)
CEUR</p>
      <p>CEUR</p>
      <p>Workshop Proceedings (CEUR-WS.org)
population which enables a range of experiences that
have not been shown before. Of course, to not overstate
our claim, the previous experiences have been authored
(at some level) with Turing complete languages, so there
is nothing inherently possible with Moirai that could not
also be achieved in those languages. However, by
providing a DSL that elevates certain operations the authoring</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related</title>
    </sec>
    <sec id="sec-3">
      <title>Work</title>
      <p>
        Moirai is a system intended to be used in conjunction
with social simulations. By social simulation systems, we
refer to computer processes that simulate individual
enti[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]), social relationships between them, and frequently
also has a hand in shaping the world these entities
inhabit. Social simulations are often not intended to be
stand-alone, but rather integrate with and enable
interactive experiences. For example, the social simulation
system Talk of the Town [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is responsible for
generating the residents of the fictional small American town
in which the performance art piece Bad News [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is set.
      </p>
      <p>
        Likewise, the social simulation engines Comme il Faut
and Ensemble [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ] have been core to experiences such
as Prom Week, Vox Populi, VESPACE [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ] and enabled
mods for AAA games such as Skyrim and Conan Exiles
[
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ]. While not yet used for any experiences, Kismet
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is a social simulation language designed under the
notion of Compton’s “Casual Creators” [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] that aims to
provide pleasing expressive range [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] with a relatively
low complexity barrier to entry.
      </p>
      <p>The work outlined in this paper explores the use of
end, under a broader view of “social simulation” as any
CEUR</p>
      <p>ceur-ws.org</p>
      <p>
        © 2023 Copyright for this paper by its authors. Use permitted under Creative Commons License simulation at diferent parts of an experience. To this
rule driven process during which characters grow and
dissolve diferent relationships, the authors take
inspiration from a number of experiences that have utilized
varying levels of simulation. Friends at the Table – an
actual play podcast that uses games as the substrate to
tell an audio play – have used multiple games as setup for
longer arcs. In the simplest examples, for their Marielda
arc [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], they played The Quiet Year [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] – a game where
players take turns filling out a map – to develop the world
for a longer run of Blades in the Dark [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] – a more
standard table top role playing game. The Adventure Zone
[
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] similarly used The Quiet Year to develop the world
for their Ethersea arc [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and then used Dungeons &amp;
Dragons [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] for the more standard segment. Friends at
the Table has also gone even more in depth during their
Partizan [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] arc which used seven diferent games for
worldbuilding at various levels of fidelity – starting with
Dialect: A Game About Language and How It Dies [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]
to first develop the language and culture of their game’s
world, then moving into Armour Astir: Advent [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] to
develop a conflict, Ech0 [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and Dusk to Midnight [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]
to explore the aftermath of that conflict, Beam Saber [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]
and For the Queen [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] to continue on with the conflict,
and finally Microscope [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] to play out the 500 years after
the end of the conflict.
      </p>
      <p>One aspect of social simulations that Moirai
operationalizes is the use of diferent rulesets. Existing simulations
often use diferent rulesets at various points of simulation.</p>
      <p>
        For instance, the rules that govern the history generation
in the simulation-heavy Dwarf Fortress [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] are diferent
from those that govern the moment-to-moment
interactions of dwarves. Similarly, Bad News had simulations
that operated at diferent levels of fidelity with the bulk
of simulated time happening at a very coarse level of
simulation with only the final simulated week (of a simulated
100+ years) happening at a granular level.
      </p>
      <p>
        Toward this end, Moirai provides the functionality to
load in, add, and remove diferent rulesets, while
keeping the simulated entities in place. By rulesets, we refer
to specifications that dictate what behaviors simulated
entities can engage in, any preconditions those
behaviors may have, postconditions for how simulated
entities might be afected by taking the behavior, etc.
Furthermore, inspired by how Tabletop Role-Playing Games
(TTRPG) communities build of of existing rulesets with
new modules, it is possible to load in multiple ruleset
modules at once. For instance, if there existed a generic
high school simulation module, it could be mixed with a
supernatural horror module to create mixed-genre
simulations in the vein of Bufy the Vampire Slayer [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] or
3. Moirai – Method &amp; Capabilities Stranger Things [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. Alternatively, swap out
supernatural horror with a romance module to create high school
In the following section we will discuss the syntax and romance simulation games like Tokimeki Memorial [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ]
semantics of Moirai. At its core, Moirai is an impera- or Katawa Shouju [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ].
tive scripting language with standard control flow and The operations available in Moirai are:
branching operations. However, unlike other scripting
languages, Moirai provides a range of language con- • load RULESET+
structs for initializing, running, swapping, and termi- unloads any currently loaded simulation rulesets
nating social simulations. Currently, Moirai is designed and loads the given simulation ruleset files. The
to be used with Clotho – a social simulation initialization “+” indicates “one or more” (and retains this
meansystem– and Lachesis – a social simulation engine that ing throughout the rest of our descriptions of
the authors have developed (previously known as Kismet Moirai’s operations)
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]). However, it would be possible to use other cre- • add RULESET+
ation and simulation engines, so long as they follow the loads the given simulation ruleset files and
conAPIs of Clotho and Lachesis with abilities to be initialized, catenates them to the already loaded rulesets
queried, ran, and serialized. • remove RULESET+
      </p>
      <p>The specifics of Moirai can be broken down into four unloads the given ruleset files and removes them
main properties: (1) the loading/unloading of ruleset files from the current rulesets
(i.e., files which dictate what is able to transpire within
the simulation), (2) the creation and filtering of simulated
entities (i.e., the characters, locations, and other elements
driven by the simulation), (3) the running of simulations
(i.e., having the simulated entities change based on the
possibilities specified by the rulesets), and (4) the control
lfow governing these operations (i.e., repetition and
selection of the aforementioned afordances). These four
properties will now be discussed in further detail.</p>
      <p>All of the operations leave the simulated entities in
place throughout the adding, removing, and swapping of
rulesets. The only major consideration to this is that the
simulated entities should have consistent attributes and
hooks across the modules. For instance, if our “high
school” ruleset treated “degree of talkativeness” as a
scalar variable referred to as extroversion, and the
“supernatural horror” ruleset treated it as a ternary value of
introvert/normal/extrovert, then the two modules wouldn’t
realize these two variables are referring to to the same
notion, leading to the modules failing to fully leverage
their full potential synergy.</p>
      <p>In the next section we will discuss Moirai’s operations
for handling entity creation, filtering, and removal.</p>
      <sec id="sec-3-1">
        <title>3.2. Simulated Entity Creation and Management</title>
        <p>restoring entities in VARIABLE
restores entities that were previously stored in
the variable named VARIABLE
• OPTION:
keeping all (characters|locations)
keeps all entities of the given class. The |
symbol in this context represents an OR selection
between the symbols in the parentheses (and does
in all subsequent operation explanations).
• OPTION:
keeping entities where is STATUS
keeps entities that have the STATUS property
• OPTION:
keeping entities where in PATTERN/ARITY
keeps entities that have are in the PATTERN that
has arity of ARITY. This is to disambiguate
between patterns with the same name but
diferent #’s of entities (e.g., the patterns lovers/2 and
lovers/3 referring to couples and thruples,
respectively)
• OPTION:
keeping entities where (in
↪ PATTERN1/ARITY1 | RELATIONSHIP)
↪ with entity (is STATUS | in
↪ PATTERN2/ARITY2)
All social simulation based experiences share the
commonality that there are entities that are being simulated.</p>
        <p>
          Although in theory anything can be a simulated entity, to
provide the reader a frame of reference simulated entities
are often locations (e.g., a dining room in a home), and
the creatures and things that populate them (e.g., a dining
table, a person working on it, a cat napping beneath it,
etc.). These entities might have been authored to
provide a known starting point (e.g., Prom Week, Princess
Maker [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ], etc.) or procedurally generated (e.g., Dwarf
Fortress, Bad News) or possibly a mixture of both (e.g.,
Crusader Kings III [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ]). Most commonly, once the
entities are initialized and social simulation occurs they will
continue on according to the rules of the simulation, only
leaving the simulation when the simulation itself decides
so (e.g., death or leaving town in The Sims [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] or Bad
News). However, many common story patterns found in keeps entities that have the RELATIONSHIP or
literature, film, and interactive experiences involve casts are in PATTERN1 with an entity that either has
of characters coming in and out of focus depending on STATUS or is in the PATTERN2
the narrative. For instance, in a closed room murder such • OPTION:
as Murder on the Orient Express [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ] or Gosford Park [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ] keeping entities where (in
a subset of characters is involved in the actual murder ↪ PATTERN/ARITY | RELATIONSHIP) with
mystery while other characters might be involved in their ke↪epsenetnitittyiesitnhaktehpatve the RELATIONSHIP or
– possibly linked – back stories. are in PATTERN with an entity that has already
        </p>
        <p>Toward enabling social simulation modalities that ex- been kept
plore new use cases, Moirai enables entities to be
initialized, filtered, stored, and restored. In conjunction with • OPTION:
the ability to swap simulation rulesets, this allows for ssatvaesshtihnegenrteistitesitnhaStThAaSvHe not been kept in the
diferent story patterns to be possible, as opposed to just variable STASH
changing the rulesets alone. To the authors’ knowledge, • OPTION:
the only existing social simulation experience to do any- saving kept as STASH
thing of this form is Dwarf Fortress which creates a new saves the entities that have been kept in the
varidwarf expedition at the start of Fortress mode. able STASH</p>
        <p>
          Entity creation and management in handled with a
single operation “initialize”, though its execution can Moirai assumes that the given simulation engine has
be customized through eight options. The syntax and relationships which connect simulated entities (most
explanation of these operations and options in Moirai likely a given, since a social simulation without
relaare: tionships would be relatively boring) and the ability to
define arbitrary patterns (e.g., the love triangle pattern
• initialize INITIALIZATION+ [:OPTION]+ between three characters labelled RivalA, RivalB, and
initializes entities according to the INITIALIZA- Target where RivalA and RivalB both love Target, or the
TION files (which may be either deterministically unrequited love pattern between two characters, Source
authored or procedurally generated) with OP- and Target, where Source loves Target, but Target does
TIONs on what to do with the existing entities (if not love Source, etc.). These patterns can be viewed
any) through the lens of story sifting [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] as larger patterns
• OPTION: that emerge from the simulation, but which might not
be directly represented in the simulation ruleset files
themselves.
        </p>
        <p>The options to filter can be at the unary level (an entity
has a given attribute), the binary level (an entity is in a
given relationship with another entity), or at the  -ary
level (an entity is found in a given pattern with other
entities), with the higher levels allowing to match the
other entities against other statuses or patterns or just
looking at entities that are already kept.</p>
        <p>
          To give a concrete example of why this might be useful,
let’s imagine a simulation focused on a wedding (such
as Father of the Bride [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ]). For this example, imagine
the wedding as a secondary simulation as part of a larger
simulation. That is, the larger simulation has already
created, let’s say, a town full of people with varied
relationship connections across them, and within this town
are two people primed to get married. To accommodate
their simulated nuptials, first, we would need to initialize
the wedding-specific facets of the simulation (setting up
the venue, perhaps instantiating the oficiant, planner,
lforist, etc.), by specifying an initialization file
initialize wedding:
The following are all options concatenated to this
initialization. After setting up the wedding, the next order of
business is to find the couple in the simulation who is
getting married:
keeping entities in pattern getting_married/2
then we would want to invite the families of the (possibly)
happy couple (or, perhaps more accurately, not filter them
out of the simulation):
keeping entities related_to entities in
↪ getting_married/2
we’ll invite/keep the couples’ friends, too:
keeping entities in pattern
↪ best_friend_of_couple/3 with entities in
↪ getting_married/2
and then we will save everyone else that was simulated in
a separate variable, so that they can be returned to after
the wedding specific simulation without being included
in the wedding simulation:
stashing rest in not_attending_wedding
        </p>
        <p>After initialization (or perhaps re-initialization), the
actual simulation of the wedding itself needs to play out,
which we will discuss in the next section.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.3. Simulation Management</title>
        <p>Moirai assumes that the given simulation engine can take
one step at a time, and in between steps, the engine can
be queried to find not only if a given set of conditions is
true, but also the counts of how many entities for which
the conditions are true. There exists a single operation
for this (just as with initialization) with a number of
options:
• run (NUM STEPS | until CONDITIONS)
either runs the simulation a set number NUM of
STEPS steps or until a given set of conditions is
found to be true (where a condition, we’ll soon
see, equates to a set of queries on the simulation).
STEPS can either be the keyword step (which
is assumed to be smallest atomic step size) or a
given unit of length (assuming the simulation
keeps track of time at diferent levels) (e.g., days,
weeks, months, years, centuries, millenia)
• CONDITIONS := CONDITION (or CONDITION)+</p>
        <sec id="sec-3-2-1">
          <title>CONDITIONS is in disjunctive normal form. In</title>
          <p>other words it is a number of clauses
(CONDITION) each of which consists of queries that are
logically connected via and, all of which are
connected via or
• CONDITION := QUERY (, QUERY)+</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>A CONDITION is a group of queries connected</title>
          <p>via logical and (denoted as a comma “,”)
• QUERY := COUNT entities CONDITION |</p>
          <p>NUM STEPS</p>
        </sec>
        <sec id="sec-3-2-3">
          <title>A QUERY is either the given number COUNT of entities are found to either have or be lacking the given CONDITION or the NUM of STEPS (as discussed above). Note: COUNT can be:</title>
          <p>
            COUNT := NUM | NUM+ | (&lt;|&gt;|&lt;=|&gt;=|==)
↪ NUM
NUM := [
            <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">0-9</xref>
            ]+
In other words, the query can test for exact
equality or for inequalities of the query counts (greater
than, less than, etc.)
• CONDITION := entities in PATTERN/ARITY|
entities
↪ (is|isnt|are|arent)?
↪ STATUS ((&lt;|&gt;|&lt;=|&gt;=|==)
↪ NUM)?|
entities
↪ (is|isnt|are|arent)?
↪ RELATIONSHIP/2
↪ ((&lt;|&gt;|&lt;=|&gt;=|==) NUM)?
          </p>
        </sec>
        <sec id="sec-3-2-4">
          <title>The possible CONDITIONs are the number of</title>
          <p>entities that are found in a given PATTERN, the
number of entities found with (or without) a given
STATUS, the number of entities found with (or
without) a given RELATIONSHIP, or the number
of STEPS (as discussed above). The CONDITIONs
At this stage, we might want to move to a funeral specific
ruleset; However, we can imagine that we would want
our simulation to be able to handle a range of diferent
large life events separately (e.g., it could look for both
weddings and funerals). Putting this together (along with
a fixed maximum duration for good measure), we would
have:
run until 2 entities in pattern
↪ getting_married/2 or
1 entities is recently_deceased,
1+ entities in pattern discovered_body/2
or 20 years</p>
          <p>As we can see, Moirai enables the simulation to run
until a set of conditions is true, but we are missing the
ifnal piece: handling diferent scenarios in diferent
manners given those conditions. Putting it all together, we
have the final set of operations for Moirai, the control
lfow operations.</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>3.4. Control Flow</title>
        <p>The control flow operations of Moirai follow the standard
suite of operations (e.g., if, else if, else, while, etc.). The
only major departure is that Moirai lacks many opera- run until 2 entities getting_married/2 or
tions commonly found in most languages (e.g., arbitrary 1 entities is recently_deceased, 1+
boolean comparisons, arithmetic, assignment), which ↪ entities in pattern
lends a specific flavor to its handling of the control flow ↪ discovered_loved_ones_body/2
operations. We note that the astute reader might have or 20 years;</p>
        <sec id="sec-3-3-1">
          <title>An if block as in many C-style languages; an ini</title>
          <p>tial if statement (and subsequent block of code
that runs, delimited by curly braces), optionally
followed by some number of else if (optionally
elif or elsif) statements, with an optional final else.
The CONDITIONS are a disjunction of
conjunctions as defined as above. A STATEMENT is one
of the operations (either previously discussed or
a control flow operation) in Moirai. The * symbol
represents that zero or more of this set of symbols
can be seen. The ? symbol means this symbol my
appear either zero or one time.
• while (CONDITIONS|ITERATION (&lt;|&lt;=) NUM)
↪ {STATEMENT+}
ITERATION := (iterations|i)</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>A while loop that runs until some CONDITIONS are met or for a set number of iterations (with many possible terms accepted)</title>
          <p>• yield</p>
        </sec>
        <sec id="sec-3-3-3">
          <title>A yield statement that returns control to the driv</title>
          <p>ing program (perhaps to accept user input), but
picking up exactly where it left of when Moirai
is told to run again.
• choose [ (NUM : {STATEMENT+})+ ]</p>
        </sec>
        <sec id="sec-3-3-4">
          <title>A choice block that randomly chooses one of the</title>
          <p>inner code blocks to run. NUM is the weight
associated with the given block of statements,
used to bias the selection away from a uniform
distribution.</p>
          <p>These control flow operations allow Moirai to chain
together arbitrary sequences of the operations. For
instance, let’s return to the previous wedding / funeral
example. The diferent events would have their own
rulesets and initialization steps, so we need to be able run
the correct simulations:
↪
...
}
else {</p>
          <p>...
Now, let’s say that we wanted this whole thing to run
until 5 such events had occurred, it would be as simple
as wrapping all of the above in the following block:
while iterations &lt; 5 {</p>
          <p>...</p>
          <p>Moirai enables many diferent possible modalities of
simulations, and in the following section we will discuss
diferent case studies, first progressing though how
existing experiences could be implemented with Moirai before
moving on to other possibilities inspired by non-social
simulation based literature, film, and video games.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Moirai – Case Studies</title>
      <sec id="sec-4-1">
        <title>Construction Kit [42] , and the epilogue of Bad</title>
        <p>News</p>
        <p>These three categories make up the main delineations
in how social simulation has been used up to this point.</p>
        <p>We note that experiences can use social simulation in
multiple categories – e.g., Dwarf Fortress uses it as both
substrate (history generation) and experience (fortress
mode); However, it is common for an experience to use
it in only one mode – nearly every “social simulation”
game uses it solely as experience (e.g., The Sims, Prom
Week, Tokimeki Memorial, Princes Maker, etc.). For a
visual representation of this continuum see figure 1. We
will now examine how these experiences would be set
up in Moirai.
4.1.1. Social Simulation as Substrate
The simplest example is an experience that uses it solely
as substrate. In this way, the world is initialized, it runs,
and then stops – at which point the simulation is used as
content for some (elided here) downstream process:
load simulation.lachesis;
initialize world.clotho;
run 200 steps;
4.1.2. Social Simulation as Experience
In the following sections we will first discuss how social Not quite as simple is something that uses social
simulasimulation has been utilized historically in a variety of tion solely as a precursor to the core experience, but in
experiences. For these cases, we will provide a demon- large part it looks much the same:
stration of how it could be implemented via Moirai. We
will then discuss more complex use cases of Moirai and
the kinds of experience that it can enable.
load simulation.lachesis;
initialize world.clotho;
while is simulation_still_running {
run 1 step;
yield;
}</p>
        <sec id="sec-4-1-1">
          <title>4.1. Previous Social Simulation</title>
        </sec>
        <sec id="sec-4-1-2">
          <title>Experiences</title>
          <p>
            To begin, we will first examine a number of diferent In this case, the simulation runs only one step at a
social simulation experiences, and their use of social sim- time before yielding to the driving experience to make
ulation. To provide some vocabulary, we will examine the game play out as it should.
social simulation in various roles:
• Substrate – Social simulation that is used before 4.1.3. Social Simulation as Performance
the play experience to provide the “world” that Finally, we come to simulation as performance. However,
the player experiences. Examples include: Dwarf we will note that it looks (and is) identical to simulation
Fortress, Thousand Threads [
            <xref ref-type="bibr" rid="ref41">41</xref>
            ], and Bad News as substrate.
• Experience – Social simulation is used during
play to provide a major (if not sole) component load simulation.lachesis;
of the play. Examples include: The Sims, Dwarf initialize world.clotho;
          </p>
          <p>Fortress, Prom Week, and Princess Maker run 200 steps;
• Performance – Social simulation is used after
play (if any exists) as a means of providing con- The only diference comes from the framing experience
tent to the player (or audience member) to receive. – does the player interact with the simulated world or
Examples include: Sheldon County, Cozy Mystery are they simply a passive audience member?
Simulation as Substrate</p>
          <p>Simulation as Experience</p>
          <p>Simulation as Performance</p>
          <p>The Sims</p>
          <p>Princess Maker
Tokimeki Memorial</p>
          <p>Prom Week
Bad News</p>
          <p>Dwarf Fortress</p>
          <p>Bad News</p>
          <p>Sheldon County</p>
          <p>Proposed Stand By Me experience</p>
          <p>Proposed Back to the Future experience
Simulation Before Play</p>
          <p>Simulation During Play</p>
          <p>Simulation After Play
4.1.4. Previous Complex Experiences
As noted in figure 1 there are two noted experiences that
use social simulation in various modes – Dwarf Fortress
and Bad News – and we will know show how Moirai
could be used to drive these experiences.</p>
          <p>Dwarf Fortress uses social simulation at a broad level
for history generation before transitioning into a more
ifne-grained moment-to-moment simulation following
a dwarven expedition to create the titular mountain
fortress. In Moirai this would look like:
//Substrate
load history_generation.lachesis;
initialize world.clotho;
run 250 years;
//Experience
load dwarf_simulation.lachesis;
initialize fortress.clotho;
while is simulation_still_running {
run 1 step;
yield;
}</p>
          <p>This is just the concatenation of simulation as substrate
and experience. Bad News used social simulation as both
the substrate that the player explored and as performance
for an epilogue where the player got to see how life
panned out for the characters they encountered in their
play through. In Moirai:
//Substrate
load small_town.lachesis;
initialize small_town.clotho;
run 140 years;
//Experience: Player explores simulated world
yield;
//Performance
run 40 years;</p>
          <p>Bad News used the same simulation code and the exact
same world constructed via simulation for its epilogue,
so there is no need for anything other than running
during the “performance” portion. In the next section, we
will explore a variety of more complex permutations of
simulations that are enabled by Moirai’s features.</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>4.2. Moirai Enabled Design Patterns</title>
          <p>In the following sections we will discuss a number of
diferent design patterns that Moirai enables. We will
detail the types of experience that the pattern enables
and show sample code.
4.2.1. Coarse Simulation to Fine Simulation –</p>
          <p>Murder Mystery/RomCom
initialize manor.clotho :keeping entities
↪ where in have_motive/2
:keeping entities where in relationship/2
↪ with entity in kept;
run until 1 character is murdered;
Similarly, a romantic comedy like My Best Friend’s
Wedding might look like:
//Coarse history generation
We will start with the simplest mode of combining simu- load modern.lachesis;
lations into an experience, which is similar to the pattern initialize modern.clotho;
found in Dwarf Fortress in which various levels of sim- run until 3+ characters in pattern
ulation are chained together. The key diference here ↪ marriage_love_triangle/3;
is that characters will carry over between the simula- //Once a love triangle pops up and 2 are
tions; in Dwarf Fortress simulation begins coarsely, with ↪ getting married to each other, move to
creation-myth style exploits of gods and other fantasti- ↪ the wedding
cal characters who—though not explicitly present in the load wedding.lachesis;
ifner-grained fortress-mode simulation—provide raw ma- initialize wedding.clotho :keeping entities
terial for paintings, songs, and other simulated cultural ↪ where in love_triangle/3
artifacts. :keeping entities where in family_of/2 with</p>
          <p>
            A large number of tropes in various forms of media ↪ entity in getting_married/2
often assume some sort of shared backstory and history :keeping entities where in good_friend/2
for the characters that occurred before the portrayed ↪ with entity in getting_married/2;
narrative, but carries over and informs the narrative. run until 1+ characters in
For instance, a closed room murder mystery such as ↪ romantic_misunderstanding/2;
Murder on the Orient Express or Gosford Park relies In both cases there is a coarse-grained simulation that
on the characters having intertwined histories such runs until some conditions are met, then characters are
that a large number of characters will have motive ifltered based on their relationships to each other, and
for the murder, but the narrative ostensibly occurs then the final fine-grained simulation occurs until some
after that history has occurred. Similarly, a romantic culminating event has occurred.
comedy such as My Best Friend’s Wedding [
            <xref ref-type="bibr" rid="ref43">43</xref>
            ] or The
Proposal [
            <xref ref-type="bibr" rid="ref44">44</xref>
            ] assume some sort of shared history, but
the narrative takes place during an important event 4.2.2. Simulate, Modify, Repeat – Back to the
after this history has transpired (in a way, a closed Future/Live Die Repeat
room romance as opposed to a closed room murder). A common trope in modern media is that of the timeloop,
Unlike Dwarf Fortress, characters need to be carried over where a character (or set of characters) is able to
rebetween the simulations, as opposed to just using the ear- live the same experience over and over such as in the
lier simulation as a broad culture level history generation. movies Groundhog Day [
            <xref ref-type="bibr" rid="ref45">45</xref>
            ], Live Die Repeat [
            <xref ref-type="bibr" rid="ref46">46</xref>
            ] and
Palm Springs [
            <xref ref-type="bibr" rid="ref47">47</xref>
            ]. A related trope is where characters
A murder mystery like Gosford Park might look like the travel into the past where their actions cause changes
following, in which an initial coarse simulation runs until when they return to the future such as in the movies
several characters have a motive to murder (possibly gen- Back to the Future and The Butterfly Efect [
            <xref ref-type="bibr" rid="ref48">48</xref>
            ]. In both
erating many extraneous characters in its process), and cases, the narrative is reset to a certain point and then
then a secondary finer grained simulation runs involving changes play out again and again. A Back to the Future
only those characters with motive and others that are style experience in Moirai would look like:
close to them:
//Coarse history generation
load georgian.lachesis;
initialize georgian.clotho;
run until 5+ characters in pattern
↪ have_motive/2;
//Once characters have motive, move to
↪ fine-grained closed room
load murder.lachesis;
//Coarse history generation
load forties.lachesis;
initialize forties.clotho;
run 10 years;
load fifties.lachesis;
initialize fifties.clotho
:keeping all characters
:keeping all locations
:saving kept as fifties_world;
while is simulation_still_running {
while iterations &lt; 7 { //1 week
yield; //Player interacts
run 1 day;
initialize episode3.clotho
          </p>
          <p>:keeping entities where is main_character;
run until 1+ characters in episode_completed;
4.2.4. Full Continuum Usage – Stand By Me
}
run 30 years;
yield; //Player sees the changes
initialize fifties.clotho
:restoring fifties_world;</p>
          <p>One final usage is using social simulation across the full
spectrum of before, during, and after play. While this
is not as complex as the previous examples, perhaps, it
} is still an example of social simulation that is enabled
by Moirai used in a way that has not been implemented</p>
          <p>
            This assumes that there is still substrate that is gener- in other experiences (to the authors’ knowledge). The
ated as history, but it is certainly conceivable for that por- touchstone for this usage is something like the film Stand
tion to be removed and replaced with a purely authored By Me. In Stand By Me, the characters have a shared
initial world state. Although the proposed experience history, the narrative unfolds and relationships are tested
above is not identical to the plot of Back to the Future, it and changes occur, and then the epilogue discusses the
strikes a similar tone. Here, ten years of “forties world” lives that the characters had after the main events of the
is simulated as substrate and then recorded as “fities story. In Moirai we would envision it as:
world” for safe keeping. The player is given a week to
experience and influence the entities of fities world, and //Coarse history generation
then the simulation is run for another thirty years (bring- load history.lachesis;
ing us to the eighties), to see how these entities ended up. initialize setting.clotho;
The experience then returns to the stored “fities world”, run 2 years;
allowing the player to make diferent choices, and see load main_event.lachesis;
what impact those diferent choices have on the lives of while iterations &lt; 7 { // Play for 1 week
the characters thirty years later as compared to their pre- yield; //Player interacts
vious week-long romp in the fities. As authored above run 1 day;
this process can repeat indefinitely, or until some in-game }
goal criteria is achieved (e.g., ensuring two high-school load epilogue.lachesis;
sweethearts remain in love as they grow older). run 25 years;
4.2.3. Episodic Structure – The Odyssey
Another pattern common in various forms of media is
where a core cast of characters encounters diferent
scenarios in an episodic structure. This dates back to at least
the Odyssey [
            <xref ref-type="bibr" rid="ref49">49</xref>
            ], but is also the basis of most modern
television programs. Many interactive experiences also
build of of this. For instance, the Persona [
            <xref ref-type="bibr" rid="ref50">50</xref>
            ] series
involves a slowly-growing cast of characters that take
on problems in a month-based episodic structure. An
example in Moirai might look like:
//Coarse history generation
load history.lachesis;
initialize setting.clotho;
run 2 years;
load episode1.lachesis;
initialize episode1.clotho
          </p>
          <p>:keeping entities where is main_character;
run until 1+ characters in episode_completed;
load episode2.lachesis;
initialize episode2.clotho</p>
          <p>:keeping entities where is main_character;
run until 1+ characters in episode_completed;
load episode3.lachesis;</p>
          <p>In many ways, this is very much like a combination of
Bad News (history and epilogue generation) and Dwarf
Fortress (history generation and active simulation).</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion and Future Work</title>
      <p>This paper introduces Moirai, a Domain Specific
Language which facilitates the creation of interactive
experiences that leverage social simulation systems. In
particular, it is intended to be used for experiences in
which simulated narrative content is used before, during,
and after play. Through a demonstration of case-studies—
Moirai encodings of popular narratives from literature,
iflm, television, and non-simulation games—the authors
have shown the versatility of the system, and its capacity
for enabling new types of simulation-driven playable
experiences that mirror popular tropes and narrative genres
in other forms of media.</p>
      <p>Natural future work for this project includes
building out one or more of these case studies into an actual
playable experience. Doing so will enable Moirai to be
evaluated on its merits both as an authoring assistant
and on the quality of the produced experience. This in
turn may lead to further insights for language features
that could be added to Moirai, leading to greater ease of
use and more varied narrative output.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>H.</given-names>
            <surname>Jenkins</surname>
          </string-name>
          ,
          <article-title>Game design as narrative architecture</article-title>
          ,
          <source>Computer</source>
          <volume>44</volume>
          (
          <year>2004</year>
          )
          <fpage>118</fpage>
          -
          <lpage>130</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>WardripFruin, Toward characters who observe, tell, misremember, and lie</article-title>
          ,
          <source>in: Eleventh Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Bad news: An experiment in computationally assisted performance</article-title>
          ,
          <source>in: International Conference on Interactive Digital Storytelling</source>
          , Springer,
          <year>2016</year>
          , pp.
          <fpage>108</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>McCoy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Reed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Social story worlds with comme il faut</article-title>
          ,
          <source>IEEE Transactions on Computational intelligence and AI in Games</source>
          <volume>6</volume>
          (
          <year>2014</year>
          )
          <fpage>97</fpage>
          -
          <lpage>112</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Reed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Maddaloni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>Wardrip-Fruin, The ensemble engine: Nextgeneration social physics</article-title>
          ,
          <source>in: Proceedings of the Tenth International Conference on the Foundations of Digital Games (FDG</source>
          <year>2015</year>
          ),
          <year>2015</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>McCoy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Reed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Prom week</article-title>
          ,
          <source>in: Proceedings of the International Conference on the Foundations of Digital Games</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>235</fpage>
          -
          <lpage>237</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>DeKerlegand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <article-title>Pedagogical challenges in social physics authoring</article-title>
          ,
          <source>in: International Conference on Interactive Digital Storytelling</source>
          , Springer,
          <year>2021</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Guimarães</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jhala</surname>
          </string-name>
          ,
          <article-title>Prom week meets skyrim</article-title>
          .,
          <source>in: AAMAS</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>1790</fpage>
          -
          <lpage>1792</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>L.</given-names>
            <surname>Morais</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <article-title>From caveman to gentleman: a cif-based social interaction model applied to conan exiles</article-title>
          ,
          <source>in: Proceedings of the 14th International Conference on the Foundations of Digital Games</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>11</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <article-title>Kismet: a small social simulation language</article-title>
          , in: Summerville,
          <string-name>
            <given-names>A.</given-names>
            , &amp;
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          (
          <year>2020</year>
          ,
          <article-title>September)</article-title>
          .
          <source>Kismet: a Small Social Simulation Language. In 2020 International Conference on Computational Creativity (ICCC)</source>
          .
          <source>(Casual Creator Workshop)</source>
          . ACC,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>K.</given-names>
            <surname>Compton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Casual creators</article-title>
          ,
          <source>in: Proceedings of the Sixth International Conference on Computational Creativity</source>
          ,
          <year>2015</year>
          , p.
          <fpage>228</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <article-title>Analyzing the expressive range of a level generator</article-title>
          ,
          <source>in: Proceedings of the 2010 Workshop on Procedural Content Generation in Games</source>
          ,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Walker</surname>
          </string-name>
          ,
          <source>Marielda 01: The city of light pt. 1</source>
          ,
          <year>2016</year>
          . URL: https://friendsatthetable.net/ marielda-01
          <string-name>
            <surname>-</surname>
          </string-name>
          the
          <article-title>-city-of-light-pt-1.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alder</surname>
          </string-name>
          ,
          <article-title>The quiet year (game), Buried Without Ceremony</article-title>
          , Pittsburgh, PA (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Harper</surname>
          </string-name>
          , Blades in the Dark,
          <source>Evil Hat Productions</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Yeates</surname>
          </string-name>
          ,
          <article-title>Serial fiction podcasting and participatory culture: Fan influence and representation in the adventure zone</article-title>
          ,
          <source>European Journal of Cultural Studies</source>
          <volume>23</volume>
          (
          <year>2020</year>
          )
          <fpage>223</fpage>
          -
          <lpage>243</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>G.</given-names>
            <surname>McElroy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>McElroy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>McElroy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>McElroy</surname>
          </string-name>
          ,
          <source>Ethersea: Episode 1</source>
          ,
          <year>2021</year>
          . URL: https: //maximumfun.org/episodes/adventure
          <article-title>-zone/ the-adventure-zone-ethersea-episode-1/.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>G.</given-names>
            <surname>Gygax</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cook</surname>
          </string-name>
          , The Dungeon Master Guide, No.
          <volume>2100</volume>
          ,
          <string-name>
            <surname>2nd</surname>
          </string-name>
          <article-title>Edition (Advanced Dungeons and Dragons)</article-title>
          , TSR, Inc,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Walker</surname>
          </string-name>
          ,
          <article-title>The road to partizan 05: Ech0</article-title>
          and dusk to midnight,
          <year>2019</year>
          . URL: https://friendsatthetable.net/ the-road-to-partizan-05
          <string-name>
            <surname>-</surname>
          </string-name>
          ech0
          <string-name>
            <surname>-</surname>
          </string-name>
          dusk
          <string-name>
            <surname>-</surname>
          </string-name>
          to-midnight.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>K.</given-names>
            <surname>Hymes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Seyalıoğlu</surname>
          </string-name>
          ,
          <article-title>Dialect: A Game about Language and how it Dies</article-title>
          , Thorny Games,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>B.</given-names>
            <surname>Sovereign</surname>
          </string-name>
          , Armour Astir: Advent, Itch.io,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>K.</given-names>
            <surname>Poh</surname>
          </string-name>
          , Ech0, Role Over Play Dead,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>R.</given-names>
            <surname>Rethal</surname>
          </string-name>
          , Dusk to Midnight, Itch.io,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ramsay</surname>
          </string-name>
          , Beam Saber, Itch.io,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A.</given-names>
            <surname>Roberts</surname>
          </string-name>
          , For the queen [card game],
          <source>Evil Hat Productions</source>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>B.</given-names>
            <surname>Robbins</surname>
          </string-name>
          , Microscope, Lame M Productions (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>T.</given-names>
            <surname>Adams</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Adams</surname>
          </string-name>
          , Dwarf fortress, Game [Windows, Mac, Linux],
          <source>Bay</source>
          <volume>12</volume>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>J.</given-names>
            <surname>Whedon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. K.</given-names>
            <surname>Vaughan</surname>
          </string-name>
          , G. Jeanty,
          <source>Bufy the Vampire Slayer: Season 8</source>
          , volume
          <volume>1</volume>
          ,
          <string-name>
            <given-names>Dark</given-names>
            <surname>Horse</surname>
          </string-name>
          <string-name>
            <surname>Comics</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <surname>K. J. Wetmore</surname>
            <given-names>Jr</given-names>
          </string-name>
          , Uncovering Stranger Things:
          <article-title>Essays on eighties nostalgia, cynicism and innocence in the series</article-title>
          ,
          <source>McFarland</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>E.</given-names>
            <surname>Taylor</surname>
          </string-name>
          ,
          <article-title>Dating-simulation games: Leisure and gaming of japanese youth culture</article-title>
          .,
          <source>Southeast Review of Asian Studies</source>
          <volume>29</volume>
          (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>A.</given-names>
            <surname>Champlin</surname>
          </string-name>
          ,
          <article-title>Playing with feelings: Porn, emotion, and disability in katawa shoujo</article-title>
          ,
          <source>Well Played</source>
          <volume>3</volume>
          (
          <year>2014</year>
          )
          <fpage>63</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Galbraith</surname>
          </string-name>
          ,
          <article-title>Bishōjo games:'technointimacy'and the virtually human in japan</article-title>
          ,
          <source>Game studies 11</source>
          (
          <year>2011</year>
          )
          <fpage>31</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>P.</given-names>
            <surname>Interactive</surname>
          </string-name>
          , Dev diary# 9:
          <string-name>
            <surname>Lifestyles</surname>
          </string-name>
          , Crusader Kings III
          <volume>14</volume>
          (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>V.</given-names>
            <surname>Maxis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. E.</given-names>
            <surname>Arts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. K.</given-names>
            <surname>Gibson</surname>
          </string-name>
          , G. Rodiek,
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Vaughan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. E.</given-names>
            <surname>Holmberg-Weidler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. M.</given-names>
            <surname>Hollmo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Miceli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ross</surname>
          </string-name>
          , et al.,
          <source>The sims 4</source>
          ,
          <string-name>
            <given-names>Electronic</given-names>
            <surname>Arts</surname>
          </string-name>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>A.</given-names>
            <surname>Christie</surname>
          </string-name>
          ,
          <article-title>Murder on the orient express</article-title>
          , Lulu. com,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>P. W.</given-names>
            <surname>Graham</surname>
          </string-name>
          ,
          <article-title>From mansfield park to gosford park: The english country house from austen to altman</article-title>
          ,
          <source>Persuasions: The Jane Austen Journal</source>
          <volume>24</volume>
          (
          <year>2002</year>
          )
          <fpage>211</fpage>
          -
          <lpage>226</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          , Curating simulated storyworlds,
          <source>Ph.D. thesis, UC Santa Cruz</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>E.</given-names>
            <surname>Streeter</surname>
          </string-name>
          ,
          <source>Father of the Bride, Simon and Schuster</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>R.</given-names>
            <surname>Reiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Wheaton</surname>
          </string-name>
          , R. Phoenix,
          <string-name>
            <given-names>C.</given-names>
            <surname>Feldman</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. O'Connell</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Sutherland</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Nitzsche</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>King</surname>
          </string-name>
          , Stand by me,
          <source>Skífan</source>
          ,
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>R.</given-names>
            <surname>Zemeckis</surname>
          </string-name>
          ,
          <article-title>Back to the future (film</article-title>
          ),
          <source>Amblin Entertainment</source>
          (
          <year>1985</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <surname>Seamount</surname>
            ,
            <given-names>Thousand</given-names>
          </string-name>
          <string-name>
            <surname>Threads</surname>
          </string-name>
          , Seamount,
          <year>2022</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kreminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Acharya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Junius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Oliver</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Compton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dickinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Focht</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mason</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mazeika</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Cozy mystery construction kit: prototyping toward an ai-assisted collaborative storytelling mystery game</article-title>
          ,
          <source>in: Proceedings of the 14th International Conference on the Foundations of Digital Games</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Hogan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bass</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bosco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Diaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Everett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grifiths</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. N.</given-names>
            <surname>Howard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Kovacs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Mulroney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Roberts</surname>
          </string-name>
          , et al.,
          <article-title>My best friend's wedding</article-title>
          ,
          <source>Sony Pictures Entertainment/TriStar</source>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>A.</given-names>
            <surname>Fletcher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Chiarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bullock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Steenburgen</surname>
          </string-name>
          , et al.,
          <source>The Proposal, Touchstone Pictures</source>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ramis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Albert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rubin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Murray</surname>
          </string-name>
          , A. MacDowell, C. Elliott,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tobolowsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Doyle-Murray</surname>
          </string-name>
          , G. Fenton,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Herring</surname>
          </string-name>
          , et al.,
          <string-name>
            <surname>Groundhog</surname>
            <given-names>day</given-names>
          </string-name>
          ,
          <source>Columbia Tristar Home Video</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <given-names>L.</given-names>
            <surname>Garcia-Siino</surname>
          </string-name>
          ,
          <article-title>Edge of tomorrow by doug liman</article-title>
          ,
          <source>Science Fiction Film and Television</source>
          <volume>9</volume>
          (
          <year>2016</year>
          )
          <fpage>295</fpage>
          -
          <lpage>299</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [47]
          <string-name>
            <given-names>L.</given-names>
            <surname>Coates</surname>
          </string-name>
          ,
          <article-title>The best new shows, movies to come out of quarantine</article-title>
          .,
          <source>UWIRE Text</source>
          (
          <year>2020</year>
          )
          <fpage>1</fpage>
          -
          <lpage>1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [48]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bress</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Gruber</surname>
          </string-name>
          , Butterfly Efect.
          <article-title>Director's Cut; Written</article-title>
          &amp;
          <string-name>
            <surname>Directed By Eric Bress &amp; J. Mackye</surname>
            <given-names>Gruber</given-names>
          </string-name>
          ; Starring: Ashton Kutcher, Amy Smart, Eric Stoltz,
          <string-name>
            <given-names>William</given-names>
            <surname>Scott</surname>
          </string-name>
          , Elden Henson, Logan Lerman, Icon Home Entertainment,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [49]
          <string-name>
            <given-names>H.</given-names>
            <surname>Homer</surname>
          </string-name>
          ,
          <article-title>The odyssey</article-title>
          , Xist Publishing,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [50]
          <string-name>
            <given-names>S. M.</given-names>
            <surname>Tensei</surname>
          </string-name>
          , Persona 4:
          <string-name>
            <surname>Golden</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>