<!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>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adeel Zafar</string-name>
          <email>adeel.zafar@riphah.edu.pk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hasan Mujtaba</string-name>
          <email>hasan.mujtaba@nu.edu.pk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mirza Omer Beg</string-name>
          <email>omer.beg@nu.edu.pk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sajid Ali</string-name>
          <email>sajid.ali123@yahoo.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Riphah Int. University and NUCES-FAST</institution>
          ,
          <addr-line>Islamabad</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Deceptive games are games where rewards are designed to lead agents away from a global optimum policy. In this paper, we have developed a deceptive generator that generated three different type of traps including greedy, smoothness and generality trap. The generator was successful in generating levels for a large set of games in the General Video Game Level Generation Framework. Our experimental results show that all tested agents were vulnerable to several kinds of deceptions.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Creating manual content for games is a time consuming
        <xref ref-type="bibr" rid="ref11 ref13">(Togelius et al. 2010)</xref>
        and expensive task. Delegating
content generation to an algorithmic process can save time and
money. Procedural Content Generation (PCG) (Shaker et al.
2010) is such a method, where the algorithmic process is
used to create a large variety of content including levels,
maps, textures, and weapons. The recent advancement in the
field of PCG has seen the rise of two different types of
algorithms for the purpose of automatic generation: Constructive
techniques and Search-Based techniques. With the
constructive technique, content is generated in a single pass without
any further iterations. Constructive techniques (Shaker et al.
2010) are a simple and fast means of content generation. By
contrast, Search-Based techniques
        <xref ref-type="bibr" rid="ref11 ref13">(Togelius et al. 2010)</xref>
        regenerate the content in order to improve their quality. Those
techniques mostly use an evolutionary algorithm or similar
method for content generation.
      </p>
      <p>
        In a recent study, author
        <xref ref-type="bibr" rid="ref1">(Anderson et al. 2018)</xref>
        introduced the concept of deceptive games. These games are
designed in a way to trap the agents or controllers playing the
game. The motivation for designing these type of games is
focused on a more broader aspect of designing difficulty or
challenge in games for Artificial Intelligent (AI) agents. The
study focused on providing a Video Game Description
Language (VGDL)
        <xref ref-type="bibr" rid="ref7">(Schaul 2013)</xref>
        in the General Video Game AI
(GVG-AI)
        <xref ref-type="bibr" rid="ref3">(Perez et al. 2016)</xref>
        framework. In this paper, we
have built on this idea and have created a deceptive generator
that generates the deceptive levels for a large set of games in
the GVG-AI framework. The deceptive generator generates
three different types of traps including greedy trap,
smoothness trap and generality trap. The experimentation results
highlighted the fact that the generated levels of the
deceptive generator were challenging for different AI agents.
      </p>
      <p>The remainder of the paper is organized as follows. In
section 2, we give some background and related work. Section
3 explains the strategy and algorithm for level generation.
Section 4 presents the experimental evaluation. Finally, we
conclude the paper in section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <sec id="sec-2-1">
        <title>Procedural Content Generation</title>
        <p>
          PCG is a technique of generating gaming content,
including levels
          <xref ref-type="bibr" rid="ref5">(Dahlskog et al. 2014)</xref>
          <xref ref-type="bibr" rid="ref6">(Adrian et al. 2013)</xref>
          ,
maps
          <xref ref-type="bibr" rid="ref11 ref13">(Togelius et al. 2010)</xref>
          , music
          <xref ref-type="bibr" rid="ref9">(Jordan et al. 2012)</xref>
          ,
racing tracks
          <xref ref-type="bibr" rid="ref10">(Kemmerling et al. 2010)</xref>
          , weapons
          <xref ref-type="bibr" rid="ref14">(Hastings et al. 2009)</xref>
          , and terrains
          <xref ref-type="bibr" rid="ref8">(Frade et al. 2012)</xref>
          automatically through some pseudo-random process. Though
