<!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>Precomputing Player Movement in Platformers for Level Generation with Reachability Constraints</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Vivian Lee</string-name>
          <email>lee.viv@northeastern.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nathan Partlan</string-name>
          <email>partlan.n@northeastern.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Seth Cooper</string-name>
          <email>se.cooper@northeastern.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Northeastern University</institution>
        </aff>
      </contrib-group>
      <fpage>6</fpage>
      <lpage>13</lpage>
      <abstract>
        <p>Procedural content generation via Machine Learning (PCGML) creates game levels from examples. PCGML for platformers with physics-based player movement generally has not guaranteed the reachability of goals, relying on post-generation filtering approaches or game-specific heuristic rules. In contrast, constraint-based PCGML can provide gameplay guarantees, but has typically been applied to games with simple grid-based movement. In this work, we present a constraint-based PCGML approach for platformers with physics-based player movement that guarantees playability and provides design controllability. Our approach exhaustively precomputes all possible player movement states in example tile-based platformer levels. It extracts metatiles containing local state information and uses them in constraint-based level generation that ensures legal tile neighbors and consistent movement state transitions. The approach can ensure constraints on gameplay, such as the reachability of goals, guaranteeing level playability, and other elements like platforms and bonuses. It can also incorporate other designer-controllable constraints.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Procedural content generation via Machine Learning
(PCGML) is an approach to game level generation that
learns from existing levels (Summerville et al. 2018). By
learning to generate unique levels from hand-designed ones,
PCGML methods can complement and support human
designers’ creativity. They can generate new ideas that match
well with the designer’s style and needs, helping with
brainstorming or refinement of a level design.</p>
      <p>
        While researchers have developed PCGML approaches to
generate levels for platformer games, these systems typically
do not provide guarantees about the reachability of level
elements, such as goals, and thus whether the resulting
levels are playable. They often rely on post-generation filtering
and playability heuristics and start over if the level is not
playable
        <xref ref-type="bibr" rid="ref10 ref24 ref25 ref39 ref44 ref46">(Snodgrass and Ontan˜ o´ n 2016)</xref>
        . Constraint-based
PCG approaches can incorporate reachability constraints
that guarantee playability, but have typically been applied to
games with simple tile-based movement rules
        <xref ref-type="bibr" rid="ref10 ref24 ref25 ref27 ref39 ref44">(Nelson and
Smith 2016)</xref>
        .
      </p>
      <p>Copyright c 2020 for this paper by its authors. Use permitted
under Creative Commons License Attribution 4.0 International (CC
BY 4.0).</p>
      <p>
        Beyond playability, PCGML methods often struggle to
guarantee other attributes of the resulting levels such as the
distribution of design elements or the reachability of
collectible items. Many PCGML methods rely on neural
networks, probabilistic graphical models, and other similar
approaches that are not easily interpretable or controllable.
Designers may need to iteratively re-train, often guessing what
might help the system achieve their desired vision
        <xref ref-type="bibr" rid="ref21">(Summerville, Philip, and Mateas 2015)</xref>
        . Constraint-based
methods allow designers to write a declarative description of their
requirements for the resulting level.
      </p>
      <p>
        In this paper, we propose an approach to constraint-based
PCGML for platformers with physics-based player
movement that allows reachability and other designer-controllable
constraints. Our approach precomputes all possible player
states, based on the game’s physics and movement rules,
in the training levels, and associates the tiles with those
states and the transitions between them to create metatiles.
By tracking and constraining state transitions when
generating levels, we ensure reachability of specific tiles like goals
and collectibles. We also include tile neighbor constraints
inspired by Wave Function Collapse (WFC)
        <xref ref-type="bibr" rid="ref9">(Gumin 2016)</xref>
        ,
and generate levels by solving the constraints using Answer
Set Programming (ASP)
        <xref ref-type="bibr" rid="ref6">(Gebser et al. 2011)</xref>
        . We show how
this can be combined with other constraints to ensure other
design requirements, e.g. specific ranges and numbers of tile
types. This process can be divided into 3 steps: (1)
enumerating the state graph, (2) extracting the metatiles and
constraints and (3) generating a new level that satisfies all the
constraints. We consider this to be a type of PCGML as some
of the constraints are learned from the training levels.
      </p>
      <p>
        We applied this level generation technique to a simple
tile-based platformer game we created called Turtle Loves
Pizza (TLP), shown in Figure 1. We trained on simplified
versions of Super Mario Bros. levels from the Video Game
Level Corpus (VGLC)
        <xref ref-type="bibr" rid="ref44 ref46">(Summerville et al. 2016)</xref>
        .
      </p>
      <p>We applied two types of reachability constraints:
playability, whether the generated level contains a path from the
start to each goal; and usefulness, whether platforms and
collectibles in the generated level are reachable and can be used
or collected. The ideal generated level should be both useful
and playable. We show that our approach can be used to
generate playable levels that also meet additional user-specified
design constraints including specific level dimensions and
the number of certain tile types in the generated level.</p>
      <p>The focus of this work is to propose a new technique for
generating novel levels from existing ones in platformers.
The contributions are (1) a level generation approach which
ensures reachability and allows for other controllable
constraints using constraint-based PCGML and precomputed
player movement and (2) a demonstration of the approach
using levels from an established domain with movement
rules from a custom platformer game.</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        PCG for Platformers Many researchers have proposed
and tested methods for generating levels for platformer
games. One line of work used designer-defined libraries
or grammars, often paired with constraints or
optimizations.
        <xref ref-type="bibr" rid="ref4">Compton and Mateas (2006)</xref>
        proposed hill-climbing
to generate segments of levels by difficulty, stitched
together with grammars. Inspired by Spelunky (Yu and Hull
2009),
        <xref ref-type="bibr" rid="ref22">Mawhorter and Mateas (2010)</xref>
        created more
