<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">MiniStS: A Testbed for Dynamic Rule Exploration</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Bahar</forename><surname>Bateni</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Santa Cruz (UCSC)</orgName>
								<orgName type="institution">University of California</orgName>
								<address>
									<postCode>95064</postCode>
									<settlement>Santa Cruz</settlement>
									<region>CA</region>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jim</forename><surname>Whitehead</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Santa Cruz (UCSC)</orgName>
								<orgName type="institution">University of California</orgName>
								<address>
									<postCode>95064</postCode>
									<settlement>Santa Cruz</settlement>
									<region>CA</region>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">MiniStS: A Testbed for Dynamic Rule Exploration</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">BDB6AE59094AD26852366744C5018EC1</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T18:29+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Collectible Card Games</term>
					<term>General Game-playing</term>
					<term>Automated Game Design</term>
					<term>Procedural Content Generation</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 offers 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><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 <ref type="bibr" target="#b0">[1]</ref>, 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 <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b4">5]</ref>, game-playing AI <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7]</ref>, accessibility <ref type="bibr" target="#b7">[8]</ref>, visualization of playtesting data <ref type="bibr" target="#b8">[9]</ref>, and, venturing outside of games, software repair <ref type="bibr" target="#b9">[10]</ref>. GVGAI <ref type="bibr" target="#b10">[11]</ref> 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 <ref type="bibr" target="#b11">[12]</ref>, Overcooked <ref type="bibr" target="#b12">[13]</ref>, and Baba is You <ref type="bibr" target="#b13">[14]</ref>.</p><p>In this paper, we introduce MiniStS, 1 a simplified Python implementation of the rogue-like card game Slay the Spire (StS) <ref type="bibr" target="#b14">[15]</ref>. 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 affect 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 different rules in different ways. We discuss these properties and more in Section 1.2.</p><p>11th Experimental Artificial Intelligence in Games Workshop, November 19, 2024, Lexington, Kentucky, USA.</p><p>bbateni@ucsc.edu (B. Bateni); ejw@ucsc.edu (J. Whitehead) https://bahar.bateni.org (B. Bateni); https://users.soe.ucsc.edu/~ejw/ (J. Whitehead) 0000-0002-0701-0311 (B. Bateni); 0000-0002-6887-7330 (J. Whitehead) 1 The code is available at https://github.com/iambb5445/MiniSTS The structure of a game with a dynamic rule system. In such a game, the designer defines a set of possible rules or design elements in the game that can be combined together. The game then allows the player to manipulate the design of the game through playing the game and activating certain rules.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.1.">Dynamic Rule System Definition</head><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 <ref type="bibr" target="#b15">[16]</ref>. 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. 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 different 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 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 <ref type="bibr" target="#b17">[18]</ref>, Hades <ref type="bibr" target="#b18">[19]</ref>, Noita <ref type="bibr" target="#b19">[20]</ref>, Risk of Rain 2 <ref type="bibr" target="#b20">[21]</ref> 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 riffle, which affects 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.2.">Dynamic Rule System Research</head><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 <ref type="bibr" target="#b13">[14]</ref>, 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 <ref type="figure">2</ref>, 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 different experience every time.</p><p>When taking the role of the designer and adding a new rule to the set of available rules, the effect of this new rule should be examined on all the possible designs from every possible combination. This effect 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 <ref type="figure" target="#fig_0">3</ref> 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 4 One popular interpretation of roguelike is the Berlin Interpretation, <ref type="bibr" target="#b16">[17]</ref> 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Rules</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Rules</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Gameplay Design</head><p>Figure <ref type="figure">2</ref>: The design space resulting from a single set of rules in a dynamic rule system. The designer initially defines a set of composable rules in the game during the game design process. The player then dynamically changes the set of active rules during gameplay by making in-game decisions. As a result, the player to some extent collaborates on game design decisions. Exploring the effect of adding rule A vs rule B in a dynamic design system. The effect of adding each rule should be viewed in terms of how it affects the space of valid combinations in the design space as opposed to in a single fixed ruleset. The good design and bad design visualizations are assumed according to system's design quality metric.</p><p>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 effects 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 different 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 <ref type="bibr" target="#b21">[22]</ref>, a term introduced by Mark Rosewater, the head designer of Magic the Gathering.</p><p>Lenticular design is when understanding a card is more difficult for an experienced player compared to a beginner. If the cards include many synergy effects when combined in certain ways, an experienced player would likely have to consider all of these effects when playing. On the other hand, a novice player would not understand these effects and hence would not get lost in the complexity of the game. This is a desirable effect 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.3.">Slay the Spire</head><p>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 different moves with different 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 different cards or decks can be evaluated without considering how well they perform against different 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 difficulty 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 offers various examples of well-designed levels with different degrees of difficulty 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Related Work</head><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 different level generation methods such as applying rhythm-based approaches <ref type="bibr" target="#b1">[2]</ref>, creating level sections focused on certain mechanics <ref type="bibr" target="#b2">[3]</ref>, or composing predefined level sections <ref type="bibr" target="#b3">[4,</ref><ref type="bibr" target="#b4">5]</ref>.</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 <ref type="bibr" target="#b6">[7]</ref>. This resulted in the introduction of the Mario AI Framework <ref type="bibr" target="#b5">[6]</ref>, 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 <ref type="bibr" target="#b8">[9]</ref>, exploring accessibility methods <ref type="bibr" target="#b7">[8]</ref>, and contributing to fields outside of game studies, such as runtime software repair <ref type="bibr" target="#b9">[10]</ref>.</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 <ref type="bibr" target="#b11">[12]</ref>. This environment, named Science Birds, has been used to explore a variety of level generation approaches such as procedurally constructing and combining structures <ref type="bibr" target="#b22">[23]</ref>, utilizing Generative Adversarial Networks (GANs) for level generation <ref type="bibr" target="#b23">[24]</ref>, and using genetic algorithms <ref type="bibr" target="#b23">[24]</ref>. Furthermore, Science Birds has been selected as the platform for the GPT4PCG <ref type="bibr" target="#b24">[25]</ref> competition in which the use of Large Language Models in generating levels via effective prompt-engineering is explored. The AIBirds <ref type="bibr" target="#b25">[26]</ref> 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 <ref type="bibr" target="#b26">[27]</ref>, 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 <ref type="bibr" target="#b12">[13]</ref>, a minimal implementation of Real-Time Strategy (RTS) game mechanics used for microRTS game AI competition <ref type="bibr" target="#b27">[28]</ref>, and an implementation of the Legend of Zelda: a Link to the Past developed specifically as a PCG research environment <ref type="bibr" target="#b28">[29]</ref>. 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 <ref type="bibr" target="#b29">[30]</ref>.</p><p>General Video Game AI (GVGAI) <ref type="bibr" target="#b10">[11]</ref> 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 difference 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 <ref type="bibr" target="#b30">[31]</ref> 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 avail-able for research purposes. XMage<ref type="foot" target="#foot_0">5</ref> and Hearthbreaker<ref type="foot" target="#foot_1">6</ref> 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 <ref type="bibr" target="#b31">[32]</ref>. Metastone<ref type="foot" target="#foot_2">7</ref> is a community-made implementation of Hearthstone which Santos et al. use to explore use of the MCTS algorithm in playing Hearthstone <ref type="bibr" target="#b32">[33]</ref>. One important difference 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 <ref type="bibr" target="#b33">[34]</ref> 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 <ref type="bibr" target="#b34">[35]</ref>, 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 effects 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 <ref type="bibr" target="#b13">[14]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Applications</head><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 effect 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 effects or defining new ones, this environment can be used for designing and playtesting new cards.  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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Dynamic Rule-Playing AI</head><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:</p><p>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. shuffling the deck, random choice, etc.) are intentionally forced to use a different 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 <ref type="bibr" target="#b30">[31]</ref>, we developed three different agents within MiniStS and compared them in different 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 <ref type="figure" target="#fig_2">5</ref>. 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 effects 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 different settings. Our primary focus in this paper is to present MiniStS as a testbed, rather than the agents. Our previous work <ref type="bibr" target="#b30">[31]</ref> provides an example of how MiniStS can be used to simulate and compare different 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 different 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 over 1,000 simulations). Running these 1,000 simulations on a personal laptop with an RTX 3050 GPU and on 50 threads takes less than 10 milliseconds per simulation on average.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Card Generation</head><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 different actions and effects. These actions and effects 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 effects when certain events occur. To make this possible, we define status effects 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 effects, 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:</p><p>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 effect, define these effects and determine their properties, such as if multiple instances of the same effect would stack, if the effect 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 7:</head><p>Possible targets for atomic actions. The targets can be either a card or an agent (i.e. the player or enemies). Each of these targets is defined on a set of possible options, and a way of choosing the option.</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 identified 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.</p><p>• 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 different 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3.">Status Effects and Events</head><p>Slay the Spire defines a set of status effects, or buffs and debuffs, 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 effects by using specialized code that only covers these cases, we want the definition of a status effect to be more open-ended and include a flexible infrastructure, since status effects 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 effect on the state of the game, these cards can have a lasting effect 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 effects with the player. StS uses status effects 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   the player. Each effect also has a set of properties. For example, "After Image" status effect does not decrease during the battle, and can stack (i.e. if "After Image" is played twice, the value of status effect is increased to two). Finally, the status effect 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 effects 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  The unique callback is subscribed to the event of "Play Card" to trigger after every time it happens. The callback then, given the whole state of the game, applies some amount of block to the player depending on the strength of the status effect which directly maps to how many times the card was played.</p><p>to register the callback to that event. The callbacks can be subscribed to trigger before or after an event. Figure <ref type="figure" target="#fig_6">11</ref> demonstrates how status effects 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 effect "vulnerable" makes it so that the affected 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" effects are both defined to trigger when attack damage is happening in the game and manipulate its value. However, the order in which these effects apply completely depend on how the card designer have envisioned the effects. Because of this, it's important for any new callback to be subscribed at the correct order compared to other callbacks.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.4.">Gameplay Loop</head><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:</p><p>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 shuffled 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 affected 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Limitations</head><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 effects 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 effects, 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">Conclusion</head><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, offers 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 effect of rules and the distribution of the possible designs that arise from different 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 different components of Mini-StS 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.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3:Exploring the effect of adding rule A vs rule B in a dynamic design system. The effect of adding each rule should be viewed in terms of how it affects the space of valid combinations in the design space as opposed to in a single fixed ruleset. The good design and bad design visualizations are assumed according to system's design quality metric.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: The API required for defining a rule-playing agent in MiniStS. The agent should be able to respond to three type of questions given the state of the game and the list of possible responses.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Pseudocode showing implementation of an example agent (random agent). The agent implements functions to decide the next action based on the state of the game and to choose a target between agents/cards when needed. The pseudocode is slightly simplified from the actual implementation.</figDesc><graphic coords="5,72.00,65.61,213.67,84.31" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 8 :</head><label>8</label><figDesc>Figure 8: visualization of implementing "Survivor: Gain 8 Block. Discard 1 card. " and "Bash: Deal 8 Damage. Apply 2 Vulnerable. " Both cards can be defined by combining atomic actions and targets with AND and TO. However, Bash uses the same target for both actions, which requires using AND before defining the targets with TO, whereas Survivor have different targets and uses AND after seperately defining the targets.</figDesc><graphic coords="7,75.81,166.90,69.47,89.55" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 9 :</head><label>9</label><figDesc>Figure 9: Pseudocode showing implementation of two example cards, "Survivor: Gain 8 Block. Discard 1 card. " and "Bash: Deal 8 Damage. Apply 2 Vulnerable. " The pseudocode is simplified from the actual implementation.</figDesc><graphic coords="7,72.00,328.05,213.68,106.84" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 10 :</head><label>10</label><figDesc>Figure 10: Pseudocode showing implementation of an imaginary card, "Bash*", which deals 8 damage to one target, and then applies 2 Vulnerable to another, possibly different, target. The pseudocode is simplified from the actual implementation.</figDesc><graphic coords="7,72.00,495.75,213.68,81.40" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 11 :</head><label>11</label><figDesc>Figure11: Definition of card "After Image" in MiniStS. The applies a special status effect, called "After Image", to the player. The unique callback is subscribed to the event of "Play Card" to trigger after every time it happens. The callback then, given the whole state of the game, applies some amount of block to the player depending on the strength of the status effect which directly maps to how many times the card was played.</figDesc><graphic coords="7,310.94,333.10,58.57,75.50" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_0">https://github.com/magefree/mage/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_1">https://github.com/danielyule/hearthbreaker/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_2">https://github.com/demilich1/metastone</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">System Structure</head><p>In this section, we describe different components of the Min-iStS design with the goal of creating a research environment with a dynamic rule system. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1.">Actions</head><p>The first component that we identify in the cards are actions. Actions define what effect 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 <ref type="figure">6</ref>.</p><p>The actions are defined as atomic, meaning that when we analyze a card, we break down its effect 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 affects 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 <ref type="figure">9</ref> shows pseudocode for two example cards, and Figure <ref type="figure">10</ref> shows how the second card can be redefine to apply its underlying actions to two, possibly different, targets. Figure <ref type="figure">8</ref> visualizes the two example cards.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2.">Targets</head><p>As mentioned previously, the effect 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></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<author>
			<persName><forename type="first">M</forename><surname>Persson</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Infinite mario bros</title>
				<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Rhythm-based level generation for 2d platformers</title>
		<author>
			<persName><forename type="first">G</forename><surname>Smith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Treanor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Whitehead</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Mateas</surname></persName>
		</author>
		<idno type="DOI">10.1145/1536513.1536548</idno>
		<idno>doi:10.1145/1536513.1536548</idno>
		<ptr target="https://doi.org/10.1145/1536513.1536548" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 4th International Conference on Foundations of Digital Games, FDG &apos;09</title>
				<meeting>the 4th International Conference on Foundations of Digital Games, FDG &apos;09<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="175" to="182" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Intentional computational level design</title>
		<author>
			<persName><forename type="first">A</forename><surname>Khalifa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">C</forename><surname>Green</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Barros</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<idno type="DOI">10.1145/3321707.3321849</idno>
		<idno>doi:10. 1145/3321707.3321849</idno>
		<ptr target="https://doi.org/10.1145/3321707.3321849" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Genetic and Evolutionary Computation Conference</title>
				<meeting>the Genetic and Evolutionary Computation Conference<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="page" from="796" to="803" />
		</imprint>
	</monogr>
	<note>GECCO &apos;19</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Mario level generation from mechanics using scene stitching</title>
		<author>
			<persName><forename type="first">M</forename><surname>Cerny Green</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Mugrai</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Khalifa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<idno type="DOI">10.1109/CoG47356.2020.9231692</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE Conference on Games (CoG)</title>
				<imprint>
			<date type="published" when="2020">2020. 2020</date>
			<biblScope unit="page" from="49" to="56" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Procedural level generation using occupancy-regulated extension</title>
		<author>
			<persName><forename type="first">P</forename><surname>Mawhorter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Mateas</surname></persName>
		</author>
		<idno type="DOI">10.1109/ITW.2010.5593333</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2010 IEEE Conference on Computational Intelligence and Games</title>
				<meeting>the 2010 IEEE Conference on Computational Intelligence and Games</meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="351" to="358" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">The mario ai benchmark and competitions</title>
		<author>
			<persName><forename type="first">S</forename><surname>Karakovskiy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<idno type="DOI">10.1109/TCIAIG.2012.2188528</idno>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Computational Intelligence and AI in Games</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="page" from="55" to="67" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Super mario evolution</title>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Karakovskiy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Koutnik</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schmidhuber</surname></persName>
		</author>
		<idno type="DOI">10.1109/CIG.2009.5286481</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE Symposium on Computational Intelligence and Games</title>
				<imprint>
			<date type="published" when="2009">2009. 2009</date>
			<biblScope unit="page" from="156" to="161" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Towards gaze-controlled platform games</title>
		<author>
			<persName><forename type="first">J</forename><surname>Muñoz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">N</forename><surname>Yannakakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Mulvey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">W</forename><surname>Hansen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Gutierrez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Sanchis</surname></persName>
		</author>
		<idno type="DOI">10.1109/CIG.2011.6031988</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE Conference on Computational Intelligence and Games (CIG&apos;11)</title>
				<imprint>
			<date type="published" when="2011">2011. 2011</date>
			<biblScope unit="page" from="47" to="54" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Aggregated visualization of playtesting data</title>
		<author>
			<persName><forename type="first">G</forename><surname>Wallner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Halabi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Mirza-Babaei</surname></persName>
		</author>
		<idno type="DOI">10.1145/3290605.3300593</idno>
		<idno>doi:10. 1145/3290605.3300593</idno>
		<ptr target="https://doi.org/10.1145/3290605.3300593" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems, CHI &apos;19</title>
				<meeting>the 2019 CHI Conference on Human Factors in Computing Systems, CHI &apos;19<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="page" from="1" to="12" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Runtime repair of software faults using event-driven monitoring</title>
		<author>
			<persName><forename type="first">C</forename><surname>Lewis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Whitehead</surname></persName>
		</author>
		<idno type="DOI">10.1145/1810295.1810352</idno>
		<idno>doi:10.1145/1810295.1810352</idno>
		<ptr target="https://doi.org/10.1145/1810295.1810352" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering -Volume 2, ICSE &apos;10</title>
				<meeting>the 32nd ACM/IEEE International Conference on Software Engineering -Volume 2, ICSE &apos;10<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="275" to="280" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">General video game ai: Competition, challenges and opportunities</title>
		<author>
			<persName><forename type="first">D</forename><surname>Perez-Liebana</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Samothrakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Schaul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lucas</surname></persName>
		</author>
		<idno type="DOI">10.1609/aaai.v30i1.9869</idno>
		<ptr target="https://ojs.aaai.org/index.php/AAAI/article/view/9869.doi:10.1609/aaai.v30i1.9869" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the AAAI Conference on Artificial Intelligence 30</title>
				<meeting>the AAAI Conference on Artificial Intelligence 30</meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A search-based approach for generating angry birds levels</title>
		<author>
			<persName><forename type="first">L</forename><surname>Ferreira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Toledo</surname></persName>
		</author>
		<idno type="DOI">10.1109/CIG.2014.6932912</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE Conference on Computational Intelligence and Games</title>
				<imprint>
			<date type="published" when="2014">2014. 2014</date>
			<biblScope unit="page" from="1" to="8" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">On the utility of learning about humans for human-ai coordination</title>
		<author>
			<persName><forename type="first">M</forename><surname>Carroll</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Shah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">K</forename><surname>Ho</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Griffiths</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Seshia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Abbeel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Dragan</surname></persName>
		</author>
		<ptr target="https://proceedings.neurips.cc/paper_files/paper/2019/file/f5b1b89d98b7286673128a5fb112cb9a-Paper.pdf" />
	</analytic>
	<monogr>
		<title level="m">Advances in Neural Information Processing Systems</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Wallach</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Larochelle</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Beygelzimer</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">F</forename><surname>Alché-Buc</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">E</forename><surname>Fox</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">R</forename><surname>Garnett</surname></persName>
		</editor>
		<imprint>
			<publisher>Curran Associates, Inc</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="volume">32</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Baba is y&apos;all: Collaborative mixed-initiative level design</title>
		<author>
			<persName><forename type="first">M</forename><surname>Charity</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Khalifa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<idno type="DOI">10.1109/CoG47356.2020.9231807</idno>
	</analytic>
	<monogr>
		<title level="m">2020 IEEE Conference on Games (CoG)</title>
				<imprint>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="542" to="549" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m">Mega Crit Games, Slay the spire</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">A</forename><surname>Teikari</surname></persName>
		</author>
		<author>
			<persName><surname>Baba</surname></persName>
		</author>
		<author>
			<persName><surname>You</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<ptr target="https://www.roguebasin.com/index.php/Berlin_Interpretation" />
		<title level="m">Berlin Interpretation -RogueBasin</title>
				<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">The Binding of Isaac</title>
		<author>
			<persName><forename type="first">E</forename><surname>Mcmillen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Himsl</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Supergiant</forename><surname>Games</surname></persName>
		</author>
		<author>
			<persName><surname>Hades</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title/>
		<author>
			<persName><forename type="first">Nolla</forename><surname>Games</surname></persName>
		</author>
		<author>
			<persName><surname>Noita</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title/>
	</analytic>
	<monogr>
		<title level="j">Risk of Rain</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
	<note>Hopoo Games</note>
