Program synthesis as a generative method

Generative methods (also known as procedural content generation) have been used to generate a variety of static artifacts such as game levels. One key property of a generative method for a particular domain is how effectively the approach allows a designer to express the properties and constraints they care about. Generative methods have been applied much less frequently to dynamic artifacts such as boss behaviors, in part because the complex representation required to describe boss morphology and behavior is not amenable to existing generative techniques. It is challenging to describe a generative space of varied yet valid behaviors. Expanding on previous work that introduced a programming language for representing boss behaviors, we illustrate how such a language can be used by a designer to describe desirable design properties and constraints for bosses. That is, we define a generative space of bosses as a space of well-formed programs. We present a constructive algorithm that extends generative grammars to efficiently generate well-formed programs, and we show a complete example of generating Mega-Man-like bosses with complex attack patterns. We conclude that designing a generative space of dynamic behaviors can be fruitfully framed as a programming-language design problem.

[1]  Kenneth Slonneger,et al.  Formal syntax and semantics of programming languages , 1994 .

[2]  Julian Togelius,et al.  An experiment in automatic game design , 2008, 2008 IEEE Symposium On Computational Intelligence and Games.

[3]  Jonathan Orwant,et al.  EGGG: Automated programming for game generation , 2000, IBM Syst. J..

[4]  Gillian Smith,et al.  Analyzing the expressive range of a level generator , 2010, PCGames@FDG.

[5]  Julian Togelius,et al.  Search-Based Procedural Content Generation: A Taxonomy and Survey , 2011, IEEE Transactions on Computational Intelligence and AI in Games.

[6]  Michael Mateas,et al.  Answer Set Programming for Procedural Content Generation: A Design Space Approach , 2011, IEEE Transactions on Computational Intelligence and AI in Games.

[7]  Michael Mateas,et al.  Social Story Worlds With Comme il Faut , 2014, IEEE Transactions on Computational Intelligence and AI in Games.

[8]  Michael Mateas,et al.  Tracery: An Author-Focused Generative Text Tool , 2015, ICIDS.

[9]  Julian Togelius,et al.  Constructive generation methods for dungeons and levels , 2016 .

[10]  Richard Evans,et al.  Versu—A Simulationist Storytelling System , 2014, IEEE Transactions on Computational Intelligence and AI in Games.

[11]  Sumit Gulwani,et al.  Dimensions in program synthesis , 2010, Formal Methods in Computer Aided Design.

[12]  Michael Mateas,et al.  Expressionist: An Authoring Tool for In-Game Text Generation , 2016, ICIDS.

[13]  Simon Colton,et al.  Mechanic Miner: Reflection-Driven Game Mechanic Discovery and Level Design , 2013, EvoApplications.

[14]  Michael Mateas,et al.  The micro-rhetorics of Game-o-Matic , 2012, FDG.

[15]  Julian Togelius,et al.  Procedural Content Generation in Games , 2016, Computational Synthesis and Creative Systems.

[16]  M. Mateas,et al.  Architecture, Authorial Idioms and Early Observations of the Interactive Drama Facade , 2002 .

[17]  Eric Butler,et al.  A Programming Model for Boss Encounters in 2D Action Games , 2021, Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment.

[18]  Julian Togelius,et al.  The search-based approach , 2016 .

[19]  Sumit Gulwani,et al.  FlashMeta: a framework for inductive program synthesis , 2015, OOPSLA.

[20]  Chris Martens Ceptre: A Language for Modeling Generative Interactive Systems , 2015, AIIDE.

[21]  Frédéric Maire,et al.  Evolutionary Game Design , 2011, IEEE Transactions on Computational Intelligence and AI in Games.

[22]  Tom Schaul,et al.  A video game description language for model-based or interactive learning , 2013, 2013 IEEE Conference on Computational Inteligence in Games (CIG).

[23]  Marcel Urner Formal Syntax And Semantics Of Programming Languages A Laboratory Based Approach , 2016 .

[24]  Mark O. Riedl,et al.  Automatic Game Design via Mechanic Generation , 2014, AAAI.

[25]  Alexander Aiken,et al.  Stochastic superoptimization , 2012, ASPLOS '13.

[26]  Joris Dormans,et al.  Adventures in level design: generating missions and spaces for action adventure games , 2010, PCGames@FDG.

[27]  Michael Mateas,et al.  Characters Who Speak Their Minds: Dialogue Generation in Talk of the Town , 2016, AIIDE.