flexible levels, at the expense of playability guarantees, by
anchoring hand-defined chunks based on player movement. G.
Smith et al. (2010; 2011) followed these concepts of
pattern analysis, adding the idea of rhythm and “beats,” by
using a constraint solver and reactive planning. Another
approach employed graph grammars
        <xref ref-type="bibr" rid="ref21">(London˜o and Missura
2015)</xref>
        . Though some of these techniques guaranteed
playability, they only supported a single path through each level,
and required manual work to define the available patterns.
      </p>
      <p>
        Seeking to learn such patterns from training data,
        <xref ref-type="bibr" rid="ref41">Sorenson and Pasquier (2010)</xref>
        ,
        <xref ref-type="bibr" rid="ref30">Shaker et al. (2012)</xref>
        , and
Togelius and Dahlskog (2013) employed evolutionary
algorithms. These did not guarantee playability, but did use
fitness functions to search towards it. Controllability of
the output, however, was lacking. Others tried
probabilistic graphical models such as n-grams and Markov Models
        <xref ref-type="bibr" rid="ref17 ref21 ref40 ref5">(Dahlskog, Togelius, and Nelson 2014; Summerville, Philip,
and Mateas 2015; Snodgrass and Ontan˜o´n 2017)</xref>
        . However,
these models have difficulty respecting global patterns or
constraints
        <xref ref-type="bibr" rid="ref10 ref24 ref25 ref39 ref44 ref46">(Summerville and Mateas 2016)</xref>
        .
        <xref ref-type="bibr" rid="ref39">Snodgrass and
Ontan˜o´n (2016)</xref>
        approximated A* pathfinding to check for
playability, but their test-and-regenerate approach could not
guarantee it.
      </p>
      <p>
        Finally, others have focused on artificial neural network
(ANN) approaches, beginning with
        <xref ref-type="bibr" rid="ref20">Laskov (2009)</xref>
        and
continuing with Hoover, Togelius, and Yannakis (2015), whose
neuroevolution technique was inspired by music theory, and
then by
        <xref ref-type="bibr" rid="ref10">Guzdial and Riedl (2016)</xref>
        . These, however, also did
not guarantee playability.
        <xref ref-type="bibr" rid="ref44 ref46">Summerville and Mateas (2016)</xref>
        include special path tiles, but these tile-based paths may not
reflect the exact player movement rules. ANNs also lack
explainability and transparency, making them less legible for
designers. Recent efforts to integrate PCGML with
mixedinitiative tools
        <xref ref-type="bibr" rid="ref11 ref12 ref14 ref16 ref18 ref21 ref29">(Hoover, Togelius, and Yannakis 2015;
Guzdial, Liao, and Riedl 2018; Guzdial et al. 2019)</xref>
        may help by
providing feedback and integrating playability checks
        <xref ref-type="bibr" rid="ref16">(Hoyt
et al. 2019)</xref>
        , but ANNs remain difficult to train and control.
Our approach, using a constraint solver to generate coherent
levels that respect playability constraints, affords designers
relative flexibility and control to specify additional local and
global constraints on levels.
      </p>
      <p>
        Constraint-based Level Generation Outside of
platformers, researchers have experimented with constraint-based
level generation. In games, this began with the level
design tool SketchaWorld by Smelik et al. (2010), followed
by work by A. Smith et al. (2010; 2011) on generating
puzzle game designs and levels using ASP. As mentioned
above, Tanagra and Launchpad applied constraint solving
to platformer levels
        <xref ref-type="bibr" rid="ref22 ref33 ref34 ref35 ref36 ref38 ref41">(Smith, Whitehead, and Mateas 2010;
Smith et al. 2011)</xref>
        , but their approach could only generate a
single player path.
        <xref ref-type="bibr" rid="ref15">Horswill and Foged (2012)</xref>
        applied
constraint solving to ensure playability in dungeon generation.
      </p>
      <p>
        Several released games use versions of Wave Function
Collapse (WFC)
        <xref ref-type="bibr" rid="ref9">(Gumin 2016)</xref>
        , a method inspired by
texture synthesis and model-based synthesis
        <xref ref-type="bibr" rid="ref13 ref23">(Harrison 2005;
Merrell 2009)</xref>
        . Others have noted that WFC is,
essentially, constraint solving without backtracking
        <xref ref-type="bibr" rid="ref17 ref40">(Karth and
Smith 2017)</xref>
        , and a PCGML method that learns from
examples
        <xref ref-type="bibr" rid="ref18 ref29">(Karth and Smith 2018)</xref>
        . Using ASP to re-implement
WFC in a full constraint solver has proven successful in
generating playable levels for games with simple movement
rules
        <xref ref-type="bibr" rid="ref10 ref18 ref24 ref25 ref27 ref29 ref39 ref44">(Nelson and Smith 2016; Scurti and Verbrugge 2018)</xref>
        .
        <xref ref-type="bibr" rid="ref28">Sandhu, Chen, and McCoy (2019</xref>
        ) further demonstrated how
design constraints can be incorporated with a WFC approach
to generate non-repetitive levels for a tile-based maze game.
      </p>
      <p>Going beyond previous applications of constraint
solving to platformers, our approach learns from existing levels
to automatically determine playability constraints, melding
ideas from WFC and ASP for dungeon generation with
platformer physics modeling.</p>
      <p>
        Precomputation and Sampling Previous work has also
applied extensive or exhaustive computation of gameplay
states. One application of this has been improved runtime
performance.
        <xref ref-type="bibr" rid="ref43">Stanton et al. (2016)</xref>
        extensively precomputed
gameplay states to allow for high-quality rendering on
mobile devices, and
        <xref ref-type="bibr" rid="ref42">Stanton et al. (2014)</xref>
        adaptively
precomputed complex fluid dynamics that could be prohibitively
expensive to compute at runtime. Another application is
testing and analysis.
        <xref ref-type="bibr" rid="ref1">Bauer and Popovic´ (2012)</xref>
        used
rapidlyexploring random trees to analyze and visualize player
movement in a platformer game to support level editing.
n
o
ti
a
r
e
m
u
n
E
h
p
a
rG START
e
tt
a
S
)
1
      </p>
      <p>GOAL
