<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Intertwining World and Narrative Generation for a Mobile Role-playing Game</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Joel Jonasson</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Brenden Lech</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sasha Azad</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Chris Martens</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Blast Bit Enterprises AB</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sweden</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>North Carolina State University</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Making a game where the environments, characters, and
story are all procedurally generated is a complex task. We
are a small studio in Sweden trying to develop such a game
for the mobile market (working title “Lance a Lot”). Our
game adopts role-playing game conventions, such as an
explorable world map, non-player characters, and quests. It is
our aim to develop as our ”story engine” a system capable
of procedurally generating quests and narratives to guide the
gameplay experience. Such a system would encourage
replayability and ensure players never run out of content to
experience, while affording players more agency to shape
the narrative and the world through their actions.</p>
      <p>Our approach to knitting together multiple kinds of
procedural generation involves two types of generators: abstract
and concrete. The abstract generators construct
representations of game content as sentences in first-order logic, and
the concrete generators that instantiates the in-game
representations of those logical sentences.</p>
      <p>The abstract generators include generating the history of
the world, cultures and belief systems, character personality
and backstory. When the player enters a previously unvisited
area, the engine generates the next area (see Fig. 1),
beginning with the generation of the terrain, including the area’s
biome, preliminary information about connecting areas, and
any other high-level terrain definition information required.
Copyright © 2021 for this paper by its authors. Use permitted
under Creative Commons License Attribution 4.0 International
(CC BY 4.0).</p>
      <p>Our abstract generators receive as input possible player
interactions, facts about the world and terrain, details
available in the knowledge base, and hyper-parameters such as
a series of morphological functions (Propp 2010), pacing or
story beats (Mateas and Stern 2005), and other thematic
variables.</p>
      <p>The abstract generators work in a gradual process of
making information more concrete until the properties of an area
are defined to the degree that the information can be used
as input to the concrete generators. An example of some of
the properties associated with regions are locative properties
(such as resources, or settlements), the non-player
characters in the region (including details of their species, or
interactions available to them), and quest information for the
player. The first iteration will employ a partially
planningbased approach to quest generation.</p>
      <p>Each concrete (content) generator (see Fig. 2) defines a
category of objects and thereby also what properties and
relations may be specified for an object of that category.
For example, a content generator for vegetation may
define a plant as a type of content, with properties like
edible and poisonous defined as unary predicates (for
instance, edible(plant)), and defining locations as binary
predicates (for example via, at(plant; area)). Similarly,
the agent generator controls available interactions in the
world, for instance, avoids(agent; agent), dazed(agent),
or initiates(agent; agent; F ightjDialogue). These
content generators are registered with the narrative system,
enabling the abstract generators to see them as object
categories.</p>
      <p>Currently we are in the process of iterating on game
mechanics and improving the content generators in the game.
We are actively collaborating with an academic group to
design a cohesive system that will be underpinned by Answer
Set Programming, Linear Logic, and/or AI planning
techniques. We are interested in sharing our current approach
with the EXAG community and receiving feedback on our
initial prototypes.
Mateas, M., and Stern, A. 2005. Structuring content in the
fac¸ade interactive drama architecture. In AIIDE, 93–98.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>