# Curating Simulated Storyworlds — Chapter 7: World > NOTE: THIS IS A MARKDOWN CONVERSION INTENDED FOR LLM CONSUMPTION. > IF YOU ARE A HUMAN BEING, READ THE PDF INSTEAD: > https://jamesryan.computer/papers/2018_ryan_curating_simulated_storyworlds.pdf > > The PDF is the canonical document, typeset with every figure and table. This file > is a plain-text conversion of the LaTeX source, published HERE so that software agents > can read the thesis without parsing a PDF. It is lossy and is not meant for humans. > > This file is chapter 7 of 14 only: World (~20,000 words). > See below for links to markdown conversions of the individual chapters. > > **Structure.** Sections are `##`/`###`/`####` headings. Cross-references are resolved to > their numbers ("Section 3.1.1", "Chapter 5"), so a heading can be searched for directly. > Citations are inline bracketed keys such as `[ryan2017grimes]`; every key used in the text > has an entry in the bibliography, formatted as `- **[key]** Author. Title. Venue, Year.` > Footnotes appear inline as `[Note: ...]`. > > **Conversion limits.** Figures and most complex tables appear as `[Figure omitted]` or > `[Table omitted]`. Code fences carry no language tag. A few diacritics in author names > were simplified from the Latin-1 source. > > **All files.** > > Index (this list, plus the abstract; small): https://jamesryan.computer/thesis/index.md > Whole thesis in one file (large, ~1.6 MB): https://jamesryan.computer/thesis/full.md > > By chapter: > - 01. Introduction (~4,600 words, ~30 KB) — https://jamesryan.computer/thesis/01-introduction.md > - 02. Defining Emergent Narrative (~6,900 words, ~47 KB) — https://jamesryan.computer/thesis/02-defining-emergent-narrative.md > - 03. The Pleasure of Emergent Narrative (~21,000 words, ~135 KB) — https://jamesryan.computer/thesis/03-the-pleasure-of-emergent-narrative.md > - 04. The Pain of Emergent Narrative (~41,000 words, ~268 KB) — https://jamesryan.computer/thesis/04-the-pain-of-emergent-narrative.md > - 05. Refining Emergent Narrative (~11,000 words, ~73 KB) — https://jamesryan.computer/thesis/05-refining-emergent-narrative.md > - 06. James Ryan Generator (~2,800 words, ~16 KB) — https://jamesryan.computer/thesis/06-james-ryan-generator.md > - 07. World (~20,000 words, ~129 KB) — https://jamesryan.computer/thesis/07-world.md > - 08. Case Study: Diol/Diel/Dial (~9,300 words, ~59 KB) — https://jamesryan.computer/thesis/08-case-study-diol-diel-dial.md > - 09. Talk of the Town (~25,000 words, ~162 KB) — https://jamesryan.computer/thesis/09-talk-of-the-town.md > - 10. Case Study: Bad News (~22,000 words, ~132 KB) — https://jamesryan.computer/thesis/10-case-study-bad-news.md > - 11. Hennepin (~32,000 words, ~209 KB) — https://jamesryan.computer/thesis/11-hennepin.md > - 12. Looking Ahead: Sheldon County (~11,000 words, ~75 KB) — https://jamesryan.computer/thesis/12-looking-ahead-sheldon-county.md > - 13. Conclusion (~2,700 words, ~17 KB) — https://jamesryan.computer/thesis/13-conclusion.md > - 14. Bibliography (~29,000 words, ~233 KB) — https://jamesryan.computer/thesis/14-bibliography.md My name generator had evolved. I was hooked as soon as I saw the first synthetic names—it felt like behind each one was a tiny little computer person, and they were appearing one after the other. But while they emerged out of the same procedure, on the same machine, each was partitioned into its own tiny universe constituted entirely by itself—by one pregnant name. I could generate multiple names in one run, and maybe then there was a stronger sense of cohabitation, but what I really wanted was for these little people to interact. I still did not know how to do much with code, but I realized that I could do something interesting by simply reapplying the procedure that had enabled the name generator in the first place: picking randomly from a list of items. In an evolved form, the program now worked like this: generate a series of names, compile these into a list of synthetic names (people), and then randomly select a pair of names *from that list*. Now I had all the tiny people living in the same universe—the list containing all the generated names—and I had a means of deciding who would interact with whom. But now I had to figure out how to model an interesting interaction between the randomly selected pair, which was a significant challenge given my very limited coding skills. I have always been interested in genealogy, and that predilection would drive the evolution of this system beginning with my initial modeling of character interaction. As established, the program to this point was almost entirely based on the single operation of selecting randomly from a list. My next move was to apply this *again* to create new computer people as the offspring of existing ones. This was done by taking the pair who were randomly selected to interact, checking if procreation would be possible between them, and, if it was, creating a new computer person. To do the middle step, the system needed a means of representing the sex of a computer person, and so this became the first modeled character attribute beyond one's name. As noted in Chapter 6, the names corpus that enabled this whole enterprise was composed of two files, one containing male-coded names and the other female-coded ones. Instead of selecting a first name from the entire corpus, the system now randomly determined the sex of the character first, and then picked a name from the corresponding gender-coded list. The system also kept track of the sex that was randomly selected, which meant the little computer people were now represented as tuples comprising one's sex and name. To create a new person, the system carried out this same procedure, but instead of randomly selecting a surname, it operationalized a patronymic scheme by which the father's surname would be inherited. This required further evolution of the character representation, since the monolithic name now had to be broken into its constituent parts, so that the program could specifically identify surnames. In this way, my system kept evolving into an increasingly elaborate hack—an embryonic simulation engine, and then eventually a full-fledged one—and along the way I learned how to program. One critical addition was the modeling of time, which was introduced to overcome the otherwise inevitable situation of all the people living indefinitely as immortals. This took the form of a simulation timestep, treated as a full year, during which new people might be born. As part of this reformulation, the system kept track of everyone's age, and with each passing year there was a chance of death. At this stage, I called the program *Lineage*, and viewed it as a genealogy simulation. After introducing record keeping about who gave birth to whom (the character representation now included one's parents and children), I could explore the generated family trees by chaining backward or forward along the filiation links. It was fun to see which lineages would persist according to the happenstance of the random number generator. By changing very little code, I could also explore alternative naming practices—a matronymic scheme for surnames, or babies being named after family members or other people in the simulated world. As for that world, the next critical hack was to introduce a modeling of space, by which I intended to inject more intrigue into the genealogy simulation. Whereas the world had been totally abstract as far as its physical representation, now it became an open sea scattered with islands. This was achieved by representing the world as a coordinate grid for which certain coordinates were randomly selected to have islands. To move about the world, the tiny computer people could build tiny computer ships, which allowed exploration into adjacent world coordinates. If an island was encountered, the seafarers would disembark and carry on with their abstract little lives on the new island. This richer modeling introduced interesting nonlinear dynamics into the genealogy simulation, and it elicited new ideas about how I could make it even richer. From here, my programming skill began to ramp up more quickly, and in turn the simulation detail did too. I now called this evolved form of the system *World*. Within a year of creating the name generator, I had been accepted to UC Santa Cruz, where I would commence on a research agenda dedicated specifically to the intersection of natural language and videogames. Thus, my early official projects were not in the area of simulation or even emergent narrative, but rather expressive natural language processing [ryan2016recognizing,ryan2014toward,ryan2014combinatorial,lukin2014automating], though I continued to develop *World* as a side project. [Note: At this time, I was also a member of Marilyn Walker's Natural Language and Dialogue Systems lab at UC Santa Cruz.] In the early months of 2014, I took Noah Wardrip-Fruin's class *Playable Media* [wardrip2014cmps290j], which requires the students to distribute a significant project to the rest of the class for critique. For this, I chose to build a text adventure that would harness *World* as a *simulation engine*. By ‘simulation engine', I mean a framework that is itself a work of media, but one that is primarily intended to fuel *second-order media experiences*. In my configuration, *World* would drive a text adventure called *Islanders*, and so the underlying simulation would not be experienced directly, but rather through the higher-order mediation of a designed interactive experience. This pattern is a calling card of my simulation practice, and this chapter and the following ones will be structured accordingly to introduce, one after the other, my three simulation engines along with three second-order media experiences that are driven by those engines. It took me a while to realize the power of this decoupling—namely that a single simulation framework, viewed as an engine, may drive multiple experiences that take alternative approaches to the process of curating its simulated storyworlds. As a result of this, the few people that are aware of this project know it as a monolithic thing named either ‘World' or ‘Islanders'. Again, to be clear, *World* is the simulation engine and *Islanders* is a text adventure built atop it. While *Islanders* was not particularly successful, it was through conversations about the project with Noah and also Michael Mateas (by then they were my sole coadvisors) that I learned that I could decide my own dissertation topic, or more specifically, that it could change. For some reason I had viewed my statement of purpose (in which I proposed to do videogame dialogue generation) as a kind of binding contract, but after a friendly comment from Michael—“I hear your *Islanders* project is transmogrifying into a dissertation topic!”—I decided to incorporate my simulation practice into my actual research agenda. [Note: When prospective graduate students in the new department of computational media visit UC Santa Cruz, I attempt to illustrate the wonder of this place by explaining how all my weird side projects (that I would have done anyway) somehow became official research.] The result was initially a kind of loose exploration of emergent narrative surrounding conversationally competent characters in a massive simulated storyworld, which is especially apparent in the publications on *Talk of the Town* [ryan2015toward,ryan2016lightweight,ryan2016aiide,ryan2016translating,summerville2016cfgs,ryan2017simulating], the subject of Chapter 9. By the end of 2014, I had to decided to abandon *World* to do a technical and intellectual reboot in the form of *Talk of the Town*. As my simulation practice was developing, my thinking about emergent narrative coevolved in turn, and the latter would eventually solidify into the framework at the heart of this dissertation: curationist emergent narrative. This coevolution pertained especially to the idea I called *story recognition*, which was introduced in two 2015 papers [antoun2015generating,ryan2015open] as the technical challenge of building a simulation that could recognize its own interesting emergent stories. [Note: I now prefer the term ‘story sifting', as I explained in Chapter 5.] While *Islanders* is the *World*-driven media experience whose development was most extensive, I have chosen to use another project, *Diol/Diel/Dial*, as the case study following this chapter. This is because that project, a hypertext encyclopedia generated for a *World* world, was actually more critical in the development of my increasing technical and intellectual emphasis on curation in emergent narrative. Nonetheless, because the development of *World* was so tangled in the development of *Islanders*, I will inevitably tell the story of the latter in the course of explaining the former. While it evolved gradually out of my name generator, and the intermediate system *Lineage*, this chapter is about *World* at the final stage of its development, constituted in the code base that was used to generate *Diol/Diel/Dial*. Like any computer program, my simulation engines have evolved over time, but in the following chapters I describe each system as it was structured in driving the case study of the coupled chapter. My intention in these chapters is multifarious, in that I seek to: reflect on my past, provide an autoethnography of my simulationist media practice, report technical contributions, report intellectual contributions, further illustrate the idea of curationist emergent narrative, demonstrate the feasibility (and challenges) of that framework in terms of completed projects, articulate a poetics of that approach learned from successes and failures, and to sketch a series of open technical and design challenges. The larger story of this entire retrospective, spanning from *James Ryan Generator* (2012) to *Sheldon County* (2018–), is one of an increasing emphasis on practices of curation by which the stories that emerge from massive world simulations may be recognized and then mounted in full-fledged media experiences. These are the reflections of a *simulationist-cum-curationist*. This chapter and the subsequent ones will take the following structure. First, I will recount the impetus for developing the chapter's subject artifact (simulation engine or media experience), as I have just done for *World*. Next, I will explain how the artifact works. Finally, I will discuss the artifact. In the chapters devoted to case studies of media experiences, I will also provide a self-critique that is driven by the intellectual framework that I developed in Part I of the dissertation to appraise all of emergent narrative (pleasure, pain, curation). As such, I will be using these weapons of appraisal against myself. Critically, the resulting series of critiques will demonstrate an evolution toward artifacts that maintain the pleasure of emergent narrative while simultaneously alleviating the pain, through an increasing utilization of curation. This evolution is in fact a case of coevolution: my ideas about emergent narrative—which eventually solidified into the curationist framework—coevolved along with my simulation and media practice. As such, these chapters tell a self-referential story of how this dissertation itself came to be; if you like strange loops, just wait. Before moving on, I should say more about my approach to evaluation in this chapter (and the subsequent ones). I believe that computational systems that are intended to support media experiences can only be appraised through actual implemented experiences that are built atop them; others have articulated this before me [mateas2001expressive,stern2008embracing,horswill2013science,koenitz2014five,wardrip2014envisioning]. Because the purpose of *World* is to drive second-order media experiences, I am going to hold off on appraising it in that regard until the following chapter, in which I will critique it through the lens of *Diol/Diel/Dial* (an actual implemented media experience built atop it). In lieu of such appraisal, in this chapter I will instead situate *World* against related technical work, both in a broad sense of its approach to simulation and also in terms of some of its specific subsystems, particularly the one that models character language phenomena. (This alternating structure will recur in the following chapters, as well.) For clarity, I discuss this related work in a distributed manner, throughout the chapter, as the pertinent concepts arise in my discussion. As a final note, *World* has been reported in one paper that was dedicated exclusively to its language modeling [ryan2016diegetically], but otherwise this chapter tells its story for the first time. ## Preamble: *Islanders * *Islanders* (2014) is a text adventure driven by the *World* simulation engine. Since the development of both projects was deeply intertwined—*intertwingled*, even [nelson1987computer, p. DM31]—I will first briefly outline the former before proceeding to describe, in the rest of the chapter, how the latter works. #### Living a Life Prior to *Islanders* gameplay, a *World* world is generated and then simulated for 100 years, at which point the player is randomly assigned to the womb of a pregnant woman in the storyworld; the next year, the player character is born. In this way, that player character is in fact descended from non-player characters (NPCs), and until adulthood major decisions (such as moving between settlements or embarking on ship voyages) are made by the character's NPC parents. At any time after age five, the player may learn about nearby people (by navigating a menu containing this information) and visit local cemeteries (to view the gravestones for characters who lived and died earlier in the simulation). Upon reaching adulthood, the player may have her character engage in any of the activities that NPCs carry out (these are discussed below in Section 7.3). [Note: A few of these, namely propagating knowledge, are not available (mainly due to dialogue interactions not being implemented).] As such, the set of *player affordances* [tavinor2017whats] is essentially the set of actions NPCs may take in the simulation. Death strikes at some point (from any of the potential causes that listed below) and is permanent, following the *roguelike* style [copcic2013permadeath,chang2017multiple,parker2017culture]. #### Afterlife Affordances The game is text-only during the player character's life, but upon her death an interactive world map and hypertext world encyclopedia are displayed. Eventually, I published one of these generated world encyclopedias as a standalone project—this is *Diol/Diel/Dial*, the subject of Chapter 8. Additionally, the player may continue to progress the simulation to see what becomes of people and places of interest (such as offspring or a founded settlement), which will cause the map and encyclopedia to update. [Note: The notion of simulating ahead past the time of gameplay would later serve as the basis for the *Bad News* epilogue scene, discussed in Section 10.2.4.] The figures below that depict segments from *World* worlds are screenshots of such interactive maps. #### Targeting Regret With *Islanders*, I aimed to develop a game that was extremely open-ended while still yielding narrative potential, and one that approximated my lifelong vision, recounted in Chapter 6, of having the experience of living out an entire life in a tiny world. Many players expressed a feeling of regret at having wasted their little lives, which I came to view as the primary aesthetic achievement of the project. [Note: One humorous example was the experience of Aaron Reed, who decided to become a great explorer but died at sea on his first voyage. Upon his character's death, the world map was revealed, and he discovered that he had been born into a world with only one island; Figure 7.2 depicts such a world. In another life, Sarah Harmon compulsively built ship after ship and then spent her final years on a sabbatical, asking herself why.] As I mentioned in the previous chapter, I would like to see more videogames that elicit regret—worlds in which you cannot be fulfilled. [Note: In this sense, *Islanders* was an attempt at *memento mori* [munro2004memento], which was Jason Rohrer's aim in developing *Passage* (2007) [rohrer2007passage], as he has stated [rohrer2007trying]. Earlier this year, Rohrer released a game called *One Hour One Life* [rohrer2018one], which also explores genealogical phenomena.] Generally, the *Islanders* project was not successful, and this was likely due in large part to the major deficits in the underlying simulation that I discuss in Section 8.4. ## Modeling Each *World* storyworld is modeled as a large sea scattered with island archipelagoes that are populated by characters, who construct houses and ships and form settlements. In this section, I will give a basic overview of the modeling of characters and the various entities that are included in the simulation. {As a brief note, in developing this setting, I was loosely inspired by the settlement of the south Pacific [gray2009language], and in particular the culture and practice of *Polynesian navigation* [sharp1964ancient].} Moreover, though, as I mentioned above, my core aim in *World* was to support emergent genealogical intrigue. ### Time Time is modeled very coarsely in *World*, with *timesteps* that correspond to one year of storyworld time. Within a timestep, there is no explicit modeling of finer increments of time, but there is an implicit temporal ordering in that the procedures that generate events are grouped according to event type. For example, character births for a given year occur all at once, then later in the simulation of that year character deaths all occur at once, and further on gravestones weather all at once, and so forth. At the beginning of world generation, the year is set to ‘0‘, though *primordial characters* who are already alive at that time will have retroactively modeled birth years that are represented in the calendar using negative integers (e.g., a birth year of ‘–22‘). Time proceeds one year at a time until world generation terminates (once a configurable termination date is reached). {While this timestep size is probably too coarse, as Section 8.4 discusses, this engine was designed to generate stories that may take place over decades or centuries (following my vision for procedural narrative that was outlined in Chapter 6).} ### Characters In my simulation practice, characters are central, and this has been the case since the name generator that preceded *World*. In this section, I will describe the various modeled components of a *World* character. #### Name As I explained at the beginning of this chapter, *World* evolved out of the name generator that underpinned *James Ryan Generator*, and so character *names* are in a sense the bedrock of the technological substrate underpinning the engine. In the system, character forenames come from the same corpus that drove the name generator, which comprises several thousand female-coded names and several thousand male-coded names. Surnames are drawn from a corpus of common examples of European origin. [Note: I clearly made no effort to explicitly model the Polynesian setting that influenced me. Generally, *World* is an aesthetic hodgepodge of miscellaneous content and sometimes incongruous modeled phenomena. This reflects its development, which was carried out by bricolage: the codebase evolved haphazardly as I learned new programming tricks and made use of a peculiar assemblage of materials and corpora at my disposal.] When a new character is born, the parents select a first name and a middle name and then use the father's surname. The forenames are determined by randomly selecting from the corpus or by probabilistically selecting a family member to name the child after. [Note: Here, probabilities are associated with the various familial relations.] Children who inherit the exact name of a parent will receive a numeral suffix indicating this. Additionally, if a child is named for someone else, the system records this information and then chains backward to determine for whom the character was *ultimately* named (in the case that the namesake was in turn named for someone else, and so forth). The modeling and tracking of familial naming practices reflects my core aim in developing *World*: produce emergent genealogical intrigue. #### Personality *World* uses the famous *five-factor model of personality* [mccrae1992introduction,wiggins1996five], which is also referred to as the *Big Five* model (due to the coinage of Lewis Goldberg [goldberg1981language]) or the ‘OCEAN' typology (e.g., [egges2003model,durupinar2008creating]). This model has a long history in psychology that begins with pioneering work by Sir Francis Galton [shrout2014personality, p. 30] and traces through a series of refinements carried out by a number of researchers across the twentieth century [john1999big]. While various alternative names have been attributed to the model's five dimensions [digman1990personality, p. 423], they are conventionally known as *openness to experience*, *conscientiousness*, *extroversion*, *agreeableness*, and *neuroticism* (hence the ‘OCEAN' acronym). In the model, each trait is treated as a dimension of personality, with poles on each end that correspond to opposite extremes in terms of how the trait may express across individuals. In *World*, each trait is modeled as a floating-point value between ‘–1.0‘ and ‘1.0‘. When a new character is born, her personality is determined in this way: for each trait, randomly select which parent she will take after, mutate that parent's value for that trait, and set the mutated value as the child's value for the trait. To mutate a trait value, the system treats the parent's value as a mean and then generates a pseudorandom number from a normal distribution that is centered on that mean, with a standard deviation corresponding to the degree of heritability for the trait at hand (according to a study by Kerry Jang and others [jang1996heritability]). For example, openness to experience has been found to be more heritable than agreeableness, so in turn the mutation term (standard deviation) for the former is less than the one used for the latter (which means *World* characters tend to take after their parents' openness trait values more closely). In the case of a character who already exists at the beginning of world generation, trait values are pseudorandomly generated from trait-specific normal distributions that use means and standard deviations identified in a study by David P. Schmitt and others [schmitt2007geographic]. Character personalities do not change over time—this may or may not be realistic, as some researchers have found that Big Five profiles change over time [haan1986time,robins2001longitudinal,srivastava2003development], while others have identified a general stability [soldz1999big,cobb2012stability]. [Note: The matter essentially boils down to *nature versus nature* [plomin1994genetics], as Sanjay Srivastava and collaborators illustrate in their paper on the topic [srivastava2003development].] In developing *World*, I was attracted to the Big Five model because of the prevalence of studies that use it to explain human phenomena in terms of personality variation, which afforded easy *operationalization* [bagozzi1982representing]: to model something new, I could quickly look up accounts of how human personality variation drives the phenomenon in the real world. By this approach, such descriptions of human behavior can be inverted by treating a correlative relationship (between personality trait values and a behavior) as a causal one—that is, if a study describes a certain behavior (e.g., lying) as being more prevalent among individuals with certain traits, then in my simulation I make individuals with those traits more likely to engage in such behaviors. Since simulation tends to loosely model real-world phenomena, operationalization represents a fundamental approach to the craft, as *Dwarf Fortress* [dwarf] cocreator Tarn Adams has noted: > It's helpful to base your simulation on reality. If you have a real-world analog in mind, you can correct defects using a broader understanding of the fundamentals. [...] We know the real world works, so if you fall back on reality, you can usually get the simulation to work as well, given adequate memory and CPU time. [adams2015simulation, p. 520] [Note: I love the phrasing of ‘we know the real world works', which to me evokes the roboticist Rodney Brooks's famous quip, “the world is its own best model” [brooks1990elephants, p. 5].] Indeed, Adams's polymathic operationalization practices undergird the famous joke that his game's *design document* [fullerton2008game] is Wikipedia, as Adams has acknowledged in interviews: > I mean take the geology for example. [...] I wanted the rocks to be, to coincide with the reality of it. So I went basically—I mean people have joked that Wikipedia is a design document for Dwarf Fortress or whatever. Because I just went through it. [...] So, yeah, but lots of research. And that goes back to one of those skills I was talking about when you're doing a simulation is being able to take something like a Wikipedia article, which is just a summary of purported facts. And you can take that, find out what the core elements are, figure out what rules govern them, figure out how you're gonna turn that into a structure in a computer game and algorithms in the computer game [walker2009interview, pp. 24–25] As I argued in Section 4.1.5, simulation crafting takes a lot of authoring, and the results will always fall short of ideal modeling. In my experience, the only way to actually build intriguing generative storyworlds is to model as much phenomena as possible in the shortest amount of time. To achieve this, it is key to make reasonable decisions quickly, and to conceive of a simulation engine as an endless work in progress. If the simulationist deliberates too much, her engine will probably never develop into something whose modeling is rich enough to produce interesting storyworlds. There is simply too much authorial burden to spend much time planning, and so good simulationists are fast satisficers. With regard to this notion, consider *Dwarf Fortress*, which is almost certainly the richest simulation ever crafted: Tarn Adams has been working on it continually for the last fifteen years, and he is only halfway through his planned development period. Even though he planned from the beginning to spend decades on the project, Adams has always been keenly aware that there is no time for major deliberation: > I took my current 30 personality facets from the NEO PI-R test, for instance, without having much knowledge of the theory. If it fits in to the game, makes sense to me and provides enough diversity to be reasonably resilient to future changes, I can use it. [meeks2010interview, n.p] [Note: Adams has since revised his personality model to include several more traits. His additions reflect an increasing tendency away from realism and toward models that better support the emergence of dramatic material. This shift represents the crossing of an idealogical divide pertaining to the meaning of ‘believability' in character modeling, which I introduce momentarily. As I discuss in Section 11.1.2, I have also moved in this direction with regard to my simulation practice, and in fact I am now using Adams's refined *Dwarf Fortress* personality model.] Another major appeal of the Big Five model for me was that it was also being harnessed for personality-driven expressive natural language in the work of Marilyn Walker's Natural Language and Dialogue Systems lab [neff2010evaluating,walker2011perceived,walker2013using]: namely Francois Mairesse's dissertation system *Personage* [mairesse2007personage,mairesse2008personality,mairesse2008learning,mairesse2011controlling] and the ambitious prototype *Spyfeet* [reed2011step,reed2011spyfeet], the latter of which was a collaboration with members of the Expressive Intelligence Studio. During this period of my simulation practice, I was on my way to UC Santa Cruz to join both of these labs, where I anticipated working with the five-factor model—as such, it made sense to experiment with it in *World*. When I got there, however, I was surprised to discover that my new coadvisor Michael Mateas was not a fan of the model. This was my first encounter with Michael's ideology surrounding *character believability*, and it foregrounded a fundamental tension in computational media that I had not been aware of prior to arriving at Santa Cruz. Though it is widely agreed that believability is a quality of fictional characters who make it easy for the audience to suspend its disbelief, some practitioners assume that such quality is rooted in a kind of realism, while others have contended that it is in fact orthogonal to realism. [Note: For a nice overview, see this paper by Josh Tanenbaum and Jim Bizzocchi [tanenbaum2009close].] As Michael explains in his 1997 review of interactive drama, the term ‘believability' entered computational media under the influence of the *character arts* [thomas1981disney,jones1989chuck]: > *Believable* is a term coming from the character arts. A believable character is one who seems lifelike, whose actions make sense, who allows you to suspend disbelief. This is not the same thing as realism. For example, Bugs Bunny is a believable character, but not a realistic character. [mateas1997oz, pp. 7–8] Michael's stance is paradigmatic of the tradition of the Oz Project [bates1992virtual,bates1992nature], the research lab (and computational-media studio) with which he was affiliated as a graduate student at Carnegie Mellon University. In his capacity as figurehead of that project—the “Wizard of Oz”—Joe Bates took the emerging influence of the character arts on computer animation [lasseter1987principles] and extrapolated it to the broader domain of autonomous characters. This was the basis for Bates's coinage ‘believable agents' [bates1994role, p. 123], but the subtle notion of ‘lifelikeness' has often been taken to mean ‘realism'. In any event, in this period of my simulation practice, I strove for realism, but over time—through operating in the tradition of the Expressive Intelligence Studio, which itself operates in the tradition of the Oz Project—I would come to align more with the perspective that aims for a more stylized believability. In Section 11.1.2, I tell the story of my transformation. Incidentally, character personality does not do much in *World*, since it was added in toward the end of the project. For the most part, it drives friendship formation and aspects of the language simulation, as I will explain below. #### Disposition In addition to a five-factor personality model, *World* characters have a *disposition* comprising traits called *vigorous*, *violent*, and *depressive*. While character personalities, a late addition to the simulation, do not do much to drive character behavior, dispositions do, as I will explain below. In this simple model, violence and depression are binary attributes (either present in a character or not), and vigor is a floating-point value that decreases with a character's age. While the introduction of the five-factor model represented a shift toward realism that would be most pronounced in *Talk of the Town*, the subject of Chapter 9, initially I had gravitated toward a more dramatic model, as the disposition traits show. In *Hennepin*, the subject of Chapter 11, I shift again toward the dramatic, but in doing so I attempt to strike a balance. #### Language *World* characters may acquire *languages* as they go about the simulated storyworld, including native languages (during adolescence) and non-native ones (after adolescence). For each language that a character speaks, she maintains a proficiency level (represented as a floating-pointer number between ‘0.0‘ and ‘1.0‘) and instantiates an *idiolect* that represents the unique expression of that language in her speech. As I explain in Section 7.3.16, which reports extensively on this subsystem, languages are represented abstractly using a vectorial scheme. #### Knowledge A character's accumulated *knowledge* of the storyworld is structured as a collection of beliefs about the last known whereabouts of other characters. Section 7.3.14 is dedicated to the simulation of character knowledge phenomena in *World*, so I will hold off on explaining more until then. #### Miscellaneous Attributes *World* characters are also modeled according to a few additional attributes beyond a name and personality. These include *sex*, *sexuality*, *fertility*, and an extensive array of attributes that represent the character's *family tree*; a character's sexuality is composed according to whether she is probabilistically determined to be attracted to males and/or females. Along with the naming simulation, these attributes reflect my core aim of supporting genealogical intrigue, since these are some of the basic mechanisms that drive the phenomena that are captured in genealogical records. Additionally, a character *memory* attribute is modeled as a floating-point value that decreases over time, making forgetting (about which more soon) more likely. Finally, the system tracks character-specific data pertaining to a number of concerns including social relationships, romantic history, residences, homes constructed, ships constructed, settlements founded, ship voyages, islands discovered, crimes committed, and more. ### Other Entities [Figure omitted] In addition to characters, *World* models the world, the ocean, islands, settlements, houses, ships, artifacts, languages, and whales. In this section, I will describe how each of these entities are modeled in the system. #### Worlds A *World* *world* is modeled as a square grid whose coordinate system spans 10,001 units on each side. I conceived of these units as corresponding to kilometers, which makes each storyworld roughly the size of the Atlantic Ocean. Each world is scattered with islands, but constituted primarily in a single massive ocean, as Figure 7.1 illustrates. [Note: I spent the summer of 2014 developing systems for terrain generation, with the intention of using it as the basis for a new version of *World* that would make use of such detailed modeling. As fate would have it, my next simulation engine was *Talk of the Town*, for which the technology for terrain generation was overkill. I am now working to finally integrate this work back into my practice in the form of terrain generation for *Hennepin*, which supports interesting dynamics surrounding town development and character actions.] #### Oceans The *ocean* of a world is constituted in the portion of the world's coordinate system that is not land, and implicitly it extends further, too: islands are never placed outside the world boundaries, but ships may cross the threshold and continue to traverse by sea into the empty exterior. [Note: Because there is no hope for finding land outside the boundaries, crossing the threshold spells doom. Once everyone on board perishes, however, the vessel may voyage onward as an uninhabited ghost ship, blowing in the wind. I have seen ghost ships that emergently traveled many thousands of units past the world boundary. Conceptualizing the coordinate system as continuing to extend beyond the expanse of my computer screen, a few stray ships traveled nearly to the walls of my apartment.] In this sense, each storyworld's ocean, and thus each storyworld, has no explicit boundaries. #### Islands A world's *islands* are abstractly modeled as rectangles that are defined by the coordinates of their southwest and northeast corners. At the beginning of world generation, the system determines how many islands there will be ($n$) by generating a pseudorandom number from a normal distribution ($m=49$, $sd=20$); if this number is less than or equal to zero, the procedure is repeated. In rare cases, a *World* world may have only one island, as Figure 7.2 illustrates. Next, these $n$ islands are distributed across the world by randomly selecting center coordinates. As a new island is being created, its size is determined by determining a height and width, again by generating from a normal distribution ($m=20$, $sd=44$). Additionally, a new island may anchor an archipelago. If a probabilistic threshold is eclipsed by a generated number, between one and six nearby islands are generated in the vicinity of the anchor. Beyond its size, an island has no topography, but the system reasons about which coordinates are on which island coasts, and corners have the special property of being on two coasts. Each island is unnamed until it is encountered by characters, at which point a probabilistic procedure is enacted to select a name. By this procedure, an island may be named in homage to its discovery ship's port of origin—e.g., ‘New Death Isle' for ‘Death Isle'—or in honor of the ship's captain or that character's loved one. Alternatively, a name may be randomly selected from a corpus containing the names of American municipalities; here, the name ‘Minneapolis' is fifteen times more likely to be selected. [Note: Diol, the storyworld recounted in *Diol/Diel/Dial*, features several places called Minneapolis, including a curious island discovered by a small crew of six characters who would each die there, leaving it uninhabited: https://users.soe.ucsc.edu/~jor/diol/4524910736.html.] [Figure omitted] #### Wilds Just as a world's ocean is defined as all of its area that is not land, an island's *wilderness* is constituted in all of its area that is not the site of any settlement (about which more next). Because houses never disappear, as I explain shortly, settlements that become abandoned likewise remain forever, which means the wilderness of an island will strictly shrink over the time (or remain the same size, if that island is never discovered). A wilderness is always named descriptively—for instance, ‘Wilderness of Death Isle'. As I explain below, characters may venture out into the wilderness of an island, which is one of the ways in which new settlements may be founded. #### Settlements and Houses Characters build *houses* on islands, and these are modeled as abstract structures that are positioned on the world grid at fine-grained coordinates that are represented in one-tenth units—for example, a house may be positioned on the plot at ‘[344.1, 1239.2]‘. Houses are named after their builders, whom the system keep tracks of in addition to the year it was built. The essential data associated with a house is its residents (and former residents). As a simulation quirk, houses are permanent and can never be destroyed. A character *settlement*, then, is modeled primarily as a collection of houses and plots on which new houses may be built. When a settlement is founded by a character, she builds a house at her current position, and the settlement is then attributed one hundred open plots in the surrounding area (unless those plots are already claimed by an adjacent settlement). If at any point all of a settlement's plots are used up, then the characters that live there may decide to expand it. Additionally, settlements may annex one another or become abandoned (if all the characters leave); I will explain how this works below. Settlements are named similarly to islands: a newly established town may be named for one of its founders, or its name may be randomly selected from the corpus of American municipalities. When a town is named after a founder, that character's surname may be used by itself, or it may be used in a toponymic construction—for example, in Diol, the storyworld that is recounted in the encyclopedia *Diol/Diel/Dial* (the subject of the next chapter), there is a town named for Feodora Quinn that is called ‘Quinn Creek'. These toponyms suggest an island topography, but none is actually modeled and the topographical references are selected randomly. #### Ships Characters embark on *ships* to travel on the open ocean. As I will discuss below, this requires a character to carry out the longterm project of constructing such a sailing vessel. Like everything else in *World*, ships are modeled abstractly. While the term ‘ship' (and the notion of a ship ‘captain') connotes a certain kind of vessel, the inspiration of the Polynesian settlement of the Pacific would suggest something like an outrigger or double-hull canoe [finney1977voyaging]. In any event, the physical structure is not modeled. When a ship is built, it is christened with a name that is randomly selected from a corpus that I constructed by taking all of the words of nine characters or more that were included in a lexicon of the English language; there are over 134,000 entries in this corpus. This was a very simple method, but I found that it produces decent ship names—for example, here is an unfiltered sampling of the first thirteen ships that are listed as being at port in Diol, the storyworld recounted in *Diol/Diel/Dial*: > Overmourn, Offendedness, Preconduction, Ecclesiology, Xyloglyphy, Karyotype, Unjournalized, Dissoluble, Insulance, Interfilamentar, Emanatist, Emissivity, Cyclocoelous [Note: The full listing is available at https://users.soe.ucsc.edu/~jor/diol/diol.html, under the heading ‘Ships'.] The system records the builder of a ship, and tracks its position in the world (integer coordinates while at sea or house-style one-tenth coordinates while at port). If it is at port, it will be docked at a position corresponding to one of the coastal coordinates of its port settlement. Additionally, while at sea, a ship will have a captain, that being a character who is responsible for making decisions about the voyage. Below, I will explain how ocean travel is modeled. Finally, beyond the fundamental states of being either at port or at sea, a ship may be in two additional states: sunken or empty (i.e., a ghost ship coasting around on the wind). A ship can only be destroyed by sinking in a shipwreck—as such, ships at port last forever, which enables the evocative situation of an empty island with an immortal ship permanently at port. #### Artifacts There are two kinds of artifacts that are modeled in the simulation: *gravestones* and *ship manifests*. Characters themselves traverse the grid of one-tenth units, and upon dying a gravestone will be placed at the character's final position if there is at least one nearby adult who may place the stone there. A gravestone is modeled as a string containing the character's name, birth year, and death year; if the character who places the stone does not know the deceased character, then the first two fields will be represented by the placeholder ‘Unknown'. Here is an example gravestone: > ‘Sybyl Gilles‘ ‘302–369‘ Additionally, ship captains characters create ship manifests that record information about the initial parties that embark on voyages. These are likewise modeled as strings. As I will explain below, artifacts weather over time and wear away, which is modeled by the simple mechanism of gradually replacing the characters in their string representations with whitespace. My primary aim in modeling these artifacts was to experiment with *generative environmental storytelling*, a prospect that I discussed earlier and will return to again. In *Islanders*, the player could inspect gravestones (in nearby graveyards) and read old ship manifests (on ships she entered). In one play session that I observed, a friend decided to track down the gravestone of his character's grandfather, to pay homage to him, which turned into a lifelong quest that was driven largely by the information contained in ship manifests (the grandfather had traveled to several islands). Ultimately, the quest was futile, since the grandfather had died at sea (and thus had no gravestone). While this initial experimentation was rudimentary, I am still fascinated by the idea of generated artifacts that (lossily) inscribe the history of a storyworld. Tarn Adams is now exploring this prospect in terms of *Dwarf Fortress* artifacts [adams2017secret,donnelly2017dwarf], and in Chapter 11 I discuss how this idea is being revitalized in *Hennepin*'s artifacts. In a recent paper, Daniel Livingstone and collaborators have written about the phenomenon of expressing the history of a world through (hand-authored) artifacts, a method they refer to as *archaeological storytelling* [livingstone2016archaeological]; this idea is related to the larger area of *archaeogaming*, which is about “archaeology in and of videogames” [reinhard2018archaeogaming,flick2017exploring,reinhard2017video]. More broadly, the game designer Tanya X. Short has called for simulationist game designs that encourage players to investigate simulated material [short2017designing, p. 114-115]. #### Languages *World*'s richest modeling appears in its simulation of character *language phenomena*, which is the subject of Section 7.3.16. For now I will mention that language is modeled using an abstract vectorial scheme that ultimately grounds out in the distinct *idiolects* that are maintained by each character. #### Whales As a rather humorous example of a *secret system* [short2017designing, pp. 112–113], *World* quietly features a simulation of *whale* phenomena. Specifically, the system models blue whales who live out tiny abstract lives in a storyworld's ocean. [Note: A note from the code comments: “This class is currently based off of the blue whale. I did not realize this whale could not easily be hunted, so perhaps the gray whale or humpback, etc., should be supported soon”.] Modeled whale attributes include *age*, *sex*, *weight*, *sexual maturity* (whether mating should occur), *location* (current coordinates), and various attributes pertaining to a whale's *family tree*. While I intended for the simulation of whales to interact in interesting emergent ways with the simulation of character phenomena—for instance, whaling, the overturning of ships, or situations pertaining to beached whales—I never got as far as integrating the subsystems. As such, the whales go about their little lives in a way that is totally hidden from the rest of the simulation (and human observers). With regard to the tracking of whale family trees, I was specifically interested in the prospect of character and whale genealogies intersecting in interesting ways. For example, I could imagine a variation on *Moby Dick*'s [melville2017moby] classic tale, where an Ahab-like *World* character would produce descendants who track the same whale for simulated generations. ## Simulation Now that I have explained the basics of *World*'s entity modeling, in this section I will outline its simulation procedures. While this simulation engine is more rudimentary than *Talk of the Town* and *Hennepin*, the essence of how I do world simulation has been in place since my early system *Lineage*: create an empty world, have some initial characters move into it, and then proceed from there, timestep by timestep, simulating storyworld phenomena by executing a recurring simulation loop. By this configuration, there are two distinct modes of simulation, one pertaining to the initial setup of a storyworld and the other to its evolution over time—together, these constitute the simulation engine's procedure for *world generation* [martin2012landscape]. I will describe both of these simulation modes in turn. ### Setting Up a World Each *World* storyworld begins with the same essential scenario: there is a large sea scattered with island archipelagos, but no one is there yet, except for a single ship holding several dozen characters, which is guided to land at a randomly chosen island on which they will establish a first settlement. To model this origin story, the system has to do some basic *retroactive simulation*—this entails the creation of an island outside the world, a port settlement on that island, a ship docked at that port, and characters who live in the port settlement. As to the latter, the system probabilistically determines how many characters live at the port, along with the ages of the characters. Some will be generated to also live with additional family members. Once this primordial ship leaves its settlement, it voyages at sea for three years, at which point it is automatically guided to land in the actual modeled world. It is possible for the ship to wreck in those three years, in which case the modeled world will never become inhabited. #### Chicken and Egg This procedure signals a fundamental *chicken-and-egg problem* in this kind of world simulation: unless life itself will be evolved from nothing into something, the simulation must start with characters who were already born at the beginning of story time. [Note: In the area of *artificial life*, there are projects that take the latter approach [langton1997artificial]. Of course, these systems do not reach a point where full-fledged characters come to exist in the world.] As I have just noted, this entails some retroactive simulation (*retconning*) by which each *primordial character* is attributed basic character attributes that are required for the system to operate. In each of my three simulation engines, I have taken the approach of modeling an empty world that a first set of characters then enters. As I explain in Chapter 12, my proof-of-concept pilot episode for *Sheldon County* treats this rather basic technical matter as a *cosmology* that is mythologized in its lyrical narration. For a fascinating approach to retconning, see Jason Grinblat and Brian Bucklew's paper on procedurally generating biographies for historical figures in their dwarflike *Caves of Qud* [grinblat2017subverting]. [Note: I use the term ‘dwarflike' to refer to videogames in the mold of *Dwarf Fortress*. To me, the extensive use of world simulation separates the project (and others in its wake) from the ‘roguelike' genre to which it is conventionally attributed.] ### Simulation Loop Beginning with the departure of the primordial ship from its external homeland in the year ‘0‘, the simulation proceeds one story year at a time (since this is the timestep unit), simulating the lives of its inhabitants according to a simple loop. Generally, this entails the probabilistic triggering of events, where the events that may be triggered at any time depend on the subroutine in which the simulation is currently operating. For example, a subroutine handling character births occurs toward the beginning of the loop, after which character deaths may be triggered, and later still the social simulation is activated. While this yields an implicit ordering of events within a year, there is no modeling of a finer grain of time. In fact, the system itself cannot reason about the ordering of events within a simulated year, though the rendering of event sequences in the prose component of generated encyclopedias—such as *Diol/Diel/Dial*, the subject of the next chapter—expresses the actual ordering of event execution. [Note: This inability to reason about temporal event relations, and moreover causal ones, is fundamental to my critique of *World* in Section 8.4.] In the following sections, I will explain the various phenomena that are simulated over the course of a *World* simulation loop. While these phenomena are grouped into more specific subroutines in the simulation loop, for clarity I will describe them in terms of larger conceptual groupings. ### Birth and Death A character's time in the simulated storyworld is bookended by *birth* and *death* events, whose modeling I will explain in this subsection. #### Birth Characters beside the ones who already exist at the beginning of the simulation enter the storyworld through a process of being born, and all characters depart the world through a modeling of death. If a character becomes pregnant one year, she will give birth to a new character the following year. When this occurs, she and her partner, if she has one, name the new character according to the procedure outlined in Section 7.2.2. #### Death Death is triggered probabilistically, where the probability of dying from a particular cause is determined by a character and various simulation contexts. Infants may die from birth complications, the elderly may die from natural causes, and a number of other dangers may befall any character: freak accident, disease, starvation (when stranded in the wilderness), ship lost at sea (starvation aboard a stranded ship), murder (more on that below), suicide, and ‘mysterious circumstances'. A probabilistic procedure drives the incidence of disease in a character and its communication to other characters (based on factors such as proximity, age, and whether the character is on land or at sea). The probability of character committing suicide depends on her disposition (whether depressive) and also her past trauma: characters who are grieving, divorced, who have murdered, attempted murder (including failed mutinies), or survived a murder attempt. If a character is dying of disease or natural causes, her friends and extended family in the nearby area come to visit one last time. Death under ‘mysterious circumstances' is triggered as part of the procedure for catching errors associated with bugs that I could not fix—as a beginner coder, it was easier to smite these characters than to fix certain bugs. Finally, if other characters are nearby, a gravestone will be placed near the character's final position. ### Social Simulation *World* features an abstract simulation of the social and romantic lives of characters. As characters go about the world, they meet other characters. This occurs according to a simple probabilistic procedure, whereby characters who live with one another are sure to meet, and characters who live (or are traveling) near other characters will have a probability of meeting that depends on various social contexts, namely age, gender, and language. #### Social Interactions Once two characters have met, they may engage in an abstract *social interaction* over the course of a given simulated year; again, this is triggered probabilistically according to various social contexts. As the result of a social interaction, a character may come to consider the other character as a *friend* or as an *enemy*—this depends on the presence of a language barrier (which may probabilistically block friendship or enmity), and moreover on the compatibility of their personalities, which works asymmetrically according to the findings of a study by Maarten Selfhout and others [selfhout2010emerging]. I later fleshed out this compatibility method in *Talk of the Town*, so I will describe it in more depth in Section 9.2.5. Friendship and enmity are simple binary relationships (though unidirectional) and they are permanent, except in the case of *Islanders* player characters, who may take actions that ruin friendships or resolve enmities. In addition to friendship and enmity, characters are connected according to familial ties that are specified by the closest relation between the characters. [Note: Here, I say ‘closest' because the system tracks character relationships up to the distance of thirtieth cousins. Characters who are born several hundred years into a simulation will have dozens of familial relationships to (nearly) everyone else in the world—for example, a pair of characters may be second cousins; third cousins, once removed; sixth cousins, thrice removed; twelfth cousins six times over; and so forth, all at once. This is because a familial relationship is simply a case of a common ancestor—e.g., being second cousins with someone means that you have a great grandparent in common. *World* characters who are born that far into a simulation will likely have several common ancestors with every other character in the world, with whom they will thus have many relationships. Of course, it is possible for there to be no common ancestry in certain cases of (improbably) extreme isolation. In *World*, this occurs when a subset of the primordial characters immediately leave the first settlement in the world to settle on an isolated island that is never reached by the descendants of the characters who stayed in that first settlement. This is very rare, however, and in most cases *founder effects* [deshpande2009serial] lead to everyone being quite related (though decreasingly so according to distance and the dynamics of ocean navigation). While this phenomenon may seem unrealistic, it is only because in the real world we do not have access to an omniscient data store that perfectly tracks the ancestry of all humans—if we did, we would find that you and I, for instance, are related in myriad ways. This is now changing, however, as direct-to-consumer genetic testing [hogarth2008current] enables individuals to easily discover hundreds of fairly close relations. (My dad, who was adopted, has even found two biological siblings through these services.) One function that I developed for *World* computes the *most recent common ancestor* (MRCA) of every character in the world. In the real world, researchers have estimated that humanity's MRCA (the most recent human from whom every living human descends) may have lived as recently as 2,000 years ago [rohde2004modelling]. I learned a lot about genealogy, and phylogenesis more broadly, through its modeling in *World*.] #### Romantic Life According to a simple probabilistic procedure, a character may become especially romantically attracted to another nearby character. Each year, a pool of nearby characters is constructed for each character according to their sexuality and various social contexts, namely age, marital status, and family relations. A next order of business was to introduce personality compatibility into this reasoning, but I did not find a chance to do that before moving on to *Talk of the Town*. (As I have already noted, character personality was one of my last additions to the simulation.) Once a pool of potential romantic attractions has been constructed for a character, one of them is chosen at random to be the character's primary love interest. If a character already has a love interest, a probabilistic procedure determines whether someone new from the pool will be selected to replace the existing love interest; this depends on concerns such as whether a character is married or grieving the loss of deceased partner. Once a character has a love interest, two social affordances are activated: she may propose marriage or sexually proposition the other character. Again, a probabilistic procedure determines whether these actions will be taken, and in turn another probabilistic procedure determines whether the other character will accept the advance. ### Marriage and Divorce If two characters decide to marry, then one may take the other's name, and they will begin to reside together (in one of their houses, or on the same ship, or in the same traveling party). When two characters have sex (which co-located married characters do at a high probability), pregnancy (if applicable) may be triggered according to another probability. #### Divorce If a married character has an affair, a probability determines whether her spouse finds out, in which case the latter may consider divorce. Each year, married characters may decide to ask for a divorce, with a much higher probability in the case of a character who was already considering it. If one character asks for a divorce, another probabilistic procedure determines whether the spouse will plead to stay together, and eventually whether they will in fact divorce. Upon divorcing, the characters separate and stop living in the same house (or wilderness campsite), though characters aboard a ship will have no choice but to remain in close proximity on the vessel. The modeling of divorce in a vaguely historical setting will likely seem curious. I added it because it was easy to model, given what was already modeled, and it yielded genealogical intrigue. Generally, I think it damages the coherence of the simulation domain, but it is in there nonetheless—in *World*'s tiny abstract worlds, characters may divorce. ### Foot Travel Characters who are not aboard a ship may travel across an island by foot. For a character who lives in a settlement, this becomes a matter of deciding whether to leave that place. Foot travel is triggered by a probabilistic procedure that operates over concerns including a character's age, disposition, marital status, family life, romantic prospects in her settlement, whether she grew up in or founded that place, and how long she has lived there. Again, due to its late introduction, character personality does not figure into this procedure, even though a trait like ‘openness to experience' would serve as a fitting causal factor. If a married character decides to travel on foot, she then probabilistically determines whether or not to ask her spouse, which may potentially cause her to abscond in the night. If she asks her spouse, another procedure determines whether the spouse will come along; if the spouse decides not to, then the original character must decide whether or not to continue with her plan, which may lead to a decision to divorce her spouse and take off. Once a character has decided to leave her settlement, she may probabilistically select a nearby town to move to (depending on populations), or she may travel in the wilderness on foot. Foot travel in the wilderness is essentially a random affair: to determine where the traveler got to after her abstract journey, the system probabilistically determines a direction of heading and a speed of travel. Characters tend to keep their direction, and speed is defined according to a pseudorandom number generated from a normal distribution. Additionally, another pseudorandom number drives movement orthogonal to the character's heading, allowing for northeasterly travel, for example. If a character's computed new position is in the ocean, she is placed at the nearest position to that along the coast of the island on which she is venturing. From here, the character has three options: set up camp in the wilderness, move into a settlement (if any are nearby), or establish a new settlement at her current position (more on this below). As with nearly all character decision making, this is handled by an authored probabilistic procedure. ### House Construction If a character moves into a new settlement, or moves out of her home in a settlement in which she already lives, she will either move into an empty home and build a new one. When selecting a home or plot, a procedure determines whether the character would like to live near the center of town or the outskirts—this should be driven by a character's ‘extroversion' trait, but unfortunately it is not—and then she probabilistically picks a plot accordingly. Unlike ships, houses are constructed immediately. Once the character has built her house, it will forever be named for her, though others may eventually come to reside in it over the course of the simulation's entire history. ### Settlement Establishment As I explain below, characters who disembark on a newly discovered island will establish a new port settlement. Additionally, characters who are venturing in the wilderness may decide to establish new settlements at the position of a campsite. This is triggered probabilistically, and when a character decides to start a new town, she will ask any other characters who are camping nearby to join in the effort (who in turn respond probabilistically). Once a town is established, its name is determined according to the procedure outlined in Section 7.2.3. ### Settlement Growth, Consolidation, Abandonment Settlements may grow over time by a simple mechanism. If there are no empty houses or plots in town and a character decides to move into a settlement, then the town will extend into the land around it to establish a new series of open plots on which homes may be constructed. If there is no adjacent land available, due to the presence of nearby settlements, then the characters of the neighboring towns will consider consolidating into a single settlement. Such consolidation is triggered probabilistically, and it may result in more than two settlements merging. When this occurs, the system treats the consolidation as a case of annexation, and a probabilistic procedure determines which settlement will have technically annexed the others (usually the most populous or the oldest). A settlement becomes abandoned if all of its inhabitants pass away or leave town. From this point on, it is considered a ghost town, though it will continue to exist and its houses will remain, which means new characters may come along to reinvigorate it; it may also be annexed by an adjacent settlement. ### Shipbuilding Adult characters in port settlements may decide to build ships. This is triggered by a probabilistic procedure that considers the number of ships that are already at port there, and the population density on the island. If an island is becoming overcrowded (signaled by a scarcity of empty houses or empty plots), characters are more likely to build ships. The process takes multiple years, and the system tracks the progress of each ship as it is being constructed. Characters may decide to abandon these longterm projects (according to a set probability), and a would-be shipbuilder who leaves her project site cannot take the partially completed ship along with her. With each new ship a character builds, she gains in skill, which manifests in a speedier construction rate for the next ship. Once a ship has been completed, it is named according to the procedure outlined in Section 7.2.3 and then docked at the settlement's port. From here, it may be commandeered by anyone, as I will describe momentarily. ### Nautical Travel [Figure omitted] When a ship is at port in a settlement, it is available to any character who may decide to commandeer it. Like nearly all emergent events in *World*, ship voyages depend on a probabilistic procedure that considers contextual information including the age of the colony on the island, the time since the ship's last voyage, population densities of the settlement and island, and whether the ship's captain (more on that below) is at port. #### Boosters and Captains If a ship voyage is triggered by this procedure, then a character in the port settlement is randomly selected to be the *booster* for the journey. The booster's first job is to determine who will be the ship's *captain* for the voyage—this is done by selecting the captain for the last voyage, if that character is in town, or else the most experienced ship captain in town, or else the booster herself. Once a captain has been selected, the booster invites everyone in the settlement to join the voyage, and in turn each invitee decides whether to accept by employing a probabilistic procedure that depends on her age, marital status, disposition, and on the prospective captain's nautical experience and history of violence, if any. If two spouses disagree on whether to board a ship, one may ask for divorce, and the one who wants to leave may abscond suddenly. Before leaving port, the captain authors a ship manifest, naming everyone aboard, which will then exist in the boat as a permanent artifact. Additionally, if the voyage booster has named herself captain but does not have previous nautical experience, the ship passengers may decide to democratically elect a new captain. When this occurs, a procedure of *utility-based action selection* [maes1989right,mark2009behavioral] is carried out: every adult on board is scored according to their previous captain experience, and also for their ancestors' captain experience (to support the emergence of intriguing captain lineages). Once everyone aboard has been scored, a probability distribution is fit to the scoring distribution, and a captain is elected accordingly. As I have explained above in Section 4.1.3 with regard to Sheldon Klein's murder-mystery generator, the probabilistic and utility-based approaches to action selection are essentially equivalent from a computational standpoint, though they support conceptually different authoring patterns. #### Ship Navigation Once a ship leaves port, it navigates the open sea randomly, in the style of foot travel, though its captain is viewed by the other characters as being responsible for its navigation. Since *World*'s modeling of time is coarse, this means that the ship will move its position only once a year. To determine a ship's new position, a direction of heading and a speed are probabilistically determined. Ships tend to keep their direction, and speed is defined according to a pseudorandom number generated from a normal distribution. Additionally, another pseudorandom number drives movement orthogonal to the ship's heading, which allows for, e.g., northeasterly travel. If the new position is on top of an island, it will be displaced to be just off of one of the island's coasts. Figure 7.3 visualizes the total nautical exploration of three *World* storyworlds. If an island is encountered, a probabilistic procedure determines whether the captain decides to stop there; this procedure primarily considers how long the ship has been at sea. After around five years at sea, people aboard may begin to starve. Upon disembarking on a newly discovered island, the characters aboard the ship name the island, following the procedure outlined in Section 7.2.3, and found a new port settlement, where the characters aboard construct houses. If the island has already been discovered, then the ship will probabilistically select a port to dock at according to the populations of its port settlements. If the island has been discovered but is no longer inhabited, the characters will rename it, along with the port settlement at which they disembark. At this point, the characters live in that new settlement and carry out their lives on land. One evocative scenario is the case of an island whose inhabitants abandon it, only to have their descendants return to that ancestral homeland hundreds of years later to take up life in the original inhabitants' settlements and houses. ### Crime and Punishment The prospect of *murder* is driven by probabilistic procedure that depends primarily on the prospective murderer's disposition (whether she is violent), age, and whether she has experienced trauma. If this procedure triggers a murder attempt, then a victim is selected probabilistically from a pool of nearby people; this depends primarily on the potential killer's relationships with nearby people (enemies who are not family members are most likely to be selected). Once a victim has been selected, the murder is attempted, and its result is determined probabilistically—the victim may be killed, or may kill the attempted murderer in self-defense, or the attempt may simply fail. #### Blood Feuds When a character is murdered, someone in her family may become obligated to avenge the killing—as such, there is a cultural of *blood feud* [fletcher2004bloodfeud] in *World*'s tiny abstract societies. Typically, this onus falls on the closest male relative to the victim, though others may become obligated. When a character has become obligated, she will be likely to attempt to murder the original killer if they are in the same place, but such an attempt is triggered probabilistically according to other concerns (especially her disposition). [Note: A character cannot actually become obligated unless she discovers, through knowledge formation or propagation, that the victim has died. If in turn the prospective avenger discovers that the target of her vengeance has also died, the onus is lifted. I will explain the modeling of such knowledge phenomena shortly, in Section 7.3.14.] This simple mechanic of revenge obligation tends to generate full-fledged family feuds: when the killing of one character is avenged, a family member of the original murder will then be obligated to seek vengeance on the avenger, and so forth. In *World*, I have encountered emergent family feuds that lasted centuries and spanned across multiple islands. #### Ship Mutinies Finally, characters at sea may conspire to to carry out *ship mutinies*, which are triggered according to a probabilistic procedure. This may occur when a new captain is elected and one of the candidates feels slighted, especially when the latter has more experience or was the booster who had organized the voyage in the first place. Typically, however, mutinies transpire when a ship has been at sea for multiple years, and especially once characters begin to die of starvation. If someone's loved one starves at sea, she may blame the captain and decide to mutiny. The likeliest scenario for mutiny, however, is the case of a captain deciding to pass up land to continue voyaging, when the safer option would have been to disembark on the sure thing. Once a character has decided to mutiny, she will attempt to recruit a group of conspirators—whether or not another character will conspire depends on her disposition, relation to the mutineer, and relation to the captain. With the plan in place, an actual mutiny attempt is enabled, but it must be probabilistically triggered to occur. When the attempt is triggered, another procedure determines its outcome. If the mutiny is successful, the leader either installers herself as a new captain or else decides that the ship will elect someone democratically. If it fails, the captain determines a punishment for the mutineers: if there is a nearby uninhabited island, the captain may navigate to *maroon* them there; otherwise, they will be hung aboard the ship. Upon being marooned, the characters will begin life on the new island, but they will give it a morbid name, like ‘Death Isle'. Additionally, marooned characters are traumatized by the experience and become more prone to destructive behaviors. In Section 7.4, I recount an example of marooning in a *World* storyworld. ### Artifact Phenomena As I have noted above, there are two kinds of artifacts that may appear in *World* storyworlds: when a character dies, a gravestone will be laid at her final position (if another character is nearby), and a ship captain creates a ship manifest (listing the names of all the passengers) upon embarking on a new ocean voyage. Each of these artifacts may wear away due to the passing of time. Artifacts are represented simply as strings, and weathering is modeled by procedurally replacing characters in those strings with whitespace. As such, a gravestone might weather in this way over several centuries: > ‘Sybyl Gilles‘ ‘302–369‘ ‘S b l Gil ~s‘ ‘3 2–36 ‘ ‘S ~ l Gi~ ~s‘ ‘3~~– ‘ Again, this weathering was meant to provide intrigue for *Islanders* players, who could inspect nearby artifacts as they moved about the world. ### Character Knowledge Toward the end of my development work on this project, I began to experiment with the modeling of character knowledge phenomena, particularly *knowledge propagation* [cointet2007realistic]. As I explain in Chapter 9, this initial exploration would become the basis for *Talk of the Town*, my second simulation engine, which is primarily about character knowledge phenomena. Since the method employed in *World* represents an embryonic precursor to the approach developed for that engine, I will hold off on discussing related work until the later chapter. #### Knowledge Formation In *World*, characters keep track of the last known whereabouts of other characters with whom they are acquainted. This information is modeled as a simple tuple of the form ‘(who, when, where, status (living or dead), source, source date)‘. As I noted above, characters may interact over the course of a year, depending on factors including their languages, relationship, and so forth. When characters interact, they keep track of where and when this happened, and store this information as whereabout tuples. For example, if in the year 321 a character named Llewellyn Vaclav interacted with another character named Gavriel Guillermo in a town called Minneapolis, Llewellyn would update her knowledge to include a new whereabouts tuple structured like this (angle brackets denote pointers to the actual objects representing those entities, which resolves referential ambiguity): ‘(, , 321, ‘living', , 321)‘. Further, when someone dies, all the other characters in that location will remember that the person died there and then. #### Knowledge Propagation I have just described the ways in which character knowledge may be *formed*, but it can get passed on to other people as well. During an interaction, characters bring up other characters with whom their interlocutors are also acquainted. If one of the speakers knows more recent whereabouts for this person, the other will update his or her own knowledge to reflect this information. Thus, for example, if during that interaction Llewellyn Vaclav told Gavriel Guillermo that a common acquaintance named Scarlett Vaclav had died aboard the ship Preconduction in 298, Gavriel would update her knowledge to include the following entry: ‘(, , 298, ‘dead', , 321)‘. Though I did not implement this, I also intended for character knowledge to update upon the inspection of artifacts. For example, if a character encountered a gravestone in the wilderness with her friend's name on it, she would know that her friend had died there in the year listed on the gravestone. Likewise, ship manifests could impart the whereabouts of passengers on the ship during the year of departure. Of course, there is possible ambiguity, in that multiple characters may have the same name, and weathered artifacts may lead to uncertainty about the name on a gravestone or manifest. Because I had no means for representing memory fallibility, a core concern in *Talk of the Town* [ryan2015toward], I held off on taking on this challenge, and ultimately I never got to it in *World*. In *Hennepin*, the subject of Chapter 11, I am now revisiting artifact simulation, with the modeling of artifacts that trigger knowledge updates upon being inspected. I explain how this works in Section 11.2.11. #### Forgetting Finally, knowledge may also be forgotten due to the passing of time. This happens probabilistically, according to the amount of time that has passed and also a character's memory attribute. As I mentioned above, a character's capacity for memory decreases over time, and as a result she may forget things she once knew. Because the only kind of character knowledge that is explicitly modeled is the last known whereabouts of other characters, forgetting pertains exclusively to such information. Specifically, a character may forget about the whereabouts of another character, in which case the corresponding entry is removed from her knowledge. This produces the uncanny (yet evocative) image of an elderly character who gradually forgets about everyone she knows, one by one. ### Character Internal Worlds One characteristic of my simulation practice is an emphasis on simulating the internal lives of characters, a predilection emerged at the end of my development work on *World*. I am now engaging this phenomenon more deeply in *Hennepin*, and in Chapter 11 I situate my current approach against related work. [Note: In a recent email exchange, Chris Martens offered her thoughts as to the centrality of character interior life in narrative (and the peculiar disregard for it in computational narrative): “While I think it's well-understood in the narrative generation community that prevailing techniques address “plot” much more than (or to the exclusion of) “discourse,” I think that even within the realm of plot, computational narrative is too fixated on observable actions as the central *driver* of plot. I don't believe this fixation reflects the reality of what makes popular stories *function* as stories. [...] One concrete hypothesis I have is that if one were to comb through any popular novel, you would find that the vast majority of text doesn't describe “actions” at all but rather descriptions of characters' changing interior attitudes and responses to events, and that descriptions of actions themselves often serve only to add depth and detail to a character, not to advance the plot” (personal communication, April 7, 2018). I love this argument and agree that work in computational narrative should better emphasize character internal worlds.] #### Grief and Regret As I have mentioned above, characters may grieve the loss of loved ones who they know to be dead—when grief is triggered, it puts the character into a grief state that endures probabilistically according to a yearly probability of the grief subsiding. Characters in a grief state are traumatized, which affects decision making in the ways I have outlined above. When a character travels to somewhere where there are no other characters or potential partners, or where no one speaks her language, she may lament her decision to leave an earlier place of residence. #### Wonder, Worry, and Reminiscence Another internally oriented action concerns characters who wonder and worry about loved ones who live elsewhere; this is triggered probabilistically according to the character's neuroticism trait value. To actually take this action, a character searches through her knowledge to select a loved one whose last known whereabouts (from the worrying character's perspective) corresponded to the departure of a ship (which may have been observed by the worrier) or residence in another place (which depends on knowledge of such residence propagating back to the worrier). In *World*'s generated storyworld encyclopedias, such actions are recounted in the following way: “Gianna Shumeet is wondering about her husband Capt. Addie Shumeet, who 2 years ago left for a voyage on the Microbarograph and hasn't been heard from since”. [Note: This sentence was taken from the *Diol/Diel/Dial* entry for a character named Gianna Shumeet, which is hosted online at https://users.soe.ucsc.edu/~jor/diol/5544165584.html. As his own entry explains (see https://users.soe.ucsc.edu/~jor/diol/5505259280.html), Capt. Addie Shumeet had in fact just been killed in a mutiny aboard the ship.] Finally, characters may reminisce about past events. When this action is triggered, a character abstractly recalls her time in a former place of residence, from at least five years into the past, for which she was at least five years old at the time of residence; here, ship voyages are preferred, since I find them to be inherently more evocative. While grieving puts a character into a new state that affects her future behavior, the other internal phenomena are generated simply for narrative intrigue (since they may be expressed in a storyworld encyclopedia). ### Character Language The most ambitious subsystem in *World* pertains to its modeling of character linguistic phenomena, which I will outline in this section. [Note: This work was first reported in a workshop paper on the subsystem [ryan2016diegetically]. The prose here is lightly revised from that source.] At the start, all characters in the storyworld are together on the primordial ship and speak the same language, but over time this language will change and possible diverge into new languages, as I will now explain. #### Overview Each character has an *idiolect* (for each language they speak) that is represented by a sparse binary vector composed of 1,000 arbitrary bits. To account for linguistic innovation, bits in this vector may be flipped at a certain probability (which changes over the course of a character's life and is highest during adolescence). When characters speak to nearby people over the course of a year, they may adapt their idiolect to be (slightly) more like their interlocutors' idiolects—this is modeled by flipping a bit or two in the vectors. These simple mechanics are enough to cause dialects, and eventually new languages, to emerge: characters can only talk with others who are nearby (in the same settlement, in most cases) and most people do not move across the world, which means that arbitrary linguistic innovations (bits that were flipped) occurring in some place are only likely to be adapted by the inhabitants of that place. Young children then inherit (initially) an idiolect that resembles their parents' idiolects, which reinforces the linguistic quirks of a particular area. In this subsystem, dialects are represented compositionally by taking, for all 1,000 bits, the majority bit value given all idiolect vectors among the speakers living in some settlement. Likewise, a language is represented in this same way, but by instead taking into account the idiolects of all its speakers everywhere. If in some year any two dialects of the language become so dissimilar (measured by the number of bit values that do not agree) as to exceed some threshold, the dialects are reconstituted as full-fledged (sister) languages. #### Related Work Before discussing this subsystem, I would like to outline some related work, particularly in the area of computational media. Many videogames feature fictional *storyworld languages* that are spoken by characters in the games' diegeses [purnomo2017ludic,portnow2011gaming]. These languages are typically represented using constructed sound systems or orthographies, often runic-looking ones, that are intentionally opaque to the player. This design move has been employed for light worldbuilding that is nonessential to gameplay, like the variant of Hylian used in *The Legend of Zelda: The Wind Waker* [nintendo2003wind], as well as in support of abstract procedural dialogue (thereby skirting the cost of full natural language generation), a purpose served by the Simlish language of the *Sims* series [portnow2011gaming]. Other games, however, use storyworld languages in their core gameplay. In the *Myst* series, for example, the fictional D'ni language is central to certain puzzles [portnow2011gaming]. Chris Crawford's innovative *Trust & Betrayel: The Legacy of Siboot* [crawford1987trust] utilizes an early version of the designer's modular iconic language, Deikto [crawford2007deikto], as an important player interface. Exxos's *Captain Blood* [captainblood] employs a similar modular language that likewise allows players to construct novel messages that are understood by the system [purnomo2017ludic, p. 53]. *World of Warcraft* hinders communication between players whose characters are not in the same factions, using the narrative conceit that the factions are associated with mutually unintelligible languages [lowood2006storyline]. But while generative methods have been employed to produce a huge variety of videogame content [shaker2015procedural], including content representing other sociocultural concerns [johnson2015modelling,veld2015procedural,grinblat2017designing,mawhorter2017efficiency,compton2017little], I am not aware of any project that has procedurally generated storyworld languages. Even *Dwarf Fortress* [dwarf], whose range of content generation is famously vast, does not generate or alter its languages. Outside of videogames, but still within the purview of computational media, there have been some interesting experiments in this area. As he explains in a detailed write-up [oleary2015generating], Martin O'Leary's *Uncharted Atlas* [oleary2015uncharted] is a *Twitter bot* [lampi2017looking] that utilizes a subsystem for constructing *naming languages* [henning1995naming] that are used to name locales in the bot's procedurally generated world maps. In a similar vein, Kate Compton's *Kambamanx* [compton2017kambamanx] uses *Tracery* [compton2014tracery,compton2015tracery] to generate poems in generated languages. [Note: Polymath Vi Hart has rendered some of Kambamanx's outputs in song and posted audio recordings online. To hear them, follow the links included in this Twitter thread: https://twitter.com/GalaxyKate/status/858396760124919808.] Finally, though not a computational project, Thorny Games's *Dialect* [thorny2017dialect] is a board game about language change. More broadly, I should situate *World*'s language subsystem against the application area of artificial intelligence that computationally models language phenomena using agent-based simulations [steels2011modeling,gong2013computer]. In this body of work, there is a particular focus on operationalizing theories about the origins of language [steels1997synthetic,steels2011modeling] and about specific attested linguistic phenomena—for example, the emergence of *vowel harmony* [harrison2002agent] or *grammatical agreement* [beuls2013agent]—where the simulation outcomes serve as empirical results for the operational theory. This mode of scholarship is what Joshua Epstein has termed *generative social science* [epstein1999agent]. Relative to this craft, my method here is quite simplified in its modeled evolutionary processes and linguistic representations, but it does appear that this project could be novel in its simulation of diachronic (across centuries) macroscale (the phylogenetic level) language change in a massive discrete physical space (whereas other work typically models a single abstract agent environment). Finally, let us welcome back to the limelight Sheldon Klein, a main character from the first half of this dissertation. A few years after I implemented *World*'s approach to simulating character language phenomena, I learned that Klein had developed a remarkably similar system fifty years prior [klein1964dynamic,klein1965some,klein1966historical,klein1969monte,klein1974computer]. Moreover, this particular simulation framework ultimately developed into his murder-mystery generator, discussed at length in Chapter 4, as he explains in a brief retrospective [appelbaum1976meta]. In Klein's unnamed language simulation, developed approximately between 1964 and 1974, agents in abstract speech communities converse with one another over the course of a few simulated decades. Each speaker maintains a both a generation grammar and a recognition grammar, and conversation works something like this: > During the course of a conversation, one individual will generate a form and another will attempt to parse it. Should the parser's rules be inadequate for the task, he may borrow the necessary rules from the generation grammar of the speaker, and perhaps use it when it is his turn to speak. [klein1965some, p. 2] Klein's agents are modeled according to a number of concerns—“age, sex, village, clan, religion, household, marital state, work groups, and social status” [klein1969monte, p. 8]—and a loose social simulation determines who will interact with whom, in a way that depends on these attributes. As the simulation proceeds, agents die and new ones are born from existing ones, leading to *language acquisition*. Furthermore, agents can move between speech communities, which generates second-language phenomena and *language contact*, a topic to which Klein dedicated a paper on the project [klein1974computer]. In another article, titled “Monte Carlo Simulation of Language Change in Tikopia & Maori” [klein1969monte], he reports on an experiment in operationalizing a theory pertaining to specific real-world languages. While a more extensive excavation is in order, it is worth noting already that Klein's language simulation may be the earliest foray into a number computational areas that are central to the concerns of this dissertation: language modeling, of course, but more importantly, world generation and social simulation. This system is really important. In terms of its relations to *World*, both frameworks model a number of linguistic phenomena—namely native acquisition, non-native acquisition, and change—and do so by taking a fine-grained agent-based approach. Critically, however, the systems differ in the in the way that language itself is represented: while I utilize an abstract vectorial scheme, Klein remarkably implements full-fledged grammars for both generating and recognizing, which means his simulated conversations are in surface-level natural language. #### Background: William Labov's Incrementation Model [Figure omitted] Broadly, and at times specifically, my approach to simulating character language phenomena in *World* is an operationalization of William Labov's *incrementation model*, which describes real-world language change as a bottom-up evolutionary process that is driven by the speech activity of individuals [labov2007transmission]. [Note: William Labov is the sociolinguist whose work on *tellability* I outlined in Section 4.1.1.] While I will periodically explain more details below, the thrust of the model is that the individuals composing a new generation of speakers begin life by inheriting the speech tendencies of their parents, which they proceed to adapt and modify during adolescence, before eventually transmitting their specific innovations to their children, the next generation of speakers, who carry out this process again; Figure 7.4 illustrates how the model works in *World*. Labov's work extends two earlier notions in linguistics, which I would like to identify briefly. Leonard Bloomfield identified the *speech community* as the fundamental human group: > A speech-community is a group of people who interact by means of speech. All the so-called higher activities of man—our specifically human activities—spring from the close adjustment among individuals which we call society, and this adjustment, in turn, is based upon language; the speech-community, therefore, is the most important kind of social group. [bloomfield1933language, p. 42] Critically, a speech community may be subdivided into smaller communities whose members engage more frequently in speech interaction. In this way, a speech community comprising all the speakers of a language may be subdivided into smaller communities corresponding to dialects and smaller groups, and so forth, perhaps even to the level of considering an individual as a kind of speech community [hall1951idiolect]. Bloomfield's notion forms the bedrock of sociolinguistics, and it suggests a bottom-up mechanism of language change rooted in the speech activity of individuals, which is the thrust of Edward Sapir's notion of *drift* [sapir1921language]: language change is a gradual process built up by small changes over time. Labov unifies these ideas in a coherent model that identifies the nature of incremental language change as being grounded in the activity of individuals in a speech community. Generally, this kind of model is referred to as characterizing *change from below*, as opposed to change under pressure from external (or ‘above') forces, which occurs in *language contact* [thomason1992language], for example. The phrase ‘change from below' first appeared in a 1965 paper by Labov [labov1965mechanism]. #### Vectorial Representation My approach utilizes a vectorial scheme by which a language is represented as a sparse *bit array* with 1,000 entries—i.e., an array composed primarily of zeros but with a small number of ones. In this representation, bits stand for abstract linguistic features. This level of abstraction is targeted because it supports the efficient simulation of bottom-up language change among many characters, as well as the computation of mutual intelligibility between any two characters; as I explain below, these are the two core concerns of this subsystem. While languages are represented in this way during the simulation of language evolution, I was interested in the prospect of using underlying language vectors to generate concrete *surface-level* representations of those languages (i.e., *conlangs* [cheyne2008created,okrent2009land]). This was never implemented, however. [Note: In my workshop paper on this subsystem, I wrote this about the prospect: “Another area of future work [...] is the prospect of generating fully specified *conlangs*, or constructed languages, from them. We imagine that this would involve treating a vector as a genetic sequence that, by some mapping scheme, yields phenotypic traits that express in the surface representation of the language or in its rules. By this approach, related languages would produce similar conlangs, since they would have similar underlying vectors and would be generated using the same mapping scheme. For this project, language vectors would likely need to be extended past the 1000 entries that we used in this paper. This is because important language features—e.g., the use of gendered pronouns—would likely require many bits, if only for the practical reason that the flipping of a single bit in a language should only correspond to a small surface-level change” [ryan2016diegetically, p. 7].] [Figure omitted] #### Idiolects, Dialects, and Languages As in the real world, characters in *World* storyworlds instantiate their own *idiolects*, and the idiolects of multiple agents work in tandem to compose *dialects* and full-fledged *languages*. An idiolect characterizes the peculiar linguistic patterns of an individual, and a dialect represents the linguistic patterns of a speech community. In *World*, dialects are associated with groups of characters who speak the same language and live in the same settlement or on the same island (i.e., there are settlement dialects and also island dialects); both are represented using the same vectorial scheme discussed above. All three of these linguistic systems are examples of *varieties*, a useful term from sociolinguistics that I will utilize below. As I have noted, language change in *World* originates in the propagation of arbitrary linguistic innovations at the level of idiolects (modeled as bit flipping). Change at the level of dialects and languages, then, is merely a byproduct of idiolectal change, which is tracked at infrequent time intervals. Specifically, once every story year, the system updates the vector representing a language by surveying the idiolects of its proficient speakers to assemble a new vector whose entries contain the *majority bits*, across all speaker idiolects, for each bit index. For example, if 500 speakers of a language have a ‘1‘ as the 100th entry of their idiolect vectors and 499 have a ‘0‘, the language would take a ‘1‘ for that entry of its own vector (since it is the majority bit across the language's speakers). Dialects for each language are similarly instantiated for each settlement and island where the language is spoken, though of course these procedures only operate over the idiolects of speakers living in the relevant areas. #### Language Acquisition Children in *World* acquire language from parents and other individuals in their homes, and additionally from peers once they begin leaving their homes to interact with other characters living in their settlements. Additionally, adults may acquire non-native languages given sufficient exposure to them. In both cases, *fluency* is represented as a floating-point value between ‘0.0‘ and ‘1.0‘, where ‘0.6‘ is treated as a threshold for *proficiency*. Up until puberty, characters in *World* may acquire native-level fluency in any language to which they are sufficiently exposed; this operationalizes the *critical period hypothesis* in linguistics [lenneberg1967biological]. The *acquisition rate* (rate at which fluency is acquired) for characters gradually decreases until age fourteen, and thereafter steeply. Prior to the age of four, characters will only be exposed to languages spoken in their homes, specifically languages that are spoken proficiently by residents in the home. If there are multiple such languages, children may or may not acquire multiple or all of them—this is determined probabilistically, where languages spoken by parents and/or by multiple people in the home are more likely to be acquired. Upon reaching the age of four, children begin to leave the home and interact with other characters living in the same settlement. Here they may be exposed to many languages, which they acquire (or gain fluency in) probabilistically, where the chance of picking up a language is commensurate to the percentage of characters in the settlement who are proficient in that language. This probability is also boosted according to the degree that a language is spoken by friends of this character. To initialize a child's idiolect for a newly acquired language, she simply inherits the current idiolect of someone in the home (most likely her mother, per the incrementation model [labov2007transmission]), if it was acquired in the home, or else the vector for the current dialect of the language in her settlement. After puberty and until middle age, agents may acquire non-native languages at a gradually diminishing acquisition rate. Upon middle age, this acquisition rate begins to decrease exponentially. To initialize an agent's idiolect for a newly acquired non-native language, the system operationalizes the notion of a *foreign accent*. This is done by taking the local dialect of the language being acquired and warping each of its bits (at a 20% chance) to match the bit in the corresponding index of the agent's first language (i.e., the language she is most proficient in). If an agent does not have access to other speakers of a language that she speaks, she may lose proficiency in that language from disuse. This often occurs when someone leaves a home island for new environs in which no languages already known by the agent are present. Specifically, language fluency decays at a rate of 3% per year of non-exposure. #### Language Change Following Labov's incrementation model, *language change* in *World* works bottom-up according to the accumulation of minute changes occurring at the level of idiolects. This process is characterized by discrete linguistic *innovations* (modeled as bits flipping) that propagate, by a process called *adoption*, across speaker groups as agents incorporate these new forms into their own idiolects. Because dialects and languages are composed according to the idiolects of their speakers, idiolectal mutations will produce changes in these larger varieties as the former propagate widely. Similarly to biological evolution, dialects and languages change as discrete mutations in the speech patterns of individuals propagate across speaker groups [croft2000explaining]; the processes driving and governing linguistic mutation, in particular, are referred to by the banner term *innovation* [milroy1985linguistic]. In *World*, innovation is abstractly modeled as *bit flipping*; that is, a discrete linguistic innovation by an individual is simulated as the flipping of a single randomly selected bit in her idiolect vector. Each year, each agent in the storyworld has a probability of flipping a single bit, which is determined by the agent's age and personality. Specifically, agents between four and seventeen years old have a chance of innovating that approaches 60% (an operation of the incrementation model, which posits this age range), and thereafter the chance decreases as age increases and bottoms out around middle age. Additionally, the chance of flipping a bit depends on gender (the incrementation model asserts that girls and women are the primary drivers of language change; [labov1990intersection]) and speaker personality, with more extroverted agents being more likely to innovate; the latter operationalizes accounts of personality influencing innovation [eckert2000language]. Linguistic innovations propagate within and across speaker groups by a process called *adoption* [labov1990intersection,labov2007transmission]. In *World*, I model adoption as the unconscious flipping of bits in an agent's idiolect vector to match the corresponding bits in the idiolects of nearby agents. This is done for each language that the agent speaks, and works in the following way. Once a year, the system collects for an agent all of her friends that live in the same settlement (and speak the language at hand) and, for each of these friends, determines a *power of influence*. An agent's linguistic power of influence over another agent is determined by the influencer's proficiency in the language under consideration (more proficient speakers are more influential) and the age difference between the two agents (influence is decreases with age difference). Having this, the system iterates in a lockstep manner over the agents' respective idiolect vectors, and, for each instance of a mismatch between the vectors, flips the bit in the idiolect of the agent who is being influenced at the probability of the derived power of influence. For example, if the power of influence for the pair of agents is $0.5$, each mismatch between their idiolects would have a 50% chance of being resolved. Innovations spread across friends close in age to match the incrementation model's account that adoption primarily occurs within peer groups (who then pass on the innovations to their children), but I should note that this fails to capture the pivotal role of social stratification in this process (since *World* does not model these concerns) [labov1963social,eckert1988adolescent,labov1990intersection]. #### Language Birth and Death Over extended periods of localized innovation and adoption, dialects tend to grow apart as a function of geographic distance [labov2007transmission]. Eventually, such divergence may become so substantial that speakers of related dialects become *mutually unintelligible* to one another, at which point it becomes more useful to say that one or both have evolved into *daughter languages* of the language for which they were previously called dialects. This is *language birth*, and in *World*, demarcation proceeds as follows. As I noted above, dialects and languages are reconstructed yearly. Once this is done, the vectors for each island dialect are compared against the corresponding language vectors, and if any difference of more than 25 bits is encountered, the pertinent dialect is reified as a new language. As this process repeats, the storyworld's *language family* becomes more varied, and a phylogenetic tree characterizing it grows accordingly—just as *World* tracks genealogical information about characters, it does so with languages as well. I should also note here that the storyworld's *primordial language* (the language that already exists at the beginning of story time) is generated by turning its bits on at a 10% chance. All speakers alive at that time simply begin with that vector as their respective idiolect vectors. Additionally, the system constructs two *protolanguages* [millar2015trask]: the mother language of the primordial language (originating on the island outside the world that the primordial characters depart) and that language's mother language (which allows the language family tree to reach all the way back into prehistory). [Note: The emergent language family tree for one *World* storyworld may be explored starting from the *Diol/Diel/Dial* entry for Thal, the protolanguage for the protolanguage of the world's primordial language: https://users.soe.ucsc.edu/~jor/diol/4513623632.html.] Finally, *language death*: when the last speaker of a language dies or loses fluency in it, the language vanishes with her. #### Missing: Language Contact A major modeling gap in this subsystem is the lack of any simulation of *language contact* [thomason1992language]. This is the phenomenon of disparate linguistic varieties converging on small geographic areas, called *contact zones*, in which people who cannot speak to one another have to communicate for commerce or other reasons. From such contact might emerge a *pidgin* language, which is characterized by an underspecified recombination of features of the languages in contact. When a generation of children are exposed to a pidgin, however, they adopt it as a native language and invariably flesh it out to full specification, at which point it becomes a *creole*. Though I never got to it, I planned to model contact by having the system build *pidgin vectors* that would recombine subsets of the contact language vectors, which could then be filled out to full-length creoles using random bits. #### Language Names A language is named in one of a few different ways, depending on the nature of its origin. The prehistoric protolanguage at the root of a storyworld's language family is named by selecting randomly from a corpus of language names, which I constructed by procedurally recombining a number of short letter sequences. This language's only known daughter language is the one that originates prehistorically on the off-world island from which the set of primordial characters originate, and its sole known daughter language is the actual storyworld's primordial language. The latter is named by selecting an element from the language names corpus, and the former is named by prefixing ‘Proto-‘ onto the name attributed to its daughter. From here, languages are named according to a probabilistic procedure, as they emerge, by which there is a chance of either selecting from the corpus again or generating a demonymic name derived from the island on which it is primarily spoken. In the latter case, a simple function considers whether the island name ends in a vowel—if it does, the language name will end in ‘-an‘, otherwise another suffix (e.g., ‘-ic‘) will be probabilistically selected from a list of options. For instance, a language emerging on an island called Niota would be named Niotan. [Note: Niotan is in fact an obscure language that emerged in Diol, the subject storyworld of *Diol/Diel/Dial*. As its encyclopedia entry recounts (see https://users.soe.ucsc.edu/~jor/diol/6363583056.html), its origin island Niota became uninhabited, and accordingly the language (which was only ever spoken by seventeen individuals) became extinct.] #### World Toponyms Finally, while my representational scheme is abstract, as I have explained in the preceding sections, there is one surface-level linguistic unit that *is* produced by each language: a name for the storyworld. For the primordial language spoken by its first arrivals, a world toponym is randomly selected from the corpus of language names. (The ancestors of the primordial language do not have a name for the storyworld because they originate outside of it.) From this point on, a newly instantiated daughter language may mutate the world toponym of its parent language—this is triggered probabilistically and operates according to a simple procedure that models common sound changes that have been identified in historical linguistics [millar2015trask]. In the subject storyworld of *Diol/Diel/Dial*, for instance, this mechanism led to a gradual mutation of world toponyms from ‘Diol‘ to ‘Diel‘ to ‘Dial‘, though most languages retained the original variant. [Note: A few *Diol/Diel/Dial* encyclopedia entries express this evolution: the primordial language Aniumustpyrx refers to the world as ‘Diol', while its daughter language Pelicanic mutated this to ‘Diel', which its own daughter Guillermoan transformed into ‘Dial'. This can be seen by starting from the encyclopedia entry for Guillermoan (and following the ancestral path back to Aniumustpyrx): https://users.soe.ucsc.edu/~jor/diol/7683358032.html.] ### Whale Life As I noted above, *World* secretly contains a hidden simulation of the tiny abstract lives of whales who reside in storyworld oceans. By this simulation, a series of primordial whales are generated at the beginning of story time and placed near either a *feeding ground* or *breeding ground*, the positions of which are determined procedurally. Each year, sexually mature whales travel between the feeding ground and the breeding ground, while calves stay near the feeding ground. This navigation works similarly to character on-foot travel, except the direction of heading is rigged to point roughly toward the targeted destination. Modeled whale actions (beyond swimming) include mating, giving birth, nursing a calf, and eating fish (this is modeled abstractly by incrementing the whale's weight). Additionally, whales who swim near islands may become beached on them (according to a set probability), but unfortunately characters at such locations do not react to such whales. As I explained above, this subsystem was implemented late in *World*'s development, and I never got all the way to fully integrating it with the other subsystems in the simulation engine. As a result, emergent intrigue surrounding potential interactions between characters and whales—characters watching and hunting whales, or whales overturning ships and beaching at ports—cannot actually obtain in a storyworld. For this reason, whales are not included in the project's generated storyworld encyclopedias. ## Emergent Phenomena As I discussed at length in Section 4.1.1, a first question to ask with regard to a simulation engine is whether it can even produce stories at all. [Note: In that section, I identified a boringness continuum that spans from non-stories to boring stories to good stories.] Though its modeling is rudimentary and often suspect, as I will discuss in the following section, *World* still generates narrative potential in the form of evocative *emergent phenomena*. At times, this emergent material takes the form of a full-fledged event sequence, but more often it is a poetic image that is constituted in a brief moment in time. In this section, I will outline a few examples of emergent stories and images that I documented during my development of the simulation engine. #### An Old Friend Appears In my initial testing of the newly implemented system for handling character knowledge phenomena, I encountered an interesting dramatic nugget. A character who grew up on an island with a small population left it, at age nineteen, on a ship bound for a large, populous island that he would live on for the rest of his life. Decades later—by now the man was in his late 60s—another ship from his home island arrived there. It was the first ship to do so since the one that he had journeyed on all those years ago. Among the passengers of this vessel, which took up port at the settlement in which he lived, was a childhood friend of the man. The two caught up immediately and began to discuss the family and friends that the man had not seen in decades. As he would find out, most of these characters had died in that span. This was an uncanny and evocative image: a man in his 60s hears about the time and place of death, one after another, of everyone that mattered to him in his adolescence. Critically, he discovered that his immediately younger brother was murdered in their hometown *the year after he left*. As I explained in Section 7.3.12, in *World*'s storyworlds an onus is placed on a close relative of someone who is murdered to avenge that person's death. Even though the crime had been perpetrated nearly fifty years ago, by finding out about it now the man caused the simulation to trigger this onus mechanism, and so an elderly man became obligated to avenge his brother's killing more than four decades after it occurred. Later in the interaction, however, the man discovered that the murderer had also died a number of years ago, and so the onus was lifted almost as soon as it had been asserted. While this procedure, outlined in Section 7.3.14, pertains to the simple updating of a character's knowledge as to the last known whereabouts of other characters, my human mind could easily discern the narrative potential in the raw data. Especially since this was an initial test case, I became mesmerized by the prospect of stories about knowledge propagation, which would ultimately lead to the development of *Talk of the Town*, as I explain in Chapter 9. #### The Lone Mutineer Another example of fertile initial testing of a subsystem concerns the story of the first *World* character to be marooned after a failed mutiny attempt. In this case, I saved the system's generated chronicle of her tragic life, of which the following quotation is an excerpt: [Note: The generation of chronicles that recount emergent events in natural language is the core functionality of *Diol/Diel/Dial*, the subject of the following chapter, and so I explain how this system works in that chapter.] > 121. Freddy Uriah is now 18 years old. Zedekiah Abbott is trying to gather up a group of people in Sidney for an expedition on the Obumbrate, which Zedekiah Abbott has agreed to lead. Freddy Uriah declined an invitation from Zedekiah Abbott to leave Sidney on the Obumbrate, for unstated reasons. Luke Uriah is trying to gather up a group of people in Sidney for an expedition on the Autolysate, which Luke Uriah has agreed to lead. Freddy Uriah hesitantly accepted an invitation from Luke Uriah to leave Sidney on the Autolysate. Freddy Uriah moved out of Dunc House in Sidney. Freddy Uriah boarded the Autolysate from the port of Sidney, Quinhagak. The group about to board the Autolysate has decided that, rather than Luke Uriah naming himself captain outright, the passengers will decide who their captain will be democratically. Luke Uriah's shipmates have decided that he would make the best captain. The Autolysate, under command of Capt. Luke Uriah, has left the harbor at Sidney, Quinhagak. The Autolysate is heading NE at half-speed. Freddy Uriah's half-brother, Capt. Zedekiah Abbott, murdered 26-year-old Jefry Archibold in self-defense at sea aboard the Obumbrate, after the latter tried to murder him. Freddy Uriah's half-brother, Capt. Zedekiah Abbott, murdered Capt. Zedekiah Abbott in an act of revenge. This was his second victim. [Note: a bug caused this character to murder himself to atone for his own killing of his half-brother] 122. The Autolysate is heading NE at full-speed. Distrust in Capt. Luke Uriah is provoking murmors of a mutiny. As an act of mutiny, Freddy Uriah is going to attempt to murder Capt. Luke Uriah, whose decision-making aboard the Autolysate has been seen by some passengers as reckless and potentially life-endangering. Freddy Uriah attempted to murder Capt. Luke Uriah as an act of mutiny, but failed. A punishment is being decided for Freddy Uriah, who acted alone in her failed mutiny attempt. The Autolysate is approaching a desolate island on which Freddy Uriah will be marooned. Freddy Uriah was marooned on an uninhabited island, which the Autolysate immediately departed. A newly discovered island is now inhabited by a company of failed mutineers marooned by Capt. Luke Uriah of the Autolysate. They call it Blighted Land. Freddy Uriah now lives alone in the wilderness of an island she's named Blighted Land. Freddy Uriah is questioning whether she wants to continue living after being marooned on such a desolate isle. 123. Freddy Uriah turned 20. [...] Freddy Uriah is worrying about her brother Capt. Zedekiah Abbott and mother Di Uriah, who 2 years ago both left for a voyage on the Obumbrate and haven't been heard from since. {[...]} 127. Freddy Uriah decided to leave Wilderness of Blighted Land; she will do so shortly. Freddy Uriah is moving east from Wilderness of Blighted Land at a fast pace. Freddy Uriah traveled 12 miles east in the wilderness of Blighted Land. 128. Freddy Uriah is now 25 years old. Freddy Uriah decided to leave Wilderness of Blighted Land; she will do so shortly. Freddy Uriah is moving south from Wilderness of Blighted Land at a fast pace. Freddy Uriah traveled 3 miles south in the wilderness of Blighted Land. 129. Freddy Uriah decided to leave Wilderness of Blighted Land; she will do so shortly. Freddy Uriah is moving north from Wilderness of Blighted Land at a swift pace. Freddy Uriah traveled 9 miles north in the wilderness of Blighted Land. 130. Freddy Uriah decided to leave Wilderness of Blighted Land; she will do so shortly. Freddy Uriah is moving south from Wilderness of Blighted Land at a moderate pace. Freddy Uriah traveled 9 miles south in the wilderness of Blighted Land. 131. Freddy Uriah decided to leave Wilderness of Blighted Land; she will do so shortly. Freddy Uriah is moving south from Wilderness of Blighted Land at a fast pace. Freddy Uriah traveled a mile south in the wilderness of Blighted Land. 132. Freddy Uriah decided to leave Wilderness of Blighted Land; she will do so shortly. Freddy Uriah is moving east from Wilderness of Blighted Land at a fast pace. Freddy Uriah traveled 8 miles east in the wilderness of Blighted Land. 133. Freddy Uriah turned 30. Freddy Uriah is looking for a good site to build a house on land that she has picked out for a soon-to-be-established settlement. Freddy Uriah moved into Uriah House in Uriah. Freddy Uriah started a new settlement on Blighted Land called Uriah, which she named for herself. Freddy Uriah took her own life in Uriah, Blighted Land; she was 30 years old. Since Freddy Uriah was the only person in Uriah, she was not buried or given a gravestone. #### Sentenced to Life Another emergent story also concerns a failed mutineer, but in this case being marooned saved the character's life (and made life possible for her two daughters): > 921. Mala Tyson turned 20. Mala Tyson reluctantly accepted an invitation from Ole Brody to leave Paint Rock on the Patesiate. Mala Tyson moved out of Freeman House in Paint Rock. Mala Tyson boarded the Patesiate from the port of Paint Rock, Zesabeta. Ole Brody has made it clear that, because it was his decision for the ship to be commandeered, that he will serve as its captain. The Patesiate, under command of Capt. Ole Brody, has left the harbor at Paint Rock, Zesabeta. [...] 922. The Patesiate is heading SE at full-speed. The crew of the Patesiate have spotted land. Capt. Ole Brody chose to pass up land and persist on the voyage, inciting a heated argument among several passengers. As an act of mutiny, Mala Tyson is going to attempt to murder Capt. Ole Brody, whose decision-making aboard the Patesiate has been seen by some passengers as reckless and potentially life-endangering. Mala Tyson attempted to murder Capt. Ole Brody as an act of mutiny, but failed. A punishment is now being decided for Mala Tyson and her conspirators in the failed mutiny attempt: Vic Thad, Lambert Thad, and Bill Mauricio II. The Patesiate is approaching a desolate island on which the conspirators of the failed mutiny attempt will be marooned. Mala Tyson, Vic Thad, Lambert Thad, and Bill Mauricio II were marooned on an uninhabited island, which the Patesiate immediately departed. A newly discovered island is now inhabited by a company of failed mutineers marooned by Capt. Ole Brody of the Patesiate. They call it Cursed Island. Mala Tyson now lives among her fellow conspirators in the wilderness of an island they've named Cursed Island. {[...]} 926. Mala Thad is now 25 years old. Mala Thad's sister, Nikolia Thad, died aboard the Patesiate, which had become lost at sea; she was 31 years old. [Note: this was the ship that marooned Mala Thad; it was lost at sea and everyone aboard died] {[...]} 949. Mala Thad gave birth to a girl named Nelie Bobette Thad, of whom Lonny Thad is the father. [...] {[...]} 952. Mala Thad gave birth to a girl named Ame Fina Thad, of whom Lambert Thad is the father. 961. Mala Thad is now 60 years old. 971. Mala Thad turned 70. Mala Thad attempted to murder Lambert Thad, but failed. 972. Mala Thad died in Kokhanok, Cursed Island, of natural causes; she was 71 years old. Mala Thad was laid to rest in the Kokhanok cemetery by a procession of its residents, who placed a gravestone there. 979. Mala Thad's daughter, Ame Thad, died in Elma, Cursed Island, after showing symptoms of disease; she was 27 years old. 1022. Mala Thad's daughter, Nelie Thad, died in Kokhanok, Cursed Island, of natural causes; she was 73 years old. #### The Two Sons In a similar tale (whose chronicle I unfortunately did not save), two sons of a prolific ship captain were aboard their father's ship when he died, thereby opening his post. One of the sons was elected captain, which offended the other one, who decided he would claim the post by mutiny. The mutineer's attempt failed, and so his brother marooned him on a desolate island; he acted alone, so there were no companions marooned with him. Shortly thereafter, the ship now captained by his brother became lost at sea, and everyone aboard died; thus, like Mala Thad in the previous story, the mutiny saved his life. On his desolate isle, the mutineer set up a port settlement, where he would live alone for the next five decades. Then, one day, a ship arrived to dock in his town, and over one hundred characters disembarked to construct houses there. These new arrivals spoke a different language, and by now the mutineer was elderly, which made learning a new language difficult. The next year, he took his life. #### Emergent Poetic Images More often, *World*'s narrative potential manifests not in full-fledged stories, but in potent situations or poetic images, like the character above who learned about his brother's murder five decades too late. In a similar image, one might encounter a character who worries about a loved one who left on a ship long ago, when in fact that ship became lost at sea shortly after setting sail, meaning the loved one is already dead. Because a ghost ship cannot be encountered (ships do not literally cross in the night), the worried character will never come to learn of the demise of that loved one. Likewise, there is the uncanny image of an elderly character slowly forgetting everyone she never knew. In this excerpt from the *Diol/Diel/Dial* entry for a character named Capt. Friedrick Prasun, we encounter both of these images at once: > 353. Capt. Friedrick Prasun is worrying about his family member Capt. Georgianna Noland, who 13 years ago left for a voyage on the Umbelliferone and hasn't been heard from since. Friedrick is experiencing severe memory loss and no longer remembers his own daughter, Verene Prasun; they haven't seen each other since 12 years ago in in [sic] Lineville, Niota. [Note: This entry is hosted at https://users.soe.ucsc.edu/~jor/diol/5591024976.html.] In this case, the Umbelliferone became lost at sea under the command of Capt. Georgianna Noland, and its last passengers (including the captain) died in 347. [Note: Later, in 384, the ghost ship would finally sink. The entry for the Umbelliferone is available at https://users.soe.ucsc.edu/~jor/diol/5591024976.html, and the one for Capt. Georgianna Noland is here: https://users.soe.ucsc.edu/~jor/diol/6423942160.html.] Another image is that of a character who dies alone somewhere and receives no deathbed visitors and no gravestone. The aforementioned Capt. Friedrick Prasun passed away at the improbable age of 108 as the only inhabitant in a town he had founded 63 years earlier. Others, in large settlements, attract a procession of characters who come by for one last interaction, as in this excerpt from the *Diol/Diel/Dial* entry for a character named Jan Vaclav: > 404. Jan Vaclav has fallen ill. Jan is on his deathbed and was visited by the following friends and family: Godfree Gilles, Katleen Gilles, Benita Gilles, Clayborn Gilles, Jania Gilles, Darcy Gilles, Janus Gilles, Zia Gilles, Granville Quinn, Audrey Quinn, Pietra Quinn, Stanford Quinn, Margarethe Quinn, Jonathan Quinn, Luce Quinn, Rhodie Quinn, Teodoro Quinn, Fredrick Quinn, Carlyle Quinn, Hilary Quinn, Dosi Quinn, Paola Quinn, Thane Quinn, Winni Quinn, Waverley Quinn, Carissa Quinn, Shanna Quinn, Gabriellia Quinn, Margy Quinn, Joni Quinn, Tabby Quinn, Marsh Quinn, Malorie Quinn, Shaw Quinn, Rhodie Quinn, Yance Quinn, Horatio Quinn, Stillman Quinn, Veriee Quinn, Dori Quinn, Margy Quinn, Valdemar Quinn, Israel Quinn, Shirah Quinn, Fredrick Quinn, Holly Quinn, Rufus Quinn, Sven Quinn, Finn Quinn, Wheeler Quinn, Adrienne Quinn, Cyrille Quinn, Kinna Quinn, Sherline Quinn, Mitch Quinn, Shirah Quinn, Jerry Vaclav, Prentice Vaclav, Prentice Vaclav, Euclid Vaclav, Delores Vaclav, Armand Vaclav, Catrina Vaclav, Adair Vaclav, Gerri Vaclav, Lil Vaclav, Armand Vaclav, Avivah Vaclav, Loleta Vaclav, Cherie Vaclav, Erek Vaclav, Blondy Vaclav, Alfonse Vaclav, Edwina Vaclav, Loleta Vaclav, Marya Vaclav, Pauly Vaclav, Gunner Vaclav, Flore Vaclav, Andres Zollie, Hailey Zollie, Katya Zollie, Penrod Zollie, Julie Zollie, Luce Zollie, Katya Zollie, Juliane Zollie, Julie Zollie, Rowland Zollie, Shaw Zollie, Annadiane Zollie, Elmira Zollie, Boyce Zollie, and Spencer Zollie. Jan Vaclav died in White House, Mount Hope, of natural causes; he was 63 years old. Jan Vaclav was laid to rest in the White House cemetery by a procession of its residents, who placed a gravestone there. [Note: This entry is hosted at https://users.soe.ucsc.edu/~jor/diol/6799854480.html.] #### Curation and *World * Before concluding this section, I would like to emphasize that *World* itself cannot understand or even discern the evocative stories and images that emerge in its simulated storyworlds. Even my basic presentation of these examples in this section has depended on a process of curation, in this case carried out by me. This is illustrated by my use of ellipses in the quoted passages, for example, which signals the curatorial act of removing extraneous material. In Section 8.4, I will return to these concerns in a takedown of *Diol/Diel/Dial*'s lack of curation, for which *World*'s inability to understand its own generated material is to blame.