4 GOAL</p>
    </sec>
    <sec id="sec-3">
      <title>Overview</title>
      <p>To generate levels using reachability constraints, we analyze
existing playable levels to extract information from each tile
and build a set of constraint rules that new levels must
satisfy. We organize our method into: (1) enumerating the state
graph, (2) extracting the metatiles and constraints, (3)
solving the constraints to generate a new level. Here we discuss
the generic high-level approach, summarized in Figure 2.
Input Our approach takes as input (1) the game’s
movement rules and (2) a playable level for training.</p>
      <p>The game’s movement rules take an existing player state
and an input action and return the resulting state. The player
state contains at minimum a position component, a flag for
being the start state, and a flag for being a goal state.</p>
      <p>Next, we define a few simplifying assumptions about the
movement rules in the game. We assume that the player’s
movement is deterministic and that the player’s terminal
velocity cannot exceed the length of a square tile. Hence, we
assume that the movement rules are local: the player’s
movement, current state, and next state are only affected by the
player’s surrounding 3x3 neighborhood of tiles at each
possible state in the level. Thus, we assume that the absolute
position of the state and neighborhood does not matter, only
the state’s relative position within its local neighborhood.
These assumptions are used to extract metatiles which are
then used to generate new levels (discussed below).</p>
      <p>A valid training level is an existing level, represented as a
grid of tile types, with a start tile (which defines the player’s
start state), at least one goal tile, and a playable path from
start to goal. In this work, we assume all tiles along the outer
edge of the level (and none of the interior tiles) are border
tiles, which block the player from going out of the level. We
also assume that levels themselves are static, meaning tiles
will never change positions during gameplay.</p>
      <p>State Graph Enumeration The first step in the process is
to enumerate the player’s state graph for the input level. We
begin with the player’s start state and use the game’s
movement rules to exhaustively precompute every reachable state
in the level. The transitions in the directed graph represent
the player’s ability to move from a source state to a
destination state by performing a particular action. The enumerated
state graph for a valid input level will always contain a path
from the start state to every goal state.</p>
      <p>Metatile Extraction After we enumerate the state graph
for the input level, we extract the level’s metatiles. A
metatile contains a tile type, a graph of all the player’s
states within that specific metatile, and the transitions
between them. A metatile’s state graph also includes
outgoing edges, edges where the destination states are in adjacent
metatiles. Each metatile’s graph is a subgraph of the fully
enumerated level state graph. Every tile in the input level has
a corresponding metatile. When extracting metatiles, each
state’s position is offset to be relative to the metatile’s
location in the input level. This way, with a level’s metatiles and
knowledge of their locations in the input level, the metatiles’
graphs can be re-joined to reconstruct the fully enumerated
state graph. Each unique metatile extracted from the input
level is stored and assigned a unique ID.</p>
      <p>Once we have extracted the set of unique metatiles from
the input level, we examine the input level to determine the
legal adjacent neighbors for each unique metatile. These are
the metatiles that can be placed in each of the 8 possible
neighbor positions surrounding each metatile.</p>
      <p>At this point we have finished analyzing the input level
and have obtained (1) a defined set of metatiles, each
containing a unique subgraph of player states and their
transitions and (2) the learned adjacency rules for each metatile in
the set.</p>
      <p>Level Generation Finally, we input the metatiles and their
adjacency rules into a constraint solver and use WFC to
assemble instances of the metatiles into a new generated level.</p>
      <p>
        During level generation, when a metatile is assigned to a
position in the new level, all of its associated states and
transitions are also placed in the level and offset to the assigned
position. We use a technique similar to one suggested by
        <xref ref-type="bibr" rid="ref25">Nelson and Smith (2016)</xref>
        to track state reachability: the start
state is inherently reachable and for any source state that is
reachable, all destination states that can be transitioned to
from the source state are also reachable.
      </p>
      <p>To assemble metatiles into a level, we use the following
generic constraints:</p>
      <p>Size: Levels are rectangular and must satisfy a given
width and height, measured in tiles.</p>
      <p>Metatile neighbors: Each of the 8 neighbors of a metatile
I
n
p
u
t
L
e
v
e
l
+
+
+
–
+
+
–
+
+</p>
      <p>
        must be one of the metatiles that was seen neighboring it
in the same direction in the training level. This is based
on the WFC
        <xref ref-type="bibr" rid="ref9">(Gumin 2016)</xref>
        neighbor constraints.
Border tiles: The outer edge tiles are assigned to be
border tiles. Interior tiles must not be border tiles. This
ensures that all 8 neighbors exist for all interior tiles.
Transition destination: If a source state and transition out
of that state exist, the transition’s destination state must
also exist. This is based on the tile reachability rule from
        <xref ref-type="bibr" rid="ref25">Nelson and Smith (2016)</xref>
        . (Note that this does not
require the destination state to have had a corresponding
incoming transition in the training level).
      </p>
      <p>Goal reachability: All goal states must be reachable.
This ensures playability.</p>
      <p>
        We used the Potassco
        <xref ref-type="bibr" rid="ref6">(Gebser et al. 2011)</xref>
        tools to run an
ASP solver to find a placement of metatiles that satisfies the
defined constraints. Other games may apply additional
constraints, as we did in this work (discussed below). With this
approach, we can generate new levels that satisfy defined
reachability and design constraints from a small training set
and elementary ML technique
        <xref ref-type="bibr" rid="ref18 ref29">(Karth and Smith 2018)</xref>
        .
      </p>
    </sec>
    <sec id="sec-4">
      <title>Application</title>
      <p>To explore our approach, we implemented a tile-based
platformer called Turtle Loves Pizza (TLP). The player
controls a turtle that can move left and right and jump. The
turtle’s (x; y) position is based on its center. The turtle moves
smoothly within tiles and can occupy many possible
positions within them due to the physics-based movement rules.</p>
      <p>Its goal is to traverse the level to collect the pizza at the end.</p>
      <p>There are several tile types that can be used in the game:
