<!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>
      <journal-title-group>
        <journal-title>Running these</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>MiniStS: A Testbed for Dynamic Rule Exploration</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Bahar Bateni</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jim Whitehead</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of California</institution>
          ,
          <addr-line>Santa Cruz (UCSC), Santa Cruz, CA 95064</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <volume>1</volume>
      <issue>000</issue>
      <abstract>
        <p>Specialized testbeds are valuable tools in game AI and procedural content generation (PCG) research, providing controlled environments to test and evaluate new algorithms and explore game mechanics. This paper introduces MiniStS, a research testbed modeled after the rogue-like card game Slay the Spire (StS), tailored for studying game-playing AI and procedural generation. MiniStS features a dynamic rule system where in-game cards can modify game rules, providing a rich context for research. We argue that such an environment ofers distinct research opportunities by revealing insights into game design, enabling the exploration of rule combinations and synergies, and advancing AI capabilities. We define possible applications for MiniStS in terms of generalized game-playing that requires understanding and adaptability to the dynamic changes to the rules, and card generation with a focus on a deepened exploration of rule synergies.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Collectible Card Games</kwd>
        <kwd>General Game-playing</kwd>
        <kwd>Automated Game Design</kwd>
        <kwd>Procedural Content Generation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Game AI and procedural content generation (PCG) research
frequently benefits from specialized testbed environments
that are tailored to specific research needs. These
environments provide controlled settings where new algorithms can
be developed and evaluated. Furthermore, they can enable
an examination of game mechanics and design principles.</p>
      <p>
        One prominent example of this is Infinite Mario Bros
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], a research testbed designed to emulate the classic
platformer Super Mario Bros. Infinite Mario Bros has enabled
researchers to explore areas such as level generation [
        <xref ref-type="bibr" rid="ref2 ref3 ref4 ref5">2, 3, 4, 5</xref>
        ],
game-playing AI [
        <xref ref-type="bibr" rid="ref6 ref7">6, 7</xref>
        ], accessibility [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], visualization of
