Opportunities for Approachable Game Development via Program Synthesis
Max Kreminski, Michael Mateas
University of California, Santa Cruz
Abstract instead attempt to produce computational systems that can
reason over the much wider range of game behaviors im-
Program synthesis techniques can be used to improve
plementable in general-purpose programming languages. At
the approachability of game development, but much
work remains to be done in bridging the gap between the same time, recent work in program synthesis (Gulwani
program synthesis and game development support. We et al. 2017) has shown that computers are capable of gen-
propose three high-level categories of research that erating programs that meet user needs in a variety of con-
might be undertaken in pursuit of this goal. texts, from data science (Drosos et al. 2020) to graphic de-
sign (Hempel and Chugh 2016). Though they may make in-
ternal use of narrow domain-specific languages, many pro-
Introduction gram synthesizers eventually output code in general-purpose
Digital games are a powerful expressive medium. They programming languages like those typically used for game
can be used to communicate ideas through procedural development. Consequently, synthesizers can generate pro-
rhetoric (Bogost 2010); to express deeply personal experi- grams that demonstrate a wide range of possible behaviors.
ences (Anthropy 2012); and to provoke contemplation of This raises an intriguing question: can we use program
complex phenomena (Rusch 2017). synthesis techniques to improve the approachability of game
In each of these cases, the ability of games to deal di- development in general-purpose programming languages?
rectly with systems is key to their expressive potential. Be- We believe the answer is yes, but that there is much work
cause games deal in systems, code plays a critical role in im- to be done to bridge the gap between program synthesis and
plementing their behavior—and games are often developed game development support. In the remainder of this paper,
in general-purpose programming languages that take signif- we briefly propose three high-level categories of research
icant time and effort to learn, even in carefully constructed that might be undertaken in pursuit of this goal.
educational environments. As a result, the difficulty of pro-
gramming represents a significant barrier to entry for many Expressive Synthesis
would-be creators of digital games. Many existing program synthesizers aim to generate code
Some game creation tools, such as Game-O-Matic (Tre- that is purely utilitarian: for instance, code that accurately
anor et al. 2012), Wevva (Powley et al. 2017), and Germi- implements a user-intended transformation of spreadsheet
nate (Kreminski et al. 2020), allow users to create certain data (Gulwani 2011). But from a software engineering per-
kinds of games without having to deal with the minutiae spective, game code stands out as unusual, because the code
of coding in a general-purpose programming language. In itself is often expressive in nature. Code that implements
some cases, approachable tools have played a major role in game mechanics must trigger visual or auditory feedback,
making digital games available as a medium of expression to help the player understand what is happening in the game
to a more diverse set of creators (Harvey 2014). However, world when they take certain actions. Code that implements
these tools achieve their approachability by restricting their non-player character behavior typically aims to give charac-
users to tiny subsets of the space of all possible games. This ters a distinctive personality, which the player can discover
allows these tools to present a highly simplified interface for through interaction. And code that interacts with or ties to-
defining game behavior, but massively limits the kinds of gether a game’s operational logics (Osborn, Wardrip-Fruin,
gameplay that users can define. and Mateas 2017) can be interpreted as making arguments
Cook has recently argued (Cook 2020) that research in through procedural rhetoric—for instance, assertions like
automated game design (which is closely connected to the “NPCs sometimes give you items when interacted with”, the
development of approachable game creation tools) should details of whose implementation can play a substantial role
move away from narrow predefined game design spaces and in shaping the player’s attitude toward NPC interactions, the
Copyright © 2021for this paper by its authors. Use permitted under items they receive, and so on. Consequently, attempts to ap-
Creative Commons License Attribution 4.0 International (CC BY ply program synthesis to game development must be aware
4.0). of the expressive dimension of code.
The Gemini game generator (Summerville et al. 2018) im- As a result, game development applications of program
plements a limited form of expressive synthesis by allowing synthesis may benefit from the use of casual creator design
users to specify their rhetorical intent for a game as an an- patterns (like the Chorus Line or Approximating Feed-
swer set program, which constrains a generative space of back) or reflective creator design patterns (like Interpretive
arcade games defined by the Cygnus game description lan- Refraction or Inferring Intent) to help users more rapidly
guage. Generated Cygnus games are then translated directly evaluate large numbers of potential intent realizations and
ments a relatively limited set of operational logics; can only 2015; Kreminski and Mateas 2021). Germinate—a graph-
be used to create single-screen arcade games; uses only a ical game creation tool built on the Gemini architecture—
small set of simple, hardcoded control schemes and entity implements some of these design patterns; in particular, it
behaviors; and takes relatively little advantage of potential presents users with a graphical logic programming interface
programmatic channels for player feedback (such as proce- for specifying a design intent and allows them to rapidly add,
dural visual and audio feedback), resulting in games that are remove, or negate parts of their explicit design intent based
often hard for players to interpret (Osborn et al. 2019). A on features that are present in generated games. And Syn-
richer implementation of expressive synthesis could use the thesifter (Kreminski, Wardrip-Fruin, and Mateas 2020) aids
full capabilities of a general-purpose programming language users in building up a set of concrete positive and negative
to diverge from the specific, narrow space of games that the examples as they refine their synthesized program by proac-
Cygnus GDL defines. tively suggesting new examples, which the user can easily
Also worth mentioning here is the use of program synthe- either accept or reject.
sis to generate boss enemy behaviors, as described by Butler, Additionally, it may be helpful for tools to facilitate re-
Siu, and Zook (2017). In this case, the synthesized programs flection on how expressive intent relates to low-level parts
are expressive in that they yield different player experiences of synthesized programs by providing affordances for de-
from one boss encounter to the next—but there is no way sign journaling, perhaps based on the process described by
to indicate different expressive intents to the synthesizer, as Khaled, Lessard, and Barr (2018). For instance, a tool could
a game designer might often want to do (e.g., to create one prompt the user to leave plaintext notes for themselves on
boss that feels courageous and another that feels cowardly). what they liked and disliked about each synthesized pro-
Nevertheless, concepts like the down-only-number in- gram or game, allowing them to build up a searchable record
troduced as a specialized numeric type in this system may of design successes and failures over time and preserve past
prove useful in the way that they capture relatively low- intents even as they refine their design sense. Users might
level aspects of expressive intent: a more sophisticated pro- then make use of this information in conjunction with an
gram synthesizer that generates boss behavior might use a interpretable program synthesis interface like that presented
down-only-number for boss health by default but also by Zhang et al. (2021) to guide the synthesizer’s search, in-
leave open the possibility of creating bosses that can heal structing it to avoid parts of the search space that have fre-
themselves at certain points, indicating this to the rest of the quently yielded unwanted programs and focus its search on
system via the constraints placed on the health variable in a areas that seem especially promising instead.
form of type-directed program synthesis.
Reflective Synthesis One advantage of program synthesis is that synthesized pro-
grams need not remain black boxes to their users, even if the
One recurring issue in program synthesis is the difficulty that user starts out with little knowledge of the target program-
users face in precisely articulating their intent. A number ming language (Crichton 2019). In fact, a program synthe-
of strategies for resolving ambiguous user intent have been sizer could even be designed to model user understanding
proposed in the program synthesis literature (Zhang et al. of programming constructs (as is typical in tutoring-focused
2020), but the problem of intent ambiguity remains open. applications of program synthesis, e.g. Head et al. 2017)
In a game development context, the expressive dimension and gradually tutorialize the language by periodically intro-
of code exacerbates this difficulty. Because there may be ducing new constructs and idioms. Under such conditions,
many viable ways to write a program (e.g., an NPC behav- the user’s reliance on the synthesizer might fade away over
ior script or game mechanic implementation) that nominally time as they acquire greater confidence in reasoning about
satisfy a set of user-provided constraints, but each of these the meaning of code. A synthesizer that enabled this experi-
implementations may feel slightly different from a player ence could be viewed as a complementary cognitive artifact,
experience perspective, users may have to compare many rather than a competitive one (Krakauer 2016): the new ca-
divergent implementations of their stated intent before they pabilities it builds in the user remain with the user even when
can adequately determine which parts of the intent are cor- the artifact itself is removed.
rect, which are incorrect, and which are over- or underspec- In the context of game development, educational appli-
ified. Further, evaluating each of these complex behaviors cations of synthesis might prove especially useful in help-
may take a nontrivial amount of time and effort on the part ing users discover new game engine API features. Addition-
of the user, especially if they have to compare them in the ally, a programming tutor-like system for game development
context of real gameplay situations to get a thorough sense could be integrated with game design knowledge to assist
of the similarities and differences between implementations. users in linking code to design concepts and vice versa.
References Kreminski, M.; and Mateas, M. 2021. Reflective creators.
Anthropy, A. 2012. Rise of the Videogame Zinesters: How In International Conference on Computational Creativity.
Freaks, Normals, Amateurs, Artists, Dreamers, Drop-Outs, Kreminski, M.; Wardrip-Fruin, N.; and Mateas, M. 2020.
Queers, Housewives, and People Like You Are Taking Back Toward example-driven program synthesis of story sifting
an Art Form. Seven Stories Press. patterns. In Joint Proceedings of the AIIDE 2020 Workshops
Bogost, I. 2010. Persuasive Games: The Expressive Power (AIIDE-WS-2020).
of Videogames. MIT Press. Osborn, J. C.; Dickinson, M.; Anderson, B.; Summerville,
Butler, E.; Siu, K.; and Zook, A. 2017. Program synthesis A.; Denner, J.; Torres, D.; Wardrip-Fruin, N.; and Mateas,
as a generative method. In Proceedings of the 12th Interna- M. 2019. Is your game generator working? Evaluating Gem-
tional Conference on the Foundations of Digital Games. ini, an intentional generator. In Proceedings of the AAAI
Compton, K.; and Mateas, M. 2015. Casual creators. In In- Conference on Artificial Intelligence and Interactive Digital
ternational Conference on Computational Creativity, 228– Entertainment, volume 15, 59–65.
235. Osborn, J. C.; Wardrip-Fruin, N.; and Mateas, M. 2017. Re-
Cook, M. 2020. Software engineering for automated game fining operational logics. In Proceedings of the 12th Inter-
design. In 2020 IEEE Conference on Games (CoG), 487– national Conference on the Foundations of Digital Games.
494. IEEE. Powley, E. J.; Nelson, M. J.; Gaudl, S. E.; Colton, S.; Ferrer,
Crichton, W. 2019. Human-centric program synthesis. In B. P.; Saunders, R.; Ivey, P.; and Cook, M. 2017. Wevva:
PLATEAU Workshop @ UIST. Democratising game design. In Thirteenth Artificial Intelli-
gence and Interactive Digital Entertainment Conference.
Drosos, I.; Barik, T.; Guo, P. J.; DeLine, R.; and Gulwani,
S. 2020. Wrex: A unified programming-by-example inter- Rusch, D. C. 2017. Making Deep Games: Designing Games
action for synthesizing readable code for data scientists. In with Meaning and Purpose. CRC Press.
Proceedings of the 2020 CHI Conference on Human Factors Summerville, A.; Martens, C.; Samuel, B.; Osborn, J.;
in Computing Systems. Wardrip-Fruin, N.; and Mateas, M. 2018. Gemini: Bidirec-
Gulwani, S. 2011. Automating string processing in spread- tional generation and analysis of games via ASP. In Pro-
sheets using input-output examples. ACM Sigplan Notices ceedings of the AAAI Conference on Artificial Intelligence
46(1): 317–330. and Interactive Digital Entertainment, volume 14.
Gulwani, S.; Polozov, O.; Singh, R.; et al. 2017. Program Treanor, M.; Blackford, B.; Mateas, M.; and Bogost, I.
synthesis. Foundations and Trends® in Programming Lan- 2012. Game-O-Matic: Generating videogames that repre-
guages 4(1-2): 1–119. sent ideas. In Proceedings of the Third Workshop on Proce-
Harvey, A. 2014. Twine’s revolution: Democratization, de- dural Content Generation in Games.
politicization, and the queering of game design. G|A|M|E – Zhang, T.; Chen, Z.; Zhu, Y.; Vaithilingam, P.; Wang, X.; and
Games as Art, Media, Entertainment 1(3). Glassman, E. L. 2021. Interpretable program synthesis. In
Head, A.; Glassman, E.; Soares, G.; Suzuki, R.; Figueredo, Proceedings of the 2021 CHI Conference on Human Factors
L.; D’Antoni, L.; and Hartmann, B. 2017. Writing reusable in Computing Systems.
code feedback at scale with mixed-initiative program syn- Zhang, T.; Lowmanstone, L.; Wang, X.; and Glassman, E. L.
thesis. In Proceedings of the Fourth (2017) ACM Conference 2020. Interactive program synthesis by augmented exam-
on Learning @ Scale, 89–98. ples. In Proceedings of the 33rd Annual ACM Symposium
Hempel, B.; and Chugh, R. 2016. Semi-automated SVG on User Interface Software and Technology, 627–648.
programming via direct manipulation. In Proceedings of
the 29th Annual Symposium on User Interface Software and
Khaled, R.; Lessard, J.; and Barr, P. 2018. Documenting
trajectories in design space: a methodology for applied game
design research. In Proceedings of the 13th International
Conference on the Foundations of Digital Games.
Krakauer, D. 2016. Will A.I. harm us? Better
to ask how we’ll reckon with our hybrid nature.
well-reckon-with-our-hybrid-nature. Accessed on 2021-
Kreminski, M.; Dickinson, M.; Osborn, J.; Summerville,
A.; Mateas, M.; and Wardrip-Fruin, N. 2020. Germinate: a
mixed-initiative casual creator for rhetorical games. In Pro-
ceedings of the AAAI Conference on Artificial Intelligence
and Interactive Digital Entertainment, volume 16, 102–108.