empty tiles that the turtle can move though, block tiles that
block the turtle from moving, hazard tiles that kill the turtle
when touched, bonus tiles that behave like blocks but give a
1-1
1-2
1-3
534
614
222
500
750
1000
500
750
1000
200
300
400</p>
      <p>G
e
n
e
tr
a
e
d
?
+
+
z–
+
+
+
y–
+
–
7
16
96
score bonus the first time they are hit from below, a start tile
indicating where the turtle begins in the level, and a goal tile
that completes the level when touched.</p>
      <p>The movement rules in TLP are based on simple physics
rules: the turtle’s state has an x and y position and an x
and y velocity. For simplicity, we used integers for position
and velocity. Jumping sets the y velocity to its maximum
upward value, and gravity constantly accelerates the turtle
downward in y. Moving left or right happens at a constant
x velocity. In addition to position and velocity, each state in
TLP has a flag for being a start, a goal, resting on the ground,
or dead. Each state also has an indicator for being in contact
with a bonus tile that can be collected in its local tile
neighborhood, if any; the indicator specifies the cardinal direction
of the bonus tile relative to the turtle. Thus, each state can
be considered a tuple of (xpos; ypos; xvel; yvel; isstart;
isgoal; isdead; isonground; whichbonus).</p>
      <p>
        In order to have interesting input levels, we used
levels from Super Mario Bros. (SMB) from the VGLC
        <xref ref-type="bibr" rid="ref44 ref46">(Summerville et al. 2016)</xref>
        . Note that, although we used SMB
levels, we used TLP player movement rules; these are
different from Mario’s but ensure that the levels are still playable.
      </p>
      <p>To prepare SMB levels for TLP we made several
modifications, including mapping SMB tile types to TLP tile types;
adding an additional bottom row of hazard tiles where there
were pits in SMB so that the player would be classified as
dead after falling into a pit; adding border tiles around the
perimeter of the level; defining start and goal tiles, and
making minute tile placement adjustments as needed for
playability (e.g. removing a tile that Mario can pass through with
a special power-up but the turtle cannot).</p>
      <p>In addition to the generic constraints discussed above, we
used the following constraints to generate levels:</p>
      <p>Start and goal tiles: There must be exactly one start tile
within the first 10 columns and one goal tile within the
last 10 columns.</p>
      <p>Other tile counts: The number of block, hazard, and
bonus tiles must be within 20% of the number in the
----------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------XXXXXXX---XXX?-----------------------------------?-------------------------------
---------------------?-----------XXXXXXXXXX---XXX?--------------------XXXXXXXXXX---XXX?------------------------------?----------------------------------------------------XX---------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------XXX---------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------XXXX-----------------------------------------------------------------------------------------------------------------------------!---
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------XXXXX---------------------------------------------X?X-------------X-----XXXXXXXXXXXXX?X---------?---X?X?X---------------------XXXXXXXX
------------------?--?--?-----X?X----------------X-----XXXXXX?X----X?X----------------X-----XXXXXXXX?X---------?---X?X?X---------------------XX---------XX------------XXXXXX-----------------------------------------------------------------------------------------------------------------XX------XXXXXXXX
-------------------------------------------------------------------------------------------------------------------------------------XX------XX---------XX-----------XXXXXXX-------------------------------------------------------------------------------------------------------XX--------XX------XXXXXXXX
---------------------------------------------------------------------------------------------------------------------------XX--------XX------XX---------XX-------XX-XXXXXXXX-------------------------------*-----------------------------------------------------------------------XX--------XX------XXXXXXXX
------*--------------------------------------------------------------------------------------------------------------------XX--------XX------XX---------XX-------XXXXXXXXXXX-----------------------!-----!: goal. Border tiles omitted for clarity.
150%; 1-2, 100% and 150%; 1-3, 100% and 150%. Tile characters are -: blank, X: block, @: hazard, ?: bonus, : start, and
*
input level, scaled by the relative size of the output level
(e.g. the counts are halved for levels generated at 50%
size). This constraint helps prevent the solver from
generating uninteresting levels like rectangles of blocks.</p>
      <p>Platform reachability: All blocks that do not have a
block or a goal above them must have a reachable state
in the tile above them with isong r ound true. This
prevents the solver from creating superfluous unreachable
platforms in the air. We did not use this constraint when
using SMB 1-2 for input, as that training level itself had
many unreachable platforms.</p>
      <p>Bonus reachability: All bonuses must have a reachable
state in the tile below, with w hichbonus set so they can
be collected.</p>
      <p>Processing took place on an AWS r5.4xlarge instance with
16 cores and 128GB RAM, using Python 3 and pypy 3. The
clingo constraint solver was run with 12 threads, using a
different random seed for each level generation.</p>
      <p>To explore how different levels would impact the
generation process, we used SMB levels 1-1, 1-2, and 1-3 for input.</p>
      <p>We ran two sets of level generation tests: a size test and a
controllability test. To confirm playability, we (1) parsed the
solver output to verify that a reachable path existed from the
start to goal and (2) manually played all generated levels.</p>
      <p>First, to explore the kinds of levels generated, how long
it took, and how size impacted them, we generated levels
of varying sizes: we used the input level height, and
generated levels at 50%, 100% and 150% of the input level width.</p>
      <p>For each input level and size, we generated five levels. A
summary of the size test and the levels generated is given in
Table 1, and examples of levels generated in Figure 3.</p>
      <p>Second, to explore how controllable the generated levels
could be, we generated levels requiring exact counts of
specific tile types. For each of the block, hazard, and bonus tile
types, we tried generating a level that required an exact count
for that tile type (while allowing the other two tile types to
fall within the ranges previously discussed) for 100% size. A
summary of the controllability test’s results is given in Table
2, and examples of levels generated in Figure 4.</p>
    </sec>
    <sec id="sec-5">
      <title>Discussion</title>
      <p>
        Although we only requested five levels to be generated from
each training level, we observed a few patterns across the
generated levels. The generated levels were largely made up
of repeated “motifs” that could be found in the training
levels, such as stairs, pits, and groupings of platforms. These
motifs are similar to the “scenes” with specific game
mechanics that
        <xref ref-type="bibr" rid="ref7">Green et al. (2020)</xref>
        showed could be stitched
together to generate new SMB levels, though it should be
noted that our approach ensures playability for all generated
levels. The variety in our generated levels seems to be
primarily based on reorganizations of these motifs with
variations on their lengths. 1-2 had the least variety of levels
generated, with generated levels of the same length being
made up of the same sequences of motifs and minor
rearrangements of blocks. In fact, 3 of the 5 levels generated
from 1-2 at 100% size were identical. This may be
partially attributable to the relatively closed-off nature of 1-2
and the lack of the platform reachability constraint,
allowing the solver to create unusable platforms to easily satisfy
the adjacency and tile type range constraints. The solver
appeared more flexible in generating levels from 1-1 and 1-3,
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------?-----------XXXX---XXX?---------------------------?-------------------------------------XXXX---XXX?--------------------------?----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------!----------------------?--?--?-----X------------X-----XXXXX?X---------?---X?X?X---------------------XX---------X------------X-----XXXXXX---------?---X?X?X---------------------XX---------XXX---------XXXXXXX
-----------------------------------------------------------------------------------------XX------XX-----------------------------------------------------------------XX------XX---------XXX---------XXXXXXX
-------------------------------------------------------------------------------XX--------XX------XX-------------------------------------------------------XX--------XX------XX---------XXX---------XXXXXXX
--------*----------------------------------------------------------------------XX--------XX------XX-------------------------------------------------------XX--------XX------XX---------XXX---------XXXXXXX
XXXXXXXXXXXX--XXXXXXXXXXXXXXXXXXXXXXX---XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX---XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXX@@XXXXXXXXXXXXXXXXXXXXXXX@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX@@@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------XXXXXXX----------------------------------------------------------------------------------------*--------------XX--------------------XXXXXXXX-----------------------------------------------------------------------------------------XX----------XXXXXXX-----------XX---------------------------------------------------------XXXX------------------------------------------XXX-----------XX--------------------------XXXX-------------------------------------------------------------------------------------------------------------------XXXX--------------------------XXXX--------------------------------XXXXX------------------------------------------------------------------------------XXXX------------------------XXXXXX------------------XXXXXXXXXXX--------------------------------------XXXX--XXXXXXXXXXXXXXXXXXXXXXXXXXXX------------XXXXXX------------------------XXXXXX----------------------------------------------------XXXX?--------------------------------------------------------XXXXXX------------------------XXXXXX-----------------------------------------------------------------------------------------------------------------XXXXXX------------------------XXXXXX------------XXXX-------------XXX---------------------------------------------------------------------------------XXXXXX--------!-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------XXXXXXX-----------------------------------------------------------------------------------------------------------------------XXXXXXXXXXXXXX------------------------------------------------------------------------------XX--------------------------------------------------------------------------------------------------XXXX-------------------------------XXX-----------XX-------------------------------------------------------------------------------------------------------------------------------------------------XXXX-------------------------------------------------------------------------XXXXX-------------------------------------------------------------------XXXX-----------------------------------------------------XXXXXXXXXXXXXXXXX--------------------------------------XXXX--XXXXXX--XXXXXXXXX------------XXXXXX---------------------------------------------------------------------------------------------XXXX?---------------------------------------------XXXXXX-----------------------------------------------------------------------------------------------------------------------------------------------XXXXXX-----------------------*-----------------------XXXX-------------------XXX----------------------------------------------------------------------XXXXXX--------------!-Figure
      </p>
      <p>4: Example levels generated from the controllability
test. From top to bottom: 1-1, 500 blocks; 1-1, 10 hazards;
1-2, 500 blocks;
1-2, 10 bonuses;
1-3, 300 blocks;
hazards. Tile characters are -: blank, X: block, @: hazard, ?:
bonus,
*</p>
      <p>: start, and !: goal. Border tiles omitted for clarity.
the training levels that had more empty space.
1-2 and
13 failed to generate smaller size levels, possibly due to not
having enough room to work with to
place metatiles.</p>
      <p>We found that we needed to
add some additional
constraints to</p>
      <p>produce interesting and usable levels. Without the
tile count constraints the solver could
produce uninteresting
levels such as
simple
rectangles
of
blocks. We also found
that border tiles were needed to
prevent the solver from
finding undesirable solutions like levels with no bottom blocks
to
stand on (as
it could</p>
      <p>exploit the fact that the neighbor
metatile constraints only apply to metatiles that are present).</p>
      <p>In terms of controllability, we found mixed results. Levels
were only generated for about half of the tile count
configurations we tested. This may be due to the limitations of the
“motifs”
discussed above: for example, in
1-1 there was no
pit with only one hazard in it, and the solver could not
generate a level with only one hazard. In
practice, using
rangebased or soft constraints may be helpful to enable the solver
to find valid solutions.</p>
      <sec id="sec-5-1">
        <title>Limitations</title>
        <p>TLP
has
relatively
simple
physics-based
movement rules. For example, the turtle accelerates when
jumping or falling in
the y-direction, but moves
at a fixed
constant velocity
in
the
x-direction.</p>
        <p>We believe the
general technique would work with a more complex movement
physics simulation, but would
result in a larger state
graph
to
precompute. The turtle
also has no animation state
that
might influence its movement, and the world itself is static.</p>
        <p>The training and level generation
process
was
memory
and computation
intensive, necessitating a powerful
machine to</p>
        <p>run on. For example, the average
solving process to generate a level from 1-1
grounding and
at 150% width
took nearly an hour. However, we have since been able to
upgrade our approach to</p>
        <p>ground once and solve multiple times
with</p>
        <p>different random seeds to generate multiple levels, thus