PCG is not a silver bullet for game designers, it has been
widely used for Rogue-like games by Indie game
developers. Automated content generation techniques can help
Indie game developers to limit the cost and time of
development which is showcased by successful games such as
No Mans Sky (https://www.nomanssky.com/), Binding of
Isaac (http://store.steampowered.com) and Faster than Light
(http://store.steampowered.com).
        </p>
        <p>
          VGDL, GVG-AI and GVG-LG Framework
Video Game Description Language (VGDL)
          <xref ref-type="bibr" rid="ref7">(Schaul 2013)</xref>
          was designed by Stanford General Video Game Playing
(GVGP). VGDL is a simple, description language to define
a variety of 2D games. General Video Game AI (GVG-AI)
          <xref ref-type="bibr" rid="ref3">(Perez et al. 2016)</xref>
          framework is the basis for general video
game playing competition, where participants can create
different agents and can test them against a variety of games.
General Video Game Level Generation (GVG-LG) (Khalifa
et al. 2016) track is built on top of GVG-AI. The framework
allows participants to create generators that can generate
levels for a set of different games. Initially, the framework is
composed of three sample level generators including
random, constructive and search based generators.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Deceptive Games</title>
        <p>
          In a recent study
          <xref ref-type="bibr" rid="ref1">(Anderson et al. 2018)</xref>
          , the author
introduced the concept of deceptive games. These games were
designed in accordance to lead the agent away from a global
optimum policy. To showcase the vulnerability of game
playing agents, a number of deceptions were designed. Each
trap was focused on a certain cognitive bias. The results
showed that different game playing agents had different
weaknesses. In this paper, we have built on the existing work
and have created a deceptive generator. The deceptive
generator generates multiple cognitive traps including greedy
trap, smoothness trap and generality trap. For the
aforementioned problem, the GVG-LG framework was used and the
algorithm was successful to generate a variety of traps for a
large set of games.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Method</title>
      <p>Classification of Games
In order to implement deceptions in the game set of
GVGLG framework, we have thoroughly analyzed all the 91
games. The initial step of exploring all games exhaustively
was important as we had to limit the games, where our
implemented deceptions would not make some sense. While
exploring the games of the GVG-LG framework, we
identified that there are some games perfectly correspond to our
deceptive algorithm including zelda, whakmole, and
roguelike. There were overall 31 games that are relevant to our
deceptions and hence our algorithms give the best result on
that. All the rest of the games do not respond positively to
our deceptive algorithm. These games had problems such as
unplayability of levels, resource deficiency issues and lack
of requisite environment.</p>
      <sec id="sec-3-1">
        <title>Deceptive Generator</title>
        <p>The deceptive generator generates three different types of
traps including smoothness trap, generality trap, and greedy
trap. The overall generation work in four different steps
including initialization, greedy trap, smoothness trap and
generality trap. Before explaining the details of the algorithm,
we would explain the concepts that are necessary to
understand the working of each algorithm. These concepts are as
follows:</p>
        <p>Game Description: This file specifies how the game is
played and all the interactions.</p>
        <p>Sprites: Sprites are the main game elements. They are
defined in the SpriteSet section of the game description file
(VGDL). In the SpriteSet section, sprites have a name and
a type and some parameter values.</p>
        <p>HashMap: The HashMap function returns a hashmap that
helps decode the current generated level.</p>
        <p>Algorithm 1 extracts all the sprite data by the game object.
Further to this different ArrayLists have been filled by the
appropriate sprite type. In algorithm 1, (from line 1 to 3) are
responsible for extraction of sprite data, hash map and key
sets associated with each sprite type. The next phase of the
algorithm (from line 4 to 12) assigns each sprite with its type
and populates the ArrayList.</p>
        <p>The first trap implemented in our generator is the greedy
trap. Greedy trap aims to maximize some immediate reward
and rely on the assumption that a local optimum would guide
9
10
11
12 end</p>
        <p>end
end
Algorithm 1: Fill Up ArrayList
1 SpriteData = currentGame.getAllSpriteData();
2 HashMap = currentGame.getLevelMapping();
3 KeySet = HashMap.getKeySet();
4 foreach key in KeySet do
5 TempArrayList = HashMap.get(key);
6 SpriteName = TempArrayList.get(spriteIndex);
7 foreach sprite in SpriteData do
8 if sprite.name == SpriteName and
sprite.TypeMatch then</p>
        <p>ArrayList.Put(key);</p>
        <sec id="sec-3-1-1">
          <title>Algorithm 2: Generate Greedy Trap</title>
          <p>/* call Initialization Routine..</p>
          <p>This routine would be called in
other traps.
1 GRIDSIZE = 12 ;
2 gridChoice = generateRandom(1,2);
3 avatarPos = generateRandom(1,2);</p>
          <p>/* Initialization Routine ends..
4 if gridChoice == 1 then
5 stripRow = GRIDSIZE/4 ;
6 foreach rows &gt;= 1 and rows &lt;= GRIDSIZE do
7 foreach cols &gt;= 1 and cols &lt;= GRIDSIZE
do
*/
*/
8
9
them to the global optimum. We took this notion into
consideration and designed a greedy trap. Algorithm 2
incorporates the greedy trap. Initially, an initialization routine (from
line 1 to 3. Note that this routine would be called in other
algorithms as well) has been called to define the size of the
level. The algorithm then divides the level into two parts:
one slightly larger than the other. After dividing the level
into two parts, we place the items/sprites excluding harmful
sprites in the larger section of the level (from line 4 to 9). In
the narrow section of the grid, our algorithm places harmful
sprites along with collectible sprites to make the greedy trap
more effective.</p>
          <p>Algorithm 3: Generate Smoothness Trap
/* call Initialization Routine
1 if gridChoice == 1 then
2 medianRow = GRIDSIZE/2 ;
3 foreach rows &gt;= 1 and rows &lt;= GRIDSIZE do
4 foreach cols &gt;= 1 and cols &lt;= GRIDSIZE
do
*/
if rows = medianRow and avatarPos=1
then
while cols=keysLength and keyType
= avatar OR goal OR wall do</p>
          <p>grid + = keyType.get()
end
else if rows &lt; medianRow then
generateRandomStrips;
while keys.type=collectibles do</p>
          <p>grid+ =keyType.get();
end
end
else if rows &gt; medianRow then
end
generateRandomStrips;
while keys.type=collectibles AND
harmful do</p>
          <p>grid+ =keyType.get();
end</p>
          <p>Smoothness trap exploits the assumption that AI
techniques rely on that good solutions are close to other good
solutions. This assumption could be exploited by using a
mechanism that hides the optimal solution close to bad
solutions. In algorithm 3, we have implemented the idea of
smoothness trap. Contrary to the greedy trap, in smoothness
algorithm, we divided the level into two segments. One
segment of the level was implemented as a smooth path and
the other as a harsh path. The smooth path (line 6-9) has a
low level of risk and hence avatar is positioned close to
collectible and goal sprites. On the other hand, harsh or difficult
path (line 15 to 20) is implemented as a long path with both
collectibles and harmful sprites.
*/
Algorithm 4: Generate Generality Trap
/* call Initialization Routine
1 firstPart = GRIDSIZE/3;
2 secondPart = ((GRIDSIZE)-firstPart)/2;
3 thirdPart = (GRIDSIZE)(firstPart+secondPart);
4 gameLevel = getGameLevel();
5 foreach rows &gt;= 1 and rows &lt;= GRIDSIZE do
6 foreach cols &gt;= 1 and cols &lt;= GRIDSIZE do
7 if gameLevel=1 OR gameLevel=2 then
8 if rows=firstPart then
9 avatarKeys.get();
10 end
11 else if rows=secondPart then
12 collectibleKeys.get();
13 end
14 else if rows=thirdPart then
15 harmfulSprites.get();
16 end
17 end
18 else if gameLevel= 3 then
19 //Place harmful sprite with goal
20 end
21 end
22 end</p>
          <p>Generality trap exploits the concept of surprise by
providing a game environment, where a rule is sensible for a
limited amount of time. In algorithm 4, we have generated
the generality trap. It is worthwhile mentioning that in
order to execute a generality trap, the agent or controller has
to play at least three levels. The first two levels develop the
concept of the agent while the third showcases the surprise
element. The algorithm first calls the initialization function
and then divides the level into three parts (from line 1 to
3). After the initialization step, the algorithm works for each
level separately. If the level is 1 or 2, the algorithm would
keep harmful sprites away from goal sprites so that avatar
has no experience of combat and it should develop the
concept that fighting with harmful sprites is a useless activity.
However, when the 3rd or final level was being played, the
algorithm places the harmful objects in the vicinity of goal
object to surprisingly break the previously developed
concept.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experimentation</title>
      <p>In order to showcase our results, we have generated levels
for multiple games. The description of these games are as
follows:</p>
      <p>Zelda: The avatar has to find a key in a maze to open a
door and exit. The player is also equipped with a sword
to kill enemies existing in the maze. The player wins if it
exits the maze, and loses if it is hit by an enemy. Refer to
figure 1 for generated levels of zelda.</p>
      <p>CatPult: The main theme of this game is to reach the exit
door to win. The avatar cannot step on ponds of water,</p>
      <p>however can jump over them using catapults. Each
catapult can be used only once. Refer to figure 2 for generated
levels of CatPult.</p>
      <p>Cakybaky: In cakybaky, you have to bake a cake. To do
this task, there are several ingredients that must be
collected in order and to follow the recipe. There are angry
chefs around the level that chase the player, although they
only care about their favorite ingredient, so only the ones
that prefer the next ingredient to be picked up are active at
each time. Refer to figure 3 for generated levels of
Caky</p>
      <sec id="sec-4-1">
        <title>Baky.</title>
        <p>DigDug: The objective of this game is to collect all gems
and gold coins in the cave, digging its way through it.
There are also enemies in the level that kill the player on
collision. Refer to figure 4 for generated levels of DigDug.
SolarFox: The main theme of this game is to collect all
the diamonds on the screen and avoid the attacks of
enemies. The brake of the spaceship controlled by the player
is broken, so the avatar is in constant movement. Refer to
figure 5 for generated levels of SolarFox.
The generated levels were tested on a wide variety of agents
including OLETS, sampleMCTS, sampleRHEA, sampleRS,
NovTea, NovelTS, Number27, sampleOneStep, CatLinux
and thorbjrn. Most of the agents were collected from the
GVG-AI competitions and some are advanced sample
controllers. The agent selection was based on the unique
features of their algorithms. Each agent was run multiple times
on each level generated by our deceptive generator. The
results of the experimentation are shown in table 1. Note that
the agents are ranked according to their win rate and mean
score. In total, 250 levels were played by 10 different
controllers. No single algorithm was able to solve all the
deceptions. The Number27 agent was the most successful in
accordance with win percentage and the onesteplookahead
agent was the least successful of all. It is important to note
here that the majority of the agents performed well on zelda.
However, no agent was able to successfully play levels of
SolarFox. In addition, we can see from table 1 that all the
game playing controllers had a different weakness
(generality, smoothness or greedy trap).</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>Deceptive games are designed to move agents away from
a global optimum policy. In this paper, we have created a
deceptive generator that generates different types of traps
including generality, smoothness and greedy trap. The
generator was successful in generating a large variety of levels
for a set of games. In order to test our generator, we
generated example levels for five different games including zelda,
catapults, cakybaky, solarfox, and digdug. In addition, ten
different controllers were tested. The results indicated that
each type of deception had a different effect on the
performance of agents. No single agent was able to solve all type
of traps. The best among all was Number27 and least of all
was onesteplookahead.</p>
      <p>In the future, we plan to create more traps within our
deceptive generator. Preferable, for games where the included
three traps are not suited. Another important future step is
the creation of agents or controllers which can solve
maximum traps posted by our deceptive generator.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgment</title>
      <p>We acknowledge Riphah International University for
support of this research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Anderson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stephenson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salge</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levine</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Renz</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2018</year>
          , April).
          <article-title>Deceptive games</article-title>
          .
          <source>In International Conference on the Applications of Evolutionary Computation</source>
          (pp.
          <fpage>376</fpage>
          -
          <lpage>391</lpage>
          ). Springer, Cham.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          (
          <year>2016</year>
          , July).
          <article-title>General video game level generation</article-title>
          .
          <source>In Proceedings of the Genetic and Evolutionary Computation Conference</source>
          <year>2016</year>
          (pp.
          <fpage>253</fpage>
          -
          <lpage>259</lpage>
          ). ACM.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Perez-Liebana</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Samothrakis</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucas</surname>
            ,
            <given-names>S. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schaul</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2016</year>
          , February).
          <article-title>General video game ai: Competition, challenges and opportunities</article-title>
          .
          <source>In Thirtieth AAAI Conference on Artificial Intelligence</source>
          (pp.
          <fpage>4335</fpage>
          -
          <lpage>4337</lpage>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Shaker</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>M. J.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <article-title>Procedural content generation in games</article-title>
          . Switzerland: Springer International Publishing.
        </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>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2014</year>
          ,
          <article-title>August). A multi-level level generator</article-title>
          .
          <source>In Computational Intelligence and Games (CIG)</source>
          ,
          <year>2014</year>
          IEEE Conference on (pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <surname>Adrian</surname>
            ,
            <given-names>D. F. H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Luisa</surname>
            ,
            <given-names>S. G. C. A.</given-names>
          </string-name>
          (
          <year>2013</year>
          ,
          <article-title>August)</article-title>
          .
          <article-title>An approach to level design using procedural content generation and difficulty curves</article-title>
          .
          <source>In Computational intelligence in games (cig)</source>
          ,
          <year>2013</year>
          ieee conference on (pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Schaul</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2013</year>
          ,
          <article-title>August). A video game description language for model-based or interactive learning</article-title>
          .
          <source>In Computational Intelligence in Games (CIG)</source>
          ,
          <year>2013</year>
          IEEE Conference on (pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          ). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Frade</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Vega</surname>
            ,
            <given-names>F. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cotta</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Automatic evolution of programs for procedural generation of terrains for video games</article-title>
          .
          <source>Soft Computing</source>
          ,
          <volume>16</volume>
          (
          <issue>11</issue>
          ),
          <fpage>1893</fpage>
          -
          <lpage>1914</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Jordan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scheftelowitsch</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lahni</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hartwecker</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuchem</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walter-Huber</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , ...
          <string-name>
            <surname>Preuss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2012</year>
          ,
          <article-title>September)</article-title>
          .
          <article-title>Beatthebeat music-based procedural content generation in a mobile game</article-title>
          .
          <source>In Computational Intelligence and Games (CIG)</source>
          ,
          <year>2012</year>
          IEEE Conference on (pp.
          <fpage>320</fpage>
          -
          <lpage>327</lpage>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Kemmerling</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Preuss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2010</year>
          ,
          <article-title>August)</article-title>
          .
          <article-title>Automatic adaptation to generated content via car setup optimization in torcs</article-title>
          .
          <source>In Computational Intelligence and Games (CIG)</source>
          ,
          <source>2010 IEEE Symposium on</source>
          (pp.
          <fpage>131</fpage>
          -
          <lpage>138</lpage>
          ). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Preuss</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Beume</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wessing</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hagelbck</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yannakakis</surname>
            ,
            <given-names>G. N.</given-names>
          </string-name>
          (
          <year>2010</year>
          ,
          <article-title>August)</article-title>
          .
          <article-title>Multiobjective exploration of the starcraft map space</article-title>
          .
          <source>In Computational Intelligence and Games (CIG)</source>
          ,
          <source>2010 IEEE Symposium on</source>
          (pp.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          265-
          <fpage>272</fpage>
          ). IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <string-name>
            <surname>Togelius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yannakakis</surname>
            ,
            <given-names>G. N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stanley</surname>
            ,
            <given-names>K. O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Browne</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          (
          <year>2010</year>
          , April).
          <article-title>Search-based procedural content generation</article-title>
          .
          <source>In European Conference on the Applications of Evolutionary Computation</source>
          (pp.
          <fpage>141</fpage>
          -
          <lpage>150</lpage>
          ). Springer, Berlin, Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          <string-name>
            <surname>Hastings</surname>
            ,
            <given-names>E. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guha</surname>
            ,
            <given-names>R. K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stanley</surname>
            ,
            <given-names>K. O.</given-names>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>Automatic content generation in the galactic arms race video game</article-title>
          .
          <source>IEEE Transactions on Computational Intelligence and AI</source>
          in Games,
          <volume>1</volume>
          (
          <issue>4</issue>
          ),
          <fpage>245</fpage>
          -
          <lpage>263</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>