</biblStruct>

<biblStruct xml:id="b21">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Rosewater</surname></persName>
		</author>
		<ptr target="https://magic.wizards.com/en/news/making-magic/lenticular-design-2014-12-15" />
		<title level="m">Lenticular design</title>
				<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Procedural generation of levels for angry birds style physics games</title>
		<author>
			<persName><forename type="first">M</forename><surname>Stephenson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Renz</surname></persName>
		</author>
		<idno type="DOI">10.1609/aiide.v12i1.12871</idno>
		<ptr target="https://ojs.aaai.org/index.php/AIIDE/article/view/12871.doi:10.1609/aiide.v12i1.12871" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</title>
				<meeting>the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</meeting>
		<imprint>
			<date type="published" when="2021">2021</date>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="page" from="225" to="231" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Bootstrapping conditional gans for video game level generation</title>
		<author>
			<persName><forename type="first">R</forename><surname>Rodriguez Torrado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Khalifa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Cerny Green</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Justesen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Risi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<idno type="DOI">10.1109/CoG47356.2020.9231576</idno>
	</analytic>
	<monogr>
		<title level="m">2020 IEEE Conference on Games (CoG)</title>
				<imprint>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="41" to="48" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Chatgpt4pcg competition: Character-like level generation for science birds</title>
		<author>
			<persName><forename type="first">P</forename><surname>Taveekitworachai</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Abdullah</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">F</forename><surname>Dewantoro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Thawonmas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Renz</surname></persName>
		</author>
		<idno type="DOI">10.1109/CoG57401.2023.10333206</idno>
	</analytic>
	<monogr>
		<title level="m">2023 IEEE Conference on Games (CoG)</title>
				<imprint>
			<date type="published" when="2023">2023</date>
			<biblScope unit="page" from="1" to="8" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">The 2017 aibirds level generation competition</title>
		<author>
			<persName><forename type="first">M</forename><surname>Stephenson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Renz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Ge</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Ferreira</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Zhang</surname></persName>
		</author>
		<idno type="DOI">10.1109/TG.2018.2854896</idno>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Games</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="page" from="275" to="284" />
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<monogr>
		<author>
			<persName><forename type="first">C</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Zhao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Du</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Liu</surname></persName>
		</author>
		<ptr target="https://arxiv.org/abs/2304.13269.arXiv:2304.13269" />
		<title level="m">Games for artificial intelligence research: A review and perspectives</title>
				<imprint>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">The first microrts artificial intelligence competition</title>
		<author>
			<persName><forename type="first">S</forename><surname>Ontañón</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">A</forename><surname>Barriga</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">R</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">O</forename><surname>Moraes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">H S</forename><surname>Lelis</surname></persName>
		</author>
		<idno type="DOI">10.1609/aimag.v39i1.2777</idno>
		<ptr target="https://ojs.aaai.org/aimagazine/index.php/aimagazine/article/view/2777.doi:10.1609/aimag.v39i1.2777" />
	</analytic>
	<monogr>
		<title level="j">AI Magazine</title>
		<imprint>
			<biblScope unit="volume">39</biblScope>
			<biblScope unit="page" from="75" to="83" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b28">
	<analytic>
		<title level="a" type="main">Procedural zelda: a pcg environment for player experience research</title>
		<author>
			<persName><forename type="first">N</forename><surname>Heijne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bakkes</surname></persName>
		</author>
		<idno type="DOI">10.1145/3102071.3102091</idno>
		<idno>doi:10.1145/3102071.3102091</idno>
		<ptr target="https://doi.org/10.1145/3102071.3102091" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 12th International Conference on the Foundations of Digital Games, FDG &apos;17</title>
				<meeting>the 12th International Conference on the Foundations of Digital Games, FDG &apos;17<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b29">
	<monogr>
		<title level="m" type="main">Starcraft ii: A new challenge for reinforcement learning</title>
		<author>
			<persName><forename type="first">O</forename><surname>Vinyals</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Ewalds</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Bartunov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Georgiev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">S</forename><surname>Vezhnevets</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Yeo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Makhzani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Küttler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Agapiou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schrittwieser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Quan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Gaffney</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Petersen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Simonyan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Schaul</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Van Hasselt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Silver</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Lillicrap</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Calderone</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Keet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Brunasso</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Lawrence</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Ekermo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Repp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Tsing</surname></persName>
		</author>
		<ptr target="https://arxiv.org/abs/1708.04782.arXiv:1708.04782" />
		<imprint>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b30">
	<analytic>
		<title level="a" type="main">Language-driven play: Large language models as game-playing agents in slay the spire</title>
		<author>
			<persName><forename type="first">B</forename><surname>Bateni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Whitehead</surname></persName>
		</author>
		<idno type="DOI">10.1145/3649921.3650013</idno>
		<idno>doi:10.1145/3649921.3650013</idno>
		<ptr target="https://doi.org/10.1145/3649921.3650013" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 19th International Conference on the Foundations of Digital Games, FDG &apos;24</title>
				<meeting>the 19th International Conference on the Foundations of Digital Games, FDG &apos;24<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Association for Computing Machinery</publisher>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b31">
	<monogr>
		<title level="m" type="main">Latent predictor networks for code generation</title>
		<author>
			<persName><forename type="first">W</forename><surname>Ling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Grefenstette</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><forename type="middle">M</forename><surname>Hermann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Kočiský</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Senior</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Blunsom</surname></persName>
		</author>
		<ptr target="https://arxiv.org/abs/1603.06744.arXiv:1603.06744" />
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b32">
	<analytic>
		<title level="a" type="main">Monte carlo tree search experiments in hearthstone</title>
		<author>
			<persName><forename type="first">A</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">A</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">S</forename><surname>Melo</surname></persName>
		</author>
		<idno type="DOI">10.1109/CIG.2017.8080446</idno>
	</analytic>
	<monogr>
		<title level="m">IEEE Conference on Computational Intelligence and Games (CIG)</title>
				<imprint>
			<date type="published" when="2017">2017. 2017</date>
			<biblScope unit="page" from="272" to="279" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b33">
	<analytic>
		<title level="a" type="main">Chaos cards: Creating novel digital card games through grammatical content generation and meta-based card evaluation</title>
		<author>
			<persName><forename type="first">T</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Guy</surname></persName>
		</author>
		<idno type="DOI">10.1609/aiide.v16i1.7430</idno>
		<ptr target="https://ojs.aaai.org/index.php/AIIDE/article/view/7430.doi:10.1609/aiide.v16i1.7430" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</title>
				<meeting>the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</meeting>
		<imprint>
			<date type="published" when="2020">2020</date>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="page" from="196" to="202" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b34">
	<analytic>
		<title level="a" type="main">Gigl: A domain specific language for procedural content generation with grammatical representations</title>
		<author>
			<persName><forename type="first">T</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Guy</surname></persName>
		</author>
		<idno type="DOI">10.1609/aiide.v14i1.13025</idno>
		<ptr target="https://ojs.aaai.org/index.php/AIIDE/article/view/13025.doi:10.1609/aiide.v14i1.13025" />
	</analytic>
	<monogr>
		<title level="m">Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment 14</title>
				<meeting>the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment 14</meeting>
		<imprint>
			<date type="published" when="2018">2018</date>
			<biblScope unit="page" from="9" to="16" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