reducing the time taken to generate a level.</p>
        <p>Finally,
although
generated
levels
are
playable,
the path
from
start
to
goal can be
technically
difficult
to
follow (i.e.</p>
        <p>require
precise</p>
        <p>timings for specific actions at
exact locations). It may be interesting to be able to express
the difficulty
of following a path
as a constraint as well.</p>
      </sec>
      <sec id="sec-5-2">
        <title>Future</title>
        <p>character</p>
      </sec>
      <sec id="sec-5-3">
        <title>Work</title>
        <p>Future work can explore games where
has
more
complex movement
rules,
as
well
the
as
more complex levels involving larger local neighborhoods
(which would
allow for
the incorporation
of
moving
elements like moving platforms and enemies) and generating
levels by training on multiple levels
at once. We could
also
consider other types of level generation primitives: in
SMBstyle
levels, it may make sense
to
train on columns rather
than individual tiles. Optimizations to improve the speed of
training and level generation are also areas for future work.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Ethical Implications</title>
        <p>This research uses levels authored by
humans, and future work based on it must grapple with
ethical questions of compensation, privacy, and equity, among
others. Due to space constraints, we focus here on
compensation and equity, and refer
readers
to</p>
        <sec id="sec-5-4-1">
          <title>Metcalf and Craw</title>
          <p>ford (2016) for a discussion of privacy concerns in ML.</p>
          <p>
            In
implementations and continuations
of
this
research,
people should be fairly compensated for their labor to make
levels that train
the system.
            <xref ref-type="bibr" rid="ref31">Sloane et
al. (2020)</xref>
            point out
that many ML systems are built on uncompensated,
unacknowledged labor. If misused, this could become one such
system. If it produces
profit or increases
efficiency by
supplanting work
          </p>
          <p>previously done by people, the profits or
savings should be shared with
the people
who enabled them.</p>
        </sec>
        <sec id="sec-5-4-2">
          <title>Beyond monetary</title>
          <p>compensation,</p>
        </sec>
        <sec id="sec-5-4-3">
          <title>Sloane et</title>
          <p>al. (2020) call
on implementers and researchers to
ask whether their use
of
data empowers users or exploits them.</p>
          <p>Moreover, machine learning may amplify
harms in
design (Phillips
et</p>
          <p>al. 2016; Bennett and Keyes 2019): this
system may create level elements that are harmful
or
inaccessible,</p>
          <p>or that reproduce intentionally abusive input.
Often, machine learning focuses on removing “bias,” but this
is not sufficient: ML systems may reproduce hate symbols
or add harmful</p>
          <p>
            elements, even if they are not “biased”
towards them
            <xref ref-type="bibr" rid="ref27">(Phillips et al. 2016)</xref>
            . An equitable
implementation would carefully vet input and output designs to
minimize harm, especially to vulnerable
or marginalized groups.
          </p>
        </sec>
        <sec id="sec-5-4-4">
          <title>If automated review is not capable</title>
          <p>
            of this detection, human
review may be necessary. We further call for future work to
undergo careful design and ethical review, going beyond this
incomplete list of potential risks and engaging with
intersectional analysis
            <xref ref-type="bibr" rid="ref3">(Ciston 2019)</xref>
            .
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In
this
work,
we
present
an
approach
for
constraintbased platformer level generation that guarantees
playability, based on player movement, without the need for
postgeneration evaluation and filtering. Our approach also
supports additional constraints to
offer designers more
creative
control and allow for flexible
level generation. We believe
this</p>
      <p>controllable, constraint-based PCGML technique can
aid game designers in</p>
      <p>elaborating on new ideas, re-mixing