playtesting data [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and, venturing outside of games,
software repair [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. GVGAI [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is another testbed
environment which implements a variety of 2D arcade games, such
as Space Invaders, Pong, Solarfox, and more. Other research
environments include implementations of Angry Birds [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
Overcooked [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], and Baba is You [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        In this paper, we introduce MiniStS,1 a simplified Python
implementation of the rogue-like card game Slay the Spire
(StS) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. MiniStS serves as a dedicated research
environment for investigating various aspects of game AI and
procedural generation of cards. Similar to other collectible card
games, Slay the Spire includes cards that can afect the
design of the game by enabling or modifying certain rules of
the game. Because of this, it demonstrates characteristics
that allow interesting research avenues.
      </p>
      <p>One of these characteristics is that a game-playing agent
in this game is required to have reasoning capabilities
related to game design, since it needs to manipulate these
playable rules to its own advantage. Further, agents should
be generalized enough to play the game while rules are
dynamically changing and adapt its strategies accordingly. As
for a PCG agent, it is necessary to not fixate on the context
of a single ruleset, but to consider all the possibilities arising
from combining diferent rules in diferent ways. We discuss
these properties and more in Section 1.2.
11th Experimental Artificial Intelligence in Games Workshop, November
19, 2024, Lexington, Kentucky, USA.
$ bbateni@ucsc.edu (B. Bateni); ejw@ucsc.edu (J. Whitehead)
 https://bahar.bateni.org (B. Bateni); https://users.soe.ucsc.edu/~ejw/
(J. Whitehead)</p>
      <p>0000-0002-0701-0311 (B. Bateni); 0000-0002-6887-7330
(J. Whitehead)
© 2024 Copyright for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC BY 4.0).
1The code is available at https://github.com/iambb5445/MiniSTS
Designer</p>
      <sec id="sec-1-1">
        <title>Player</title>
      </sec>
      <sec id="sec-1-2">
        <title>Dynamic Ruleset</title>
      </sec>
      <sec id="sec-1-3">
        <title>Rule</title>
      </sec>
      <sec id="sec-1-4">
        <title>Rule</title>
      </sec>
      <sec id="sec-1-5">
        <title>Rule</title>
      </sec>
      <sec id="sec-1-6">
        <title>Rule</title>
      </sec>
      <sec id="sec-1-7">
        <title>Rule</title>
      </sec>
      <sec id="sec-1-8">
        <title>Playthrough</title>
      </sec>
      <sec id="sec-1-9">
        <title>Game State</title>
        <sec id="sec-1-9-1">
          <title>1.1. Dynamic Rule System Definition</title>
          <p>
            We define games with dynamic rule systems as games in
which the rules can be changed by playing the game. One
of the most interesting examples of this is the game Baba is
you [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ]. In this game, the player can move blocks around a
grid-based level in a Sokoban style game. In contrast with
Sokoban, here the blocks can also represents game design
concepts and elements in the level. For example, if the player
moves the three blocks representing "Flag", "Is" and "Win"
together, it results in activating a rule in the game were the
player touching the flag will result in winning the level.
          </p>
          <p>Baba is You is not the only game that utilizes a dynamic
rule system. Collectible card games often include cards
which have game design implications. These cards can
enable or modify the rules of the game to some extent either
temporarily or for the duration of the battle.2,3 In these
games, the players are invited to think about the
consequences of activating or modifying diferent rules in the
game and use these changes strategically to their
advantage.</p>
          <p>
            Another genre of games that have many examples of
using a dynamic rule system are roguelikes. The definition
2An example of such a card in Hearthstone is Cold Feet which causes
enemy minions to cost 5 more next turn. This card modifies the initial
rule of "Card A costs X" for one turn.
3An example of such a card in Magic: the Gathering is Elder Mastery
which enchants a creature so that whenever it deals damage to a player,
that player is forced to discard two cards. This cards adds a new rule
to the game for a certain creature.
of a roguelike game has been a point of debate in the
community.4 However, one of the main goals of this genre is a
sense of exploration and a gameplay that varies every run.
Toward this goal, there are numerous examples of
roguelikes that include rule-altering items in the game. The game
uses these alterations to not only provide a strategic aspect
to the game, but also enable various possibilities in the way
the game is played. Examples of this type of gameplay can
be seen in roguelikes such as the Binding of Isaac [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ], Hades
[
            <xref ref-type="bibr" rid="ref19">19</xref>
            ], Noita [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ], Risk of Rain 2 [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ] and more.
          </p>
          <p>One important note is that the distinction between games
with static rule systems and dynamic rule systems is not
always pronounced. For example, a first person shooter
(FPS) can allow the player to choose between weapons such
as an sniper or an assault rifle, which afects the design
of the game and subsequently the way the game is played.
However, the extent of these changes and the variety of the
possible designs that can be created by these choices are
more limited. Dynamic rule systems specially involve rules
that can be combined together and create a wide variety of
unique selections. Additionally, games with dynamic rule
systems rely on the changes to the rules as one of the main
components of the game.</p>
        </sec>
        <sec id="sec-1-9-2">
          <title>1.2. Dynamic Rule System Research</title>
          <p>In the previous section, we describe a dynamic rule
system and the genres that frequently use such systems. In
this section, we argue that these games can provide unique
opportunities for research on games.</p>
          <p>
            First, games with dynamic rule systems can help us to
discover novel viewpoints in understanding game design. For
example, in Baba is Y’all [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ], the authors describe how “the
game provides an interesting study for procedural level
generation where game levels and game rules are intertwined.”
Not only does this introduce a new challenge to level design,
where the game design and its possible outcomes should
be considered when designing the levels, but it also
suggests the possibility that this connection could have been
explored deeper in other games, even ones with static rule
systems.
          </p>
          <p>Second, dynamic rule systems can enable the study of rule
combinations in a way that cannot be explored in a static
rule system. As shown in Figure 2, in a dynamic rule system
the set of available rules creates a space of possible designs
in which every valid point is the result of combining rules by
activating them in some order (in a card game, via playing
cards). The player choices can then result in moving in this
space from one point to the other, resulting in a diferent
experience every time.</p>
          <p>When taking the role of the designer and adding a new
rule to the set of available rules, the efect of this new rule
should be examined on all the possible designs from every
possible combination. This efect can move the design points
in the space and result in a distribution of design points with
a lower or higher design quality according to the relevant
research metrics. Figure 3 visualizes this characteristic.</p>
          <p>
            This study of rule combinations and synergies is not
limited to when an AI assumes the role of the designer.
Similarly, when developing a game-playing AI, it is necessary
4One popular interpretation of roguelike is the Berlin Interpretation,
[
            <xref ref-type="bibr" rid="ref17">17</xref>
            ] which defines a set of characteristics expected from roguelikes.
However, many of these characteristics, such as turn-based, grid-based,
and ASCII art style, do not apply to a significant number of modern
roguelikes.
          </p>
          <p>A</p>
          <p>B
Rules
Bad Design*</p>
          <p>Good Design*
Design</p>
          <p>Gameplay
Rules
Rules
for the agent to be able to understand this space to some
extent in order to steer toward designs that are better suited
for the agent’s goals. The challenge for game-playing AI is
to reason about what efects its decisions have on the game
since these decisions relate to game design.</p>
          <p>Finally, it’s important to note that research on dynamic
rule systems can be beneficial for improving the
development of such games. In other words, such research has
beneficial impacts not only on game design and game-playing
AI, but also on the development of new games with dynamic
design systems. In roguelikes, random generation and PCG
systems are often used to create a diferent experience every
playthrough and foster a sense of exploration in the player.
A PCG system designed specifically for dynamic rule
system can enhance this design concept by ensuring that the
procedural content aligns more closely with the evolving
gameplay, or expand the set of available rules by finding
rules that fit its malleable rule system.</p>
          <p>
            In a similar fashion, the interactions between dynamically
added rules is important in many games, especially card
games like MiniStS. When the cards are designed in a way to
enable various synergies and interactions between the cards,
they enable lenticular design [
            <xref ref-type="bibr" rid="ref22">22</xref>
            ], a term introduced by
Mark Rosewater, the head designer of Magic the Gathering.
Lenticular design is when understanding a card is more
dificult for an experienced player compared to a beginner.
If the cards include many synergy efects when combined
in certain ways, an experienced player would likely have
to consider all of these efects when playing. On the other
hand, a novice player would not understand these efects
and hence would not get lost in the complexity of the game.
This is a desirable efect for game designers, since it means
that the barrier to entry is low allowing novice players to feel
comfortable playing the game with minimal instructions,
while experienced players continue to find new layers of
complexity to the game.
1.3. Slay the Spire
Slay the Spire is a single-player roguelike card game that has
a strong emphasis on strategic play and card synergies. We
chose this game to implement as the testbed environment
since it has desirable characteristics from both roguelikes
and collectible card games.
          </p>
          <p>First, as with many roguelike games, StS is a single-player
game. The game is played against a set of pre-defined
enemies that perform diferent moves with diferent
probabilities independent of the player actions. Therefore, the
challenges of understanding the opponent skill level in
evaluating game-playing capabilities of an agent can be
eliminated in favor of focusing on an understanding of rules
and their combinations, both during game-play and during
design of these rules. Similarly, the strength of diferent
cards or decks can be evaluated without considering how
well they perform against diferent opposing decks.</p>
          <p>Furthermore, the core loop of the game allows for an
incremental approach to deck-building. At the end of every
battle in StS, the player is asked to choose at most one of
three possible cards to add to their deck. The increasing
level of dificulty for each battle and the enemies are
carefully designed in a way that appropriately matches bigger
and more powerful decks as the game progresses. Because
of this, a game-playing agent defined in this environment
doesn’t need to necessarily be exposed to the challenges that
arise from the vast space of possibilities for possible decks.
Instead, the agent can be tested in terms of combining rules
from a single set of cards in a pre-defined deck, and the
game ofers various examples of well-designed levels with
diferent degrees of dificulty suited for this evaluation.</p>
          <p>Additionally, similar to most collectible card games, Slay
the Spire is turn-based. As a result, game-playing in this
environment can be done without any considerations of
realtime play and mimicking human players in terms of reaction
time. The possibility of eliminating these challenges in StS
is desirable since it makes the MiniStS environment better
suited for our goals.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        Research in games often utilize game environments that
implement existing games to explore various aspects of game
design, level generation, and artificial intelligence. As
mentioned earlier, one notable example is Infinite Mario Bros
(IMB), a public domain clone of the classic Super Mario Bros.
IMB incorporates a simple procedural level generation
process that combines pre-defined segments to create a level.
One of the ways that researchers have used IMB is by
experimenting with diferent level generation methods such
as applying rhythm-based approaches [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], creating level
sections focused on certain mechanics [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], or composing
predefined level sections [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ].
      </p>
      <p>
        In addition to its applications in level generation, IMB
has also served as a gameplaying environment acting as
a benchmark for artificial intelligence research [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. This
resulted in the introduction of the Mario AI Framework
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], which has been utilized in AI competitions to evaluate
and compare various AI strategies. Beyond these
applications, IMB has also been used in visualizing and analyzing
play-testing data [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], exploring accessibility methods [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
and contributing to fields outside of game studies, such as
runtime software repair [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        Another research game environment is the physics-based
game Angry Birds. Since the game Angry Birds does not
have an open source implementation, Ferreira and Toledo
implemented a clone of the game for the purpose of
exploring level generation in this game [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. This environment,
named Science Birds, has been used to explore a variety of
level generation approaches such as procedurally
constructing and combining structures [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ], utilizing Generative
Adversarial Networks (GANs) for level generation [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], and
using genetic algorithms [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Furthermore, Science Birds
has been selected as the platform for the GPT4PCG [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]
competition in which the use of Large Language Models
in generating levels via efective prompt-engineering is
explored. The AIBirds [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ] competition also uses Angry Birds
as a testbed for both level generation and game-playing, and
uses Science Birds for its level generation track.
      </p>
      <p>
        The IMB and Science Birds testbeds are not the only
examples of re-implementing games for research. Hu et al. list
other examples of environments developed for research
purposes based on video games [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], some of which have been
significantly simplified to better fit the intended purpose.
These examples include a simplified version of Overcooked
developed to experiment with cooperative abilities of AI
agents [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], a minimal implementation of Real-Time
Strategy (RTS) game mechanics used for microRTS game AI
competition [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ], and an implementation of the Legend of
Zelda: a Link to the Past developed specifically as a PCG
research environment [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. It’s also worth noting that some
games such as Starcraft II provide an API for interacting
with the game which can be used to develop game-playing
agents that can directly interact with the game via these
APIs [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ].
      </p>
      <p>
        General Video Game AI (GVGAI) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is an example of a
general purpose environment that provides a wide variety
of 2D arcade games as a testbed for evaluating AI agents
in terms of general video game playing capabilities. The
agents in this environment are expected to not be
gamespecific, which requires them to be able to play games that
they have not been trained on. Similar to this goal, MiniStS
also expects the agents to be able to adapt to changes in the
rules of the game. However the StS environment requires
the game-playing AI agent itself to actively make changes
to the rules through playing the game. This is an important
diference that requires the agent to reason about how a
specific rule would benefit or harm its chance of winning,
and how best the rules can be composed to fit the agent’s
goals. Furthermore, the card game nature of StS allows
for the possibility of an agent understanding these rules
via language-based reasoning. Our previous work [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] has
shown that such an agent in this environment can show
long-term reasoning capabilities required in some scenarios.
      </p>
      <p>
        MiniStS is not the only card game environment
available for research purposes. XMage5 and Hearthbreaker6
are community-made clones of Magic: the Gathering and
Hearthstone respectively. Ling et al. use the dataset of cards
from both of these environments to perform research on
code generation [
        <xref ref-type="bibr" rid="ref32">32</xref>
        ]. Metastone7 is a community-made
implementation of Hearthstone which Santos et al. use to
explore use of the MCTS algorithm in playing Hearthstone
[
        <xref ref-type="bibr" rid="ref33">33</xref>
        ]. One important diference between MiniStS and the
community-made environments is our focus on not limiting
MiniStS to the set of existing cards. Since our goal is
enabling research that explores dynamic rule systems and an
understanding and adaption to the rules during gameplay,
we specifically design MiniStS to facilitate these goals.
      </p>
      <p>
        Chen and Guy introduce Chaos Cards [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ] as a card
generation system. They use the Chaos Card environment,
which has similar rules to Hearthstone, to both generate
playable cards and playtest them by using a 1-step
lookahead agent. The cards are designed via a specific grammar
that runs through GIGL [35], which was previously made
by the same authors to enable creating executable artifacts
from grammatical descriptions. While this environment is
well-suited for the purposes of the authors, our focus lies
on cards that allow changes to the rules and can possibly
have efects beyond the Hearthstone-specific grammar.
Additionally, MiniStS also removes some of the challenges of
playing against an opponent and deck-building to enable a
more direct focus on studying the underlying dynamic rule
system, which we discussed in Section 1.3.
      </p>
      <p>
        Finally, while not a card game, Baba is You has similarities
with MiniStS in terms of qualities of the environment. As
discussed in Section 1, Baba is You is an interesting research
subject since, similar to games with as dynamic rule systems
such as StS, it provides an environment that the player
interacts with the rules and changes them during gameplay.
Not only does this create interesting challenges in level
design and intertwines level design and game rules, it also
raises interesting questions in terms of game-playing that
relates to the AI agent’s understanding of how to best play
with the rules. Charity et al. use an implementation of the
game based on the available code for the initial game jam
version of the game to research their proposed collaborative
mixed-initiative design system [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Applications</title>
      <p>In this section, we highlight two types of application for
which MiniStS can be used. First, we can use MiniStS to
explore dynamic rule-playing agents, i.e. game-playing agents
that can act in a dynamic rule system, deciding how to play
the game in ways that possibly result in a change of rules.
The agents should be able to continuously adapt to these
changes. Furthermore, the agents should have an
understanding of game design and the efect of rules on the game
to be able to choose how to manipulate the active rules
toward their goal.</p>
      <p>Second, we discuss the use of MiniStS as a card generation
environment. Since MiniStS is designed in a way to allow
the definition of new cards by combining existing actions
and efects or defining new ones, this environment can be
used for designing and playtesting new cards.
5https://github.com/magefree/mage/
6https://github.com/danielyule/hearthbreaker/
7https://github.com/demilich1/metastone</p>
      <p>To which
agent?</p>
      <p>Agent
Which
card?</p>
      <p>To which
card?</p>
      <p>Though these two applications can be explored
independently, they relate to each other in an interesting way. The
dynamic rule-playing agent can be used as a means of
evaluation to playtest the game when new cards are introduced
to the game. On the other hand, defining new cards can test
the agents in terms of generalization since the agent can be
provided with new rules to play with without being trained
on those specific set of rules. A virtuous cycle.</p>
      <p>Below we describe the required API to tackle each of
these challenges, as well as our existing examples of agents
that respond to each target application.</p>
      <sec id="sec-3-1">
        <title>3.1. Dynamic Rule-Playing AI</title>
        <p>In MiniStS, we define the term game-playing agent (GPA) as
an agent that take the role of the player in the game by
making any decision that is expected from the player. Any GPA
in MiniStS is required to implement three functionalities:
1. Choose a card to play: Given the current state, the
agent should be able to decide which one of the
available cards to play, or decide to end its turn.
2. Choose the target (agent): Some of the cards can
target one or more agents in the game, for example
the player should choose the target for “Strike: Deal
6 damage.” Given the state of the game and a list of
possible options, the GPA should be able to decide
which option(s) are the target of the card.
3. Choose the target (card): Similarly, some cards can
target other cards, such as “Concentrate: Discard 3
cards. Gain 2 energy.” Given the state of the game
and a list of possible options, the GPA should be able
to decide which option(s) are the target of the card.</p>
        <p>The only requirement for playing the game is for a GPA
to be able to respond to these three questions. MiniStS also
allows the agents to simulate the future steps of the game,
making it possible to define agents that use this prediction
in their decision making, such as an MCTS agent. Note that
this simulation is not completely accurate, since any
nondeterministic actions (e.g. shufling the deck, random choice,
etc.) are intentionally forced to use a diferent seed. This is
because none of the agents should have perfect knowledge
about the non-deterministic events of the game.</p>
        <p>
          In our previous research [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ], we developed three
diferent agents within MiniStS and compared them in diferent
scenarios. First, we showed that a random agent can be
defined by simply choosing one of the options randomly
for each of these questions, as shown in Figure 5. Second,
we utilized the simulation abilities of MiniStS to showcase
a look-ahead agent. The look-ahead agent simulates the
game up to a pre-defined depth and chooses an action for
the current move that would maximize the estimated score
in the future. Finally, we demonstrated how MiniStS can be
used with a language-based agent by converting the game
state into a purely text-based format and sending it to a
large language model (LLM) along with the basic rules of
the game. The text-based description for each card is
automatically generated based on its efects but can also be
customized to show a predefined text. All three agents are
generalized, meaning that they are not limited to playing
only a specific set of cards. These three agents are included
in MiniStS’s source code and can be used to run simulations
in diferent settings. Our primary focus in this paper is to
present MiniStS as a testbed, rather than the agents. Our
previous work [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] provides an example of how MiniStS
can be used to simulate and compare diferent agents in
a dynamic rule system, and includes more information on
each of these agents.
        </p>
        <p>The testbed that MiniStS provides is uniquely useful in
testing rule-playing agents. As discussed in Section 1, one
of our main goals with MiniStS is to define an environment
in which playing the game can change the way the game
is played. As such, we call the game-playing agents in this
environment rule-playing agents, since the agent is playing
with the rules. In other words, the performance of such an
agent is tied to its understanding of how these rules change
the game, and whether or not it would benefit from these
changes.</p>
        <p>MiniStS also includes an agent evaluation module that
allows comparing diferent agents given a scenario. The
scenario defines which cards the agents have in their deck,
and what enemies are they encountering. The evaluation
component then simulates multiple instances of the game
in parallel and logs the game events and the response of
agents to these events. Finally, these logs are imported by
another module to calculate a set of metrics such as win-rate,
the distribution of player’s health at the end of the game,
whether a certain card or combinations of cards were used
by the agent, how many turns the agent took to win/lose
the game, and so on.</p>
        <p>The execution time of the simulation is highly dependent
on the number of turns it takes for the agent to end the
game and the agent’s performance. To provide an estimate
of MiniStS’s performance and factor out the time it takes
for the agent to make decisions, we can consider an agent
that always chooses the first available action. In this case,
the first battle of the game, using the starting set of cards,
averages around 5 turns and 23 agent actions (calculated</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Card Generation</title>
        <p>The second goal of MiniStS is to enable researchers to define
card-generation systems. As we discussed previously, when
the cards can alter the rules of the game, card generation
requires a careful consideration of rule synergies and the
space of the game design. To achieve this goal, we design the
system in a way to allow versatile combination of diferent
actions and efects. These actions and efects can be from
the existing actions, but a major part of our focus is in not
limiting our system to a pre-defined set of actions. The
actions can also be combined with an AND module. If the
action requires a target, MiniStS forces the card definition
to include the TO module for defining how this target is
selected. We discuss these modules in more detail and with
examples in Section 4.</p>
        <p>Additionally, some cards can change the rules to have
specific efects when certain events occur. To make this
possible, we define status efects that visualize these changes in
the rules, similar to how the game visualizes these changes
for the player. We also use an open-ended event system
that allows for defining broadcast events and subscribing to
them to perform actions that result from the rule change. We
explain MiniStS components, such as actions, their targets,
status efects, and event system in more detail in Section 4.</p>
        <p>With this setup, creating a new card in the game can be
done by following these steps:
1. Use the set of existing actions and define any new
actions that are required. Each action can access
the state of the game and manipulate it. However,
the actions should be defined as atomic operations,
meaning that they are small enough that cannot be
broken down further into lower level actions.
2. If there are any new status efect, define these efects
and determine their properties, such as if multiple
instances of the same efect would stack, if the efect
is for a certain number of turns, and so on.
3. If the card requires any new events or callback on
the existing events, define the new modules.
4. Combine the actions, and determine any required
card parameters (such as cost of the card) or action
parameters (such as amount of damage for the action
“Deal x damage”).</p>
        <p>Example of card definitions and combining the actions is
available in Section 4.</p>
        <p>To show a simple example of card generation, we
implement a simple grammar-based card generation module.
The card generation module randomly chooses actions and
possibly combines them by using the AND module. The
parameters for each action are chosen from a set of reasonable
values that are determined based on examples of existing
cards. The card generation process lacks any evaluation of
the quality of cards and is also limited to the set of available
actions and their combinations, and does not introduce new
rules into the game. We use the available card generation
process not as a strong method for generating cards, but as
both an example of how cards can be generated from these
actions and to enable a simple way of providing new cards
for the purpose of testing rule-playing agents when playing
with never-seen-before cards.</p>
        <p>Atomic AActtioomnisc Actions
Decorate DecorDateeal aT DealGarageTin aT Gain ragT
Damage trgeDamage t</p>
        <p>Block trge Block te</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. System Structure</title>
      <p>In this section, we describe diferent components of the
MiniStS design with the goal of creating a research environment
with a dynamic rule system.</p>
      <p>One of our main goals with MiniStS is to enable and
streamline the process of defining a new card. To achieve
this, we analyze a set of existing cards, both from Slay the
Spire and from a set of third party cards designed as mods
by the StS community.</p>
      <sec id="sec-4-1">
        <title>4.1. Actions</title>
        <p>The first component that we identify in the cards are
actions. Actions define what efect the card has on the state
of the game. For example, a “Gain Mana” action means that
when the card is played, it changes the amount of available
mana for the player. Some of these actions are visualized in
Figure 6.</p>
        <p>The actions are defined as atomic, meaning that when
we analyze a card, we break down its efect into indivisible
actions that cannot be further decomposed. We then allow
these atomic actions to be combined together in any order
by defining an AND decorator that creates an action from
the combination of any two actions.</p>
        <p>Finally, many actions in the game require one or more
targets. For example, the “Deal damage” action afects one
or more enemies which are selected in a specific way. We
make this possible by defining actions that need a target. For
each of these actions, the designer should specify how the
required targets are selected, whether based on player input,
random selection, or chosen as “all the possible targets.”
These actions are considered incomplete unless they are
decorated with TO and a target definition. We discuss the
target definitions in the next subsection.</p>
        <p>Note that the AND decorator can still be applied before or
after defining a target. Figure 9 shows pseudocode for two
example cards, and Figure 10 shows how the second card can
be redefine to apply its underlying actions to two, possibly
diferent, targets. Figure 8 visualizes the two example cards.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Targets</title>
        <p>As mentioned previously, the efect of a card can be
expressed by a set of atomic actions, some of which require
a target. By analyzing the existing cards, we see that StS
cards can target agents (i.e. the player or the enemies) or
cards. Each of these targets can be expressed as one of the
following types:</p>
        <p>Self
Choose</p>
        <p>Self DiscardDiscard</p>
        <p>Pile Pile
Choose Draw DPrialew</p>
        <p>Pile
All</p>
        <p>Hand</p>
        <p>Hand
All</p>
        <p>Exhaust</p>
        <p>RandomExhaust Pile
Random Pile
AgenAtgTeanrtgTeatrsgets
Self Self</p>
        <p>Choose
Choose</p>
        <p>All
All</p>
        <p>Random
Random</p>
        <p>Enemy
Enemy</p>
        <p>All</p>
        <p>All</p>
        <p>• Self: Either the player or the card that includes this
action, based on the type of target (agent or card).
• Choose [from a set of options]: The target is
identiifed based on player input.
• All [from a set of options]: The action with this
type of target is applied to all the the possible target
options.
• Random [from a set of options]: The target is chosen
as one or more options from the set of available
options.</p>
        <p>For each of these cases, the set of available options can be
defined in a few diferent ways. By examining the existing
cards, we identify the possible set of options for card targets
to be either from player’s hand, discard pile, draw pile or
exhaust pile. As for the agent, if the target is not the player
(self), it’s from the enemies. We also noticed in a set of third
party cards from community mod packs that the target can
also refer to all the agents (i.e. both the player and the
enemies).</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3. Status Efects and Events</title>
        <p>Slay the Spire defines a set of status efects, or bufs and
debufs, which can be used to indicate when an agent is
weak (deals less damage for a number of turns), vulnerable
(takes more damage for a number of turns), etc. While we
can implement only these efects by using specialized code
that only covers these cases, we want the definition of a
status efect to be more open-ended and include a flexible
infrastructure, since status efects are the foundation of
rulebased cards.</p>
        <p>So far, we have defined atomic actions and targets which
enable many of the available cards in the game to be
expressed in MiniStS. However, many of the most interesting
cards in the game, especially the cards that change the rules
of the game, cannot be defined with the actions alone. For
example, the card “After Image” is defined as “Whenever
you play a card, gain 1 block.” Instead of having an instant
efect on the state of the game, these cards can have a
lasting efect that can be triggered at certain points, such as
whenever a card is played, at the start of every turn, until
the end of this turn, etc.</p>
        <p>To understand how best we can cover these types of
effects in MiniStS, we first look at how StS communicates
these cards and their efects with the player. StS uses status
efects to visualize these changes to the rules of the game.
For example, the card “After Image”, which we discussed
above, applies a specialized status called “After Image” on
Gain a</p>
        <p>T
rg
Block te</p>
        <p>Choose
Discard raT</p>
        <p>g
Card t
e
Deal raT</p>
        <p>g
Damage te</p>
        <p>And</p>
        <p>Apply raT</p>
        <p>g
Status te</p>
        <p>To
the player. Each efect also has a set of properties. For
example, “After Image” status efect does not decrease during the
battle, and can stack (i.e. if “After Image” is played twice,
the value of status efect is increased to two).</p>
        <p>Finally, the status efect performs some behavior when
the appropriate event triggers. To implement this, we use an
event system. The event system provides a formal definition
of how the events and callbacks related to status efects
should be added to the game. Each event has broadcast and
subscribe functions. Broadcast is used by the entity that
relates to the condition of the event, while subscribe is used
End Turn
Event</p>
        <p>Battle
Play Card</p>
        <p>Event
Before</p>
        <p>After
…
Status
Effect</p>
        <p>Callback
Gain x Block</p>
        <p>Subscribe
Game State
to register the callback to that event. The callbacks can be
subscribed to trigger before or after an event. Figure 11
demonstrates how status efects and the event system can
be used to create “After Image.”</p>
        <p>The events can also be defined in a way to manipulate
a value. For example, the status efect “vulnerable” makes
it so that the afected creature takes 50% more attack
damage for some number of turns. The vulnerable status
effect is implemented by subscribing to the “attack damage”
event. Basically, whenever the “deal attack damage” action
is performed in the game, the event triggers and expects
the callbacks subscribed to it to manipulate the amount of
damage. Each event system can have any type of input that
it desired, or not have an input at all. Each callback is then
required to specifically get that type of input and returns
the manipulated value.</p>
        <p>Finally, multiple callbacks can be defined on each event.
For example, “weak” and “vulnerable” efects are both
deifned to trigger when attack damage is happening in the
game and manipulate its value. However, the order in which
these efects apply completely depend on how the card
designer have envisioned the efects. Because of this, it’s
important for any new callback to be subscribed at the correct
order compared to other callbacks.</p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4. Gameplay Loop</title>
        <p>The gameplay loop simulates the events of a battle. The
event and values of this component are a simulation of the
events in Slay the Spire. Each turn consists of the following
events:
1. Gain Mana: The player gains full mana at the start
of the turn.
2. Draw a Hand: The player draws cards equal to the
number of pre-defined draw count. If at any times
the draw pile is empty, the discard pile is shufled
back into the draw pile.
3. Play (Player Side): The player side is played,
meaning that the player agent would take its turn, and
then the enemy side would lose any remaining block.
Note that some damage types would apply after this
event, bypassing enemies’ blocks.
4. Play (Enemy Side): The enemy side is played,
meaning that the enemies would take their turn one by
one, and then the player side would lose any
remaining block.
5. Discard Hand: The cards in player’s hand are then
discarded and moved to the discard pile.</p>
        <p>The game will continue repeating the events described
above every turn until the battle has ended, i.e. the player
or all the enemies are dead. Note that these events can be
afected by the cards, e.g. a card can change the number of
draw count, make the cards not get discarded at the end of
the turn, etc.</p>
        <p>The gameplay loop is also connected to the game state
such as the available deck of cards, properties such as draw
count or maximum mana, and state of the battle including a
the list of cards in player’s hand, discard pile, draw pile and
exhaust pile, and the player and enemies and their respective
states such as HP, mana, block, and so on.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Limitations</title>
      <p>One limitation of the system is that it respects the basic
rules of the game Slay the Spire, so any changes that are
related to the foundation of the game would require
changing the system. For example, the order of events (e.g. the
player plays first, then the enemies take their actions), the
existence of only a single type of mana, or the fact that this
is a single player card game cannot be modified without
applying significant changes to the code.</p>
      <p>Another limitation of the system is regarding the types
of input the system expects from the system. As discussed
in Section 4.2, the game expects each action to be applied
to at most one agent or card. Because of this, any action
that requires a new type of input does not exist in the game.
For example, one can imagine a card defined as “Remove
one of the status efects of your choosing” which would
require a new form of input from the player. Furthermore,
actions that are defined on multiple target types do not exist
in StS or MiniStS, such as “Discard a card and deal damage
equal to 5 times its cost.” It’s worth noting that this still can
be implemented as combination of two actions by keeping
track of the cost in the game state.</p>
      <p>StS includes multiple characters, some of which have
specific mechanics. The current implementation of the game,
which is a simplified version, does not implement these
mechanics. Furthermore, the current version of MiniStS
implements some but not all the existing actions, status efects,
and enemies in the game, and only simulates one battle to
compare agents instead of multiple battles. However, such
components can be added to MiniStS without any major
changes to the code.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>Games with dynamic rule systems are games in which a set
of composable rules exist which can be activated through
playing the game. While the designer is the one who
creates these rules, the player also participates in game design
decisions by playing the game. This unique property, a
key characteristic of collectible card game and roguelike
genres, ofers unique research opportunities. AI agents can
be cast into the role of the designer or the player in the
system. As a designer, these agents are required to reason
about the synergy efect of rules and the distribution of the
possible designs that arise from diferent rules activated in
each playthrough. As a player, these agents are required to
reason about game design in order to combine the rules in
a way that gets them closer to their goal.</p>
      <p>In this paper, we introduced MiniStS, a simplified
implementation of Slay the Spire. MiniStS enables researchers to
explore the StS environment and its dynamic rule system
in two ways. First, with the role of a player in the system
and as a rule-playing agent, and second, with the role of
a designer and as a card generation task. We describe the
steps with which both of these tasks can be approached in
MiniStS. Finally, we described diferent components of
MiniStS and discussed how each of these components facilitate
these two applications by making it possible to define new
cards and rule-playing agent without any major changes to
the code and by using a streamlined process.
eration and meta-based card evaluation,
Proceedings of the AAAI Conference on Artificial Intelligence
and Interactive Digital Entertainment 16 (2020) 196–
202. URL: https://ojs.aaai.org/index.php/AIIDE/article/
view/7430. doi:10.1609/aiide.v16i1.7430.
[35] T. Chen, S. Guy, Gigl: A domain specific language for
procedural content generation with grammatical
representations, Proceedings of the AAAI Conference on
Artificial Intelligence and Interactive Digital
Entertainment 14 (2018) 9–16. URL: https://ojs.aaai.org/index.
php/AIIDE/article/view/13025. doi:10.1609/aiide.
v14i1.13025.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Persson</surname>
          </string-name>
          , Infinite mario bros, Online
          <string-name>
            <surname>Game</surname>
          </string-name>
          (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Rhythm-based level generation for 2d platformers</article-title>
          ,
          <source>in: Proceedings of the 4th International Conference on Foundations of Digital Games</source>
          , FDG '09,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2009</year>
          , p.
          <fpage>175</fpage>
          -
          <lpage>182</lpage>
          . URL: https://doi.org/10.1145/1536513. 1536548. doi:
          <volume>10</volume>
          .1145/1536513.1536548.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Khalifa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. C.</given-names>
            <surname>Green</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Barros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <article-title>Intentional computational level design</article-title>
          ,
          <source>in: Proceedings of the Genetic and Evolutionary Computation Conference</source>
          , GECCO '19,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2019</year>
          , p.
          <fpage>796</fpage>
          -
          <lpage>803</lpage>
          . URL: https://doi.org/10.1145/3321707.3321849. doi:
          <volume>10</volume>
          . 1145/3321707.3321849.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Cerny Green</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mugrai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Khalifa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <article-title>Mario level generation from mechanics using scene stitching</article-title>
          ,
          <source>in: 2020 IEEE Conference on Games (CoG)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>49</fpage>
          -
          <lpage>56</lpage>
          . doi:
          <volume>10</volume>
          .1109/CoG47356.
          <year>2020</year>
          .
          <volume>9231692</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>P.</given-names>
            <surname>Mawhorter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <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>
          ,
          <year>2010</year>
          , pp.
          <fpage>351</fpage>
          -
          <lpage>358</lpage>
          . doi:
          <volume>10</volume>
          .1109/ITW.
          <year>2010</year>
          .
          <volume>5593333</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Karakovskiy</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Togelius,</surname>
          </string-name>
          <article-title>The mario ai benchmark and competitions</article-title>
          ,
          <source>IEEE Transactions on Computational Intelligence and AI in Games</source>
          <volume>4</volume>
          (
          <year>2012</year>
          )
          <fpage>55</fpage>
          -
          <lpage>67</lpage>
          . doi:
          <volume>10</volume>
          .1109/TCIAIG.
          <year>2012</year>
          .
          <volume>2188528</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Karakovskiy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Koutnik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schmidhuber</surname>
          </string-name>
          ,
          <article-title>Super mario evolution</article-title>
          ,
          <source>in: 2009 IEEE Symposium on Computational Intelligence and Games</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>161</lpage>
          . doi:
          <volume>10</volume>
          .1109/CIG.
          <year>2009</year>
          .
          <volume>5286481</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Muñoz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. N.</given-names>
            <surname>Yannakakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Mulvey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. W.</given-names>
            <surname>Hansen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Gutierrez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sanchis</surname>
          </string-name>
          ,
          <article-title>Towards gaze-controlled platform games</article-title>
          ,
          <source>in: 2011 IEEE Conference on Computational Intelligence and Games (CIG'11)</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>47</fpage>
          -
          <lpage>54</lpage>
          . doi:
          <volume>10</volume>
          .1109/CIG.
          <year>2011</year>
          .
          <volume>6031988</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Wallner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Halabi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mirza-Babaei</surname>
          </string-name>
          ,
          <article-title>Aggregated visualization of playtesting data</article-title>
          ,
          <source>in: Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems, CHI '19</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2019</year>
          , p.
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          . URL: https://doi.org/10.1145/3290605.3300593. doi:
          <volume>10</volume>
          . 1145/3290605.3300593.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Lewis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <article-title>Runtime repair of software faults using event-driven monitoring</article-title>
          ,
          <source>in: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume</source>
          <volume>2</volume>
          , ICSE '10,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2010</year>
          , p.
          <fpage>275</fpage>
          -
          <lpage>280</lpage>
          . URL: https://doi.org/10.1145/1810295. 1810352. doi:
          <volume>10</volume>
          .1145/1810295.1810352.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>D.</given-names>
            <surname>Perez-Liebana</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Samothrakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lucas</surname>
          </string-name>
          ,
          <article-title>General video game ai: Competition, challenges and opportunities</article-title>
          ,
          <source>Proceedings of the AAAI Conference on Artificial Intelligence</source>
          <volume>30</volume>
          (
          <year>2016</year>
          ). URL: https://ojs.aaai.org/index.php/AAAI/ article/view/9869. doi:
          <volume>10</volume>
          .1609/aaai.v30i1.
          <fpage>9869</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>L.</given-names>
            <surname>Ferreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Toledo</surname>
          </string-name>
          ,
          <article-title>A search-based approach for generating angry birds levels</article-title>
          ,
          <source>in: 2014 IEEE Conference on Computational Intelligence and Games</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . doi:
          <volume>10</volume>
          .1109/CIG.
          <year>2014</year>
          .
          <volume>6932912</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Carroll</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. K.</given-names>
            <surname>Ho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Grifiths</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Seshia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Abbeel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Dragan</surname>
          </string-name>
          ,
          <article-title>On the utility of learning about humans for human-ai coordination</article-title>
          , in: H.
          <string-name>
            <surname>Wallach</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Larochelle</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Beygelzimer</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <article-title>d'Alché-</article-title>
          <string-name>
            <surname>Buc</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          <string-name>
            <surname>Fox</surname>
          </string-name>
          , R. Garnett (Eds.),
          <source>Advances in Neural Information Processing Systems</source>
          , volume
          <volume>32</volume>
          ,
          <string-name>
            <surname>Curran</surname>
            <given-names>Associates</given-names>
          </string-name>
          , Inc.,
          <year>2019</year>
          . URL: https: //proceedings.neurips.cc/paper_files/paper/2019/file/ f5b1b89d98b7286673128a5fb112cb9a-Paper.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Charity</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Khalifa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <article-title>Baba is y'all: Collaborative mixed-initiative level design</article-title>
          ,
          <source>in: 2020 IEEE Conference on Games (CoG)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>542</fpage>
          -
          <lpage>549</lpage>
          . doi:
          <volume>10</volume>
          .1109/CoG47356.
          <year>2020</year>
          .
          <volume>9231807</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Mega</given-names>
            <surname>Crit</surname>
          </string-name>
          <string-name>
            <surname>Games</surname>
          </string-name>
          , Slay the spire,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Teikari</surname>
          </string-name>
          , Baba is you,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17] Berlin Interpretation - RogueBasin,
          <year>2013</year>
          . URL: https://www.roguebasin.com/index.php/Berlin_ Interpretation.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>E.</given-names>
            <surname>McMillen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Himsl</surname>
          </string-name>
          ,
          <source>The Binding of Isaac</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Supergiant</surname>
            <given-names>Games</given-names>
          </string-name>
          , Hades,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Nolla</surname>
            <given-names>Games</given-names>
          </string-name>
          , Noita,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>Hopoo</given-names>
            <surname>Games</surname>
          </string-name>
          ,
          <source>Risk of Rain 2</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Rosewater</surname>
          </string-name>
          , Lenticular design,
          <year>2014</year>
          . URL: https://magic.wizards.com/en/news/making-magic/ lenticular-design
          <string-name>
            <surname>-</surname>
          </string-name>
          2014
          <source>-12-15.</source>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>M.</given-names>
            <surname>Stephenson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Renz</surname>
          </string-name>
          ,
          <article-title>Procedural generation of levels for angry birds style physics games</article-title>
          ,
          <source>Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</source>
          <volume>12</volume>
          (
          <year>2021</year>
          )
          <fpage>225</fpage>
          -
          <lpage>231</lpage>
          . URL: https://ojs.aaai.org/index.php/AIIDE/article/ view/12871. doi:
          <volume>10</volume>
          .1609/aiide.v12i1.
          <fpage>12871</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>R. Rodriguez</given-names>
            <surname>Torrado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Khalifa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Cerny</given-names>
            <surname>Green</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Justesen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Risi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <article-title>Bootstrapping conditional gans for video game level generation</article-title>
          ,
          <source>in: 2020 IEEE Conference on Games (CoG)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>48</lpage>
          . doi:
          <volume>10</volume>
          .1109/CoG47356.
          <year>2020</year>
          .
          <volume>9231576</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>P.</given-names>
            <surname>Taveekitworachai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Abdullah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. F.</given-names>
            <surname>Dewantoro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Thawonmas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. Renz,</surname>
          </string-name>
          <article-title>Chatgpt4pcg competition: Character-like level generation for science birds</article-title>
          ,
          <source>in: 2023 IEEE Conference on Games (CoG)</source>
          ,
          <year>2023</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>8</lpage>
          . doi:
          <volume>10</volume>
          .1109/CoG57401.
          <year>2023</year>
          .
          <volume>10333206</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>M.</given-names>
            <surname>Stephenson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Renz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Ge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Ferreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. Zhang,</surname>
          </string-name>
          <article-title>The 2017 aibirds level generation competition</article-title>
          ,
          <source>IEEE Transactions on Games</source>
          <volume>11</volume>
          (
          <year>2019</year>
          )
          <fpage>275</fpage>
          -
          <lpage>284</lpage>
          . doi:
          <volume>10</volume>
          .1109/TG.
          <year>2018</year>
          .
          <volume>2854896</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Du</surname>
          </string-name>
          , J. Liu,
          <article-title>Games for artificial intelligence research: A review and perspectives, 2024</article-title>
          . URL: https://arxiv.org/abs/2304.13269. arXiv:
          <volume>2304</volume>
          .
          <fpage>13269</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ontañón</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. A.</given-names>
            <surname>Barriga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. R.</given-names>
            <surname>Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. O.</given-names>
            <surname>Moraes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. H. S.</given-names>
            <surname>Lelis</surname>
          </string-name>
          ,
          <source>The first microrts artificial intelligence competition</source>
          ,
          <source>AI</source>
          Magazine
          <volume>39</volume>
          (
          <year>2018</year>
          )
          <fpage>75</fpage>
          -
          <lpage>83</lpage>
          . URL: https://ojs.aaai.org/aimagazine/index.php/ aimagazine/article/view/2777. doi:
          <volume>10</volume>
          .1609/aimag. v39i1.
          <fpage>2777</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>N.</given-names>
            <surname>Heijne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bakkes</surname>
          </string-name>
          ,
          <article-title>Procedural zelda: a pcg environment for player experience research</article-title>
          ,
          <source>in: Proceedings of the 12th International Conference on the Foundations of Digital Games</source>
          , FDG '17,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2017</year>
          . URL: https://doi.org/10.1145/3102071.3102091. doi:
          <volume>10</volume>
          .1145/3102071.3102091.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>O.</given-names>
            <surname>Vinyals</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ewalds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bartunov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Georgiev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Vezhnevets</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yeo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Makhzani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Küttler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Agapiou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schrittwieser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Quan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gafney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Petersen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Simonyan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schaul</surname>
          </string-name>
          , H. van Hasselt,
          <string-name>
            <given-names>D.</given-names>
            <surname>Silver</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lillicrap</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Calderone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Keet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Brunasso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lawrence</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ekermo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Repp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Tsing</surname>
          </string-name>
          ,
          <article-title>Starcraft ii: A new challenge for reinforcement learning</article-title>
          ,
          <year>2017</year>
          . URL: https: //arxiv.org/abs/1708.04782. arXiv:
          <volume>1708</volume>
          .
          <fpage>04782</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>B.</given-names>
            <surname>Bateni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          ,
          <article-title>Language-driven play: Large language models as game-playing agents in slay the spire</article-title>
          ,
          <source>in: Proceedings of the 19th International Conference on the Foundations of Digital Games</source>
          , FDG '24,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2024</year>
          . URL: https://doi.org/10.1145/3649921. 3650013. doi:
          <volume>10</volume>
          .1145/3649921.3650013.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>W.</given-names>
            <surname>Ling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Grefenstette</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. Hermann</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Kočiský</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Senior</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Blunsom</surname>
          </string-name>
          ,
          <article-title>Latent predictor networks for code generation</article-title>
          ,
          <year>2016</year>
          . URL: https://arxiv. org/abs/1603.06744. arXiv:
          <volume>1603</volume>
          .
          <fpage>06744</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>A.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. S.</given-names>
            <surname>Melo</surname>
          </string-name>
          ,
          <article-title>Monte carlo tree search experiments in hearthstone</article-title>
          ,
          <source>in: 2017 IEEE Conference on Computational Intelligence and Games (CIG)</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>272</fpage>
          -
          <lpage>279</lpage>
          . doi:
          <volume>10</volume>
          .1109/CIG.
          <year>2017</year>
          .
          <volume>8080446</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>T.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Guy</surname>
          </string-name>
          ,
          <article-title>Chaos cards: Creating novel digital card games through grammatical content gen-</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>