and expanding on existing levels, and rapidly iterating, while
maintaining playability.
Summerville, A. J.; Philip, S.; and Mateas, M. 2015.
MCMCTS PCG 4 SMB: Monte Carlo tree search to guide
platformer level generation. Eleventh AAAI Conference on
Artificial Intelligence and Interactive Digital Entertainment.
Togelius, J., and Dahlskog, S. 2013. Patterns as objectives
for level generation. In Proceedings of the Second Workshop
on Design Patterns in Games.</p>
      <p>Yu, D., and Hull, A. 2009. Spelunky (PC Game).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Bauer</surname>
            ,
            <given-names>A. W.</given-names>
          </string-name>
          , and Popovic´,
          <string-name>
            <surname>Z.</surname>
          </string-name>
          <year>2012</year>
          .
          <article-title>RRT-based game level analysis, visualization, and visual refinement</article-title>
          .
          <source>In Eighth AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Bennett</surname>
            ,
            <given-names>C. L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Keyes</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <year>2019</year>
          .
          <article-title>What is the Point of Fairness? Disability, AI and The Complexity of Justice</article-title>
          .
          <source>In ASSETS 2019 Workshop-AI Fairness for People with Disabilities.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Ciston</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <year>2019</year>
          .
          <article-title>Imagining Intersectional AI</article-title>
          . In 7th Conference on Computation, Communication, Aesthetics &amp; X,
          <fpage>39</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Compton</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mateas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2006</year>
          .
          <article-title>Procedural Level Design for Platform Games</article-title>
          .
          <source>In Second AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</source>
          ,
          <fpage>109</fpage>
          -
          <lpage>111</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Dahlskog</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Togelius</surname>
            , J.; and Nelson,
            <given-names>M. J.</given-names>
          </string-name>
          <year>2014</year>
          .
          <article-title>Linear levels through n-grams</article-title>
          .
          <source>In Proceedings of the 18th International Academic MindTrek Conference: Media Business, Management, Content &amp; Services</source>
          ,
          <fpage>200</fpage>
          -
          <lpage>206</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Gebser</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ; Kaufmann,
          <string-name>
            <given-names>B.</given-names>
            ;
            <surname>Kaminski</surname>
          </string-name>
          ,
          <string-name>
            <surname>R.</surname>
          </string-name>
          ; Ostrowski,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>Schaub</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ; and
            <surname>Schneider</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <year>2011</year>
          .
          <article-title>Potassco: The Potsdam answer set solving collection</article-title>
          .
          <source>AI</source>
          Communications
          <volume>24</volume>
          (
          <issue>2</issue>
          ):
          <fpage>107</fpage>
          -
          <lpage>124</lpage>
          . ISBN:
          <fpage>0921</fpage>
          -
          <lpage>7126</lpage>
          Publisher: Citeseer.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Green</surname>
            ,
            <given-names>M. C.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Mugrai</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Khalifa</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ; and
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <article-title>Mario level generation from mechanics using scene stitching</article-title>
          . arXiv:
          <year>2002</year>
          .
          <article-title>02992 [cs</article-title>
          .
          <source>AI].</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Gumin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2016</year>
          . WaveFunctionCollapse. GitHub repository. https://github.com/mxgmn/WaveFunctionCollapse.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Guzdial</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Riedl</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>Game level generation from gameplay videos</article-title>
          .
          <source>In Twelfth Artificial Intelligence and Interactive Digital Entertainment Conference.</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Guzdial</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Liao</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Chen</surname>
          </string-name>
          , S.-Y.;
          <string-name>
            <surname>Shah</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Shah</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Reno</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ; and Riedl,
          <string-name>
            <surname>M. O.</surname>
          </string-name>
          <year>2019</year>
          .
          <article-title>Friend, collaborator, student, manager: How design of an AI-driven game level editor affects creators</article-title>
          .
          <source>In Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems</source>
          ,
          <volume>624</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>624</lpage>
          :
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Guzdial</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Liao</surname>
            , N.; and Riedl,
            <given-names>M.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Co-creative level design via machine learning</article-title>
          .
          <source>In Experimental AI In Games Workshop</source>
          . arXiv:
          <year>1809</year>
          .09420.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Harrison</surname>
            ,
            <given-names>P. F.</given-names>
          </string-name>
          <year>2005</year>
          .
          <article-title>Image Texture Tools</article-title>
          .
          <source>Ph.D. Dissertation</source>
          , Monash University.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Hoover</surname>
            ,
            <given-names>A. K.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Togelius</surname>
            , J.; and Yannakis,
            <given-names>G. N.</given-names>
          </string-name>
          <year>2015</year>
          .
          <article-title>Composing video game levels with music metaphors through functional scaffolding</article-title>
          .
          <source>In First Computational Creativity and Games Workshop.</source>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <string-name>
            <surname>Horswill</surname>
            ,
            <given-names>I. D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Foged</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <year>2012</year>
          .
          <article-title>Fast procedural level population with playability constraints</article-title>
          .
          <source>In Eighth AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment.</source>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <string-name>
            <surname>Hoyt</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Guzdial</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ; and Riedl,
          <string-name>
            <surname>M. O.</surname>
          </string-name>
          <year>2019</year>
          .
          <article-title>Integrating Automated Play in Level CoCreation</article-title>
          . In Experimental AI In Games Workshop.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <string-name>
            <surname>Karth</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>A. M.</given-names>
          </string-name>
          <year>2017</year>
          .
          <article-title>WaveFunctionCollapse is constraint solving in the wild</article-title>
          .
          <source>In Proceedings of the 12th International Conference on the Foundations of Digital Games</source>
          ,
          <volume>68</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>68</lpage>
          :
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          <string-name>
            <surname>Karth</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>A. M.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Addressing the fundamental tension of PCGML with discriminative learning.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          arXiv:
          <year>1809</year>
          .04432 [cs, stat].
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <string-name>
            <surname>Laskov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <year>2009</year>
          .
          <article-title>Level generation system for platform games based on a reinforcement learning approach</article-title>
          . University of Edinburgh,
          <source>Tech. Rep. EDI-INF-IM090699.</source>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          London˜o,
          <string-name>
            <given-names>S.</given-names>
            , and
            <surname>Missura</surname>
          </string-name>
          ,
          <string-name>
            <surname>O.</surname>
          </string-name>
          <year>2015</year>
          .
          <article-title>Graph Grammars for Super Mario Bros Levels</article-title>
          .
          <source>In Proceedings of the 10th International Conference on the Foundations of Digital Games.</source>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <string-name>
            <surname>Mawhorter</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mateas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>Procedural level generation using occupancy-regulated extension</article-title>
          .
          <source>In Proceedings of the 2010 IEEE Conference on Computational Intelligence and Games</source>
          ,
          <volume>351</volume>
          -
          <fpage>358</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          <string-name>
            <surname>Merrell</surname>
            ,
            <given-names>P. C.</given-names>
          </string-name>
          <year>2009</year>
          .
          <article-title>Model synthesis</article-title>
          .
          <source>Ph.D. Dissertation</source>
          , University of North Carolina at Chapel Hill.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          <string-name>
            <surname>Metcalf</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Crawford</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>Where are human subjects in big data research? The emerging ethics divide</article-title>
          .
          <source>Big Data &amp; Society</source>
          <volume>3</volume>
          (
          <issue>1</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>M. J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>A. M.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>ASP with applications to mazes and levels</article-title>
          . In Shaker, N.;
          <string-name>
            <surname>Togelius</surname>
          </string-name>
          , J.; and Nelson, M. J., eds., Procedural Content Generation in Games,
          <source>Computational Synthesis and Creative Systems.</source>
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          Cham: Springer International Publishing.
          <volume>143</volume>
          -
          <fpage>157</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <surname>Phillips</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ; Cook,
          <string-name>
            <surname>M.</surname>
          </string-name>
          ; and Short,
          <string-name>
            <surname>T.</surname>
          </string-name>
          <year>2016</year>
          .
          <article-title>Feminism and procedural content generation: toward a collaborative politics of computational creativity</article-title>
          .
          <source>Digital Creativity</source>
          <volume>27</volume>
          (
          <issue>1</issue>
          ):
          <fpage>82</fpage>
          -
          <lpage>97</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <string-name>
            <surname>Sandhu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ; and
          <string-name>
            <surname>McCoy</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <year>2019</year>
          .
          <article-title>Enhancing Wave Function Collapse with design-level constraints</article-title>
          .
          <source>In Proceedings of the 14th International Conference on the Foundations of Digital Games</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <string-name>
            <surname>Scurti</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Verbrugge</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <year>2018</year>
          .
          <article-title>Generating paths with WFC</article-title>
          .
          <source>In Fourteenth AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment.</source>
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <string-name>
            <surname>Shaker</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Nicolau</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Yannakakis</surname>
            ,
            <given-names>G. N.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Togelius</surname>
            , J.; and
            <given-names>O</given-names>
          </string-name>
          <string-name>
            <surname>'Neill</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2012</year>
          .
          <article-title>Evolving levels for Super Mario Bros using grammatical evolution</article-title>
          .
          <source>In 2012 IEEE Conference on Computational Intelligence and Games (CIG)</source>
          ,
          <fpage>304</fpage>
          -
          <lpage>311</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          <string-name>
            <surname>Sloane</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Moss</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Awomolo</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ; and
          <string-name>
            <surname>Forlano</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          <article-title>Participation is not a design fix for machine learning</article-title>
          .
          <source>In ICML 2020 Workshop on Participatory Approaches to Machine Learning.</source>
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          2010.
          <article-title>Integrating procedural generation and manual editing of virtual worlds</article-title>
          .
          <source>In Proceedings of the 2010 Workshop on Procedural Content Generation in Games</source>
          , 1-
          <fpage>8</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>A. M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mateas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2011</year>
          .
          <article-title>Answer set programming for procedural content generation: A design space approach</article-title>
          .
          <source>IEEE Transactions on Computational Intelligence and AI in Games</source>
          <volume>3</volume>
          (
          <issue>3</issue>
          ):
          <fpage>187</fpage>
          -
          <lpage>200</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Whitehead</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ; Mateas,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ;
            <surname>March</surname>
          </string-name>
          , J.; and Cha,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <year>2011</year>
          .
          <article-title>Launchpad: A rhythm-based level generator for 2-d platformers</article-title>
          .
          <source>IEEE Transactions on computational intelligence and AI in games 3</source>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>A. M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>M. J.;</given-names>
          </string-name>
          and Mateas,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <year>2010</year>
          .
          <article-title>Ludocore: A logical game engine for modeling videogames</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          <source>In Proceedings of the 2010 IEEE Conference on Computational Intelligence and Games</source>
          ,
          <volume>91</volume>
          -
          <fpage>98</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Whitehead</surname>
            , J.; and Mateas,
            <given-names>M.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>Tanagra: A mixed-initiative level design tool</article-title>
          .
          <source>In Proceedings of the Fifth International Conference on the Foundations of Digital Games</source>
          ,
          <fpage>209</fpage>
          -
          <lpage>216</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          <string-name>
            <surname>Snodgrass</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and Ontan˜o´n,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <year>2016</year>
          .
          <article-title>Controllable procedural content generation via constrained multi-dimensional Markov chain sampling</article-title>
          .
          <source>In Proceedings of the TwentyFifth International Joint Conference on Artificial Intelligence</source>
          ,
          <fpage>780</fpage>
          -
          <lpage>786</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          <string-name>
            <surname>Snodgrass</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and Ontan˜o´n,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <year>2017</year>
          .
          <article-title>Learning to generate video game maps using Markov models</article-title>
          .
          <source>IEEE Transactions on Computational Intelligence and AI in Games</source>
          <volume>9</volume>
          (
          <issue>4</issue>
          ):
          <fpage>410</fpage>
          -
          <lpage>422</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          <string-name>
            <surname>Sorenson</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pasquier</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <year>2010</year>
          .
          <article-title>The evolution of fun: Automatic level design through challenge modeling</article-title>
          .
          <source>In International Conference on Computational Creativity</source>
          ,
          <fpage>258</fpage>
          -
          <lpage>267</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          <string-name>
            <surname>Stanton</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Humberston</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Kase</surname>
            ,
            <given-names>B.; O</given-names>
          </string-name>
          <string-name>
            <surname>'Brien</surname>
            ,
            <given-names>J. F.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Fatahalian</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ; and
          <string-name>
            <surname>Treuille</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <year>2014</year>
          .
          <article-title>Self-refining games using player analytics</article-title>
          .
          <source>ACM Transactions on Graphics (SIGGRAPH) 33</source>
          (
          <issue>4</issue>
          ):
          <volume>73</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>73</lpage>
          :
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          <string-name>
            <surname>Stanton</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Geddert</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Blumer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Hormis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Nealen</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ;
          <string-name>
            <surname>Cooper</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ; and
          <string-name>
            <surname>Treuille</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>Large-scale finite state game engines</article-title>
          .
          <source>In Proceedings of the Eurographics/ACM SIGGRAPH Symposium on Computer Animation.</source>
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          <string-name>
            <surname>Summerville</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mateas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <year>2016</year>
          .
          <article-title>Super Mario as a string: platformer level generation via LSTMs</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          <source>arXiv:1603</source>
          .00930 [cs].
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          <string-name>
            <surname>Summerville</surname>
            ,
            <given-names>A. J.</given-names>
          </string-name>
          ; Snodgrass,
          <string-name>
            <surname>S.</surname>
          </string-name>
          ; Mateas,
          <string-name>
            <surname>M.</surname>
          </string-name>
          ; and Ontan˜o´n,
          <string-name>
            <surname>S.</surname>
          </string-name>
          <year>2016</year>
          .
          <article-title>The VGLC: The Video Game Level Corpus</article-title>
          . arXiv:
          <volume>1606</volume>
          .07487 [cs].
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          2018.
          <article-title>Procedural Content Generation via Machine Learning (PCGML)</article-title>
          .
          <source>IEEE Transactions on Games</source>
          <volume>10</volume>
          (
          <issue>3</issue>
          ):
          <fpage>257</fpage>
          -
          <lpage>270</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>