In one sentence: The designer sketches a space of appropriate artifacts with a constraint program, and the machine samples an artifact from the space; upon examining the artifact, the designer refines the sketch.
mechanizing_exploratory_game_design_book.pdf (4.3 MB)
@phdthesis{smith_mechanizing_2012, author = {Adam M. Smith}, title = {Mechanizing Exploratory Game Design}, school = {University of California, Santa Cruz}, month = {December}, year = {2012} }
Archived in the California Digital Library
Added in September 2024: Listen to the dissertation in the form of a machine-genereted 9-minute podcast episode that unforuntately contains many embarrasing misinterpretations (the sort of thing that
Game design is an art form that deals with inherently interactive artifacts. Game designers craft games (assembled from rule systems and content), but they really seek to manipulate play: the interaction between games and players. When developing new games that are similar to past games, a designer may rely on previous experience with related designs and relatively easy access to players familiar with conventional design choices. When exploratorily venturing into uncharted territory, uncovering games that afford novel modes of play, there is a need for practical and technological interventions that improve a designer's access to feedback from the unfamiliar design scenario. In the interdisciplinary space between game design, design studies, computational creativity, and symbolic artificial intelligence (AI), my program of mechanizing exploratory game design aims to amplify human creativity in game design; enable new game designs through deep, play-time design automation; and demonstrate novel tools that respect the concerns of design problems.
This dissertation advances a practice of modeling design spaces as logic programs in the answer set programming (ASP) paradigm. Answer set programs can concisely encode the key conditions of artifact appropriateness, and, paired with state of the art algorithms for combinatorial search and optimization, they yield efficient and expressively sculptable artifact generators. I present three major applications of ASP-encoded design spaces to exploratory game design: a powerful machine playtesting tool for analyzing designer-specified games, a novel game prototype employing machine-generated rulesets bound by iteratively discovered constraints, and a suite of level design automation tools that offer unprecedented control over the aesthetic and pedagogical properties of puzzles for a widely deployed educational game. This practice is further developed in a series of introductory programming and advanced modeling tutorials. By formally modeling design spaces as concise and authorable logic programs (and without the need for original algorithm design and maintenance), designer-programmers are broadly empowered to quickly build and evolve the in-house automation required by their own exploratory game design projects. These claims are backed by a spreading adoption of this practice by others and deployed applications to at-scale game design projects.
Taken as a whole, this dissertation offers new insight into the nature of game design in relation to other design disciplines, a new design research practice for understanding how design thinking can and should be mechanized, a novel model of transformational creativity suitable for discussing both humans and machines, and a set of new applications for symbolic AI that simultaneously broaden the applicability and tax the limits of this automated reasoning infrastructure.
1 Introduction 1.1 Goals 1.1.1 Amplify creativity of human game designers 1.1.2 Support deep, play-time design automation 1.1.3 Demonstrate tools that respect design problems 1.2 Research Context 1.2.1 Game Design 1.2.2 Design Studies 1.2.3 Computational Creativity 1.2.4 Symbolic AI 1.3 Contributions 1.3.1 Mechanizing Design Spaces 1.3.2 Situating Mechanized Design 1.4 Approach 1.4.1 Design Spaces 1.4.2 Computational Caricature 1.4.3 Target Audience: Procedurally Literate Designer-Programmers 1.4.4 Automating Logical Reasoning 1.4.5 Artifacts as Communication 1.5 Outline of Dissertation 2 Interdisciplinary Context & Motivations 3 Game Design 3.1 Best Practices 3.1.1 Prototyping 3.1.2 Playtesting 3.1.3 Balancing 3.2 Folks Psychology in Game Design 3.3 Call for Structure 3.4 Procedural Content Generation 3.4.1 PCG Meets Game Design 3.4.2 Typical Architectures for Content Generators 3.5 Attempts at Formalization and Automation 3.5.1 MDA 3.5.2 A Factoring of the Concerns in Game Design 3.5.3 Ludi 3.5.4 A Generic Framework 3.6 Game Design as a Design Discipline 4 Design Studies 4.1 The Relationship between Science and Design 4.2 Methods of Design Studies 4.3 Vocabulary of Design 4.3.1 Glossary 4.4 The Automated Architect 5 Computational Creativity 5.1 Vocabulary of Creativity 5.1.1 "Creativity" 5.1.2 Novelty, Value, and Surprise 5.1.3 Process vs. Product vs. Producer 5.1.4 Combinatorial, Exploratatory, and Transformational Creativity 5.1.5 Closed Loops 5.2 Computational Creativity Meets Game Design 5.3 Mechanization and Computational Creativity 6 Symbolic AI 6.1 Logic Programming 6.1.1 Deductive Logic Programming 6.1.2 Inductive Logic Programming 6.1.3 Abductive Logic Programming 6.1.4 Prolog 6.1.5 Constraint Logic Programming 6.1.6 Answer Set Programming 6.2 Standard Solutions 6.3 Standard Problems 6.3.1 Backtracking and Completeness 6.3.2 Heuristics 6.3.3 Consistency and Propagation 6.3.4 Constraint Learning 6.3.5 Randomness and Restarts 6.4 General Game Playing 6.4.1 History 6.4.2 Rule Representations 6.4.3 General Game Playing vs. Action Planning 6.5 Super-symbolic AI: The Knowledge Level 7 Synthesis of Goals 8 Mechanizing Appositional Reasoning 8.1 Introduction 8.2 Appositional and Abductive Reasoning 8.3 Design Spaces 8.4 Requirements for Knowledge Representations 8.4.1 Constructivity 8.4.2 Constraint 8.4.3 Evolution 8.4.4 Analysis 8.5 Means of Mechanization 8.5.1 SAT Solvers 8.5.2 Abductive Logic Programming 8.5.3 Answer Set Programming 8.5.4 Future Demands 8.6 Conclusion 9 Computational Caricature 9.1 Introduction 9.2 Computational Caricature 9.2.1 Visual Caricature 9.2.2 Procedural Portraits and Computational Caricature 9.3 Computational Caricature of the Game Design Process 9.4 Exemplars 9.4.1 A Designer in a Box 9.4.2 Cooperating with the Machine 9.4.3 Imagining Gameplay 9.4.4 Summary 9.5 Conclusion 10 ASP for Design Automation 10.1 ASP in Context 10.1.1 AnsProlog as a Little Language 10.1.2 Perspective 10.2 Design Spaces in ASP 10.2.1 Representing Artifacts 10.2.2 Representing Spaces 10.2.3 Modeled and Unmodeled Properties 10.2.4 Modeling, Solving, Interpretation, and Refinement 10.3 Programming Tutorials 10.3.1 Hello Soggy World 10.3.2 Graph Coloring, Complexity, and Visualization 10.3.3 Golomb Rulers, Optimization, and Numerical Constraints 10.4 Existing Design Automation Examples 10.4.1 Diorama 10.4.2 Anton 10.4.3 Toast 10.5 Modeling Tutorials 10.5.1 Chess Mazes 10.5.2 Strategy Game Maps 10.5.3 Platformer Levels with Support for Mixed-Initiative Interaction 11 Applied Systems Overview 12 Ludocore 12.1 Overview 12.2 Building Games on the Event Calculus 12.3 The Logical Game Engine 12.3.1 State, Events, and Consequences 12.3.2 Player Model Interface 12.3.3 Relation to the General Event Calculus 12.3.4 Using Player and Nature Models 12.4 Ludocore in Action 12.4.1 Gameplay Trace Inference 12.4.2 Modifying Rules and Configuration 12.4.3 Using Player and Nature Models 12.5 Applications Enabled 12.5.1 Game Design 12.5.2 Crafting Game Playing Agents 12.6 Conclusion 13 Biped 13.1 Overview 13.2 Playtesting Background 13.2.1 Playtesting with Humans 13.2.2 Playtesting with Machines 13.3 System Overview 13.4 Example Prototype 13.4.1 Game Mechanics 13.4.2 UI Bindings 13.4.3 Human Playtesting 13.4.4 Machine Playtesting 13.5 Conclusions and Future Work 14 Variations Forever 14.1 Overview 14.1.1 Variations Forever as a Game Project 14.1.2 Variations Forever as a Research Project 14.2 Related Work 14.3 Repersenting Game Rulesets in Logical Terms 14.4 VF's Generative Space 14.5 Zooming in on Games of Interest 14.6 Generating Playable Mini-games 14.6.1 Game Generator 14.6.2 Game Engine 14.7 Discussion 14.6.1 Coupling between Generator and Engine 14.6.2 Tradeoffs in Levels of Abstraction 15.6.3 Evaluation 14.8 Conclusion 15 Refraction Tools 15.1 Introduction 15.2 Related Work 15.3 Answer Set Programming 15.3.1 ASP for PCG 15.4 Refraction Puzzle Design 15.5 Problem Formulation 15.5.1 Mission Generation 15.5.2 Grid Embedding 15.5.3 Puzzle Solving 15.6 System Descriptions 15.6.1 Feed-Forward Mission Generation 15.6.2 Grid Embedding with DFS 15.6.3 Puzzle Solving with DFS 15.6.4 Grid Embedding with ASP 15.6.5 Mission Generation with ASP 15.6.6 Puzzle Solving with ASP 15.7 Analysis 15.7.1 Quantitative Comparisons 15.7.2 Qualitative Comparisons 15.8 Conclusion 16 Rational Curiosity 16.1 Introduction 16.2 Game Design Practices 16.3 An Analogy with Science 16.3.1 Scientific Practices 16.3.2 Automated Discovery 16.4 Newell's Knowledge Level 16.5 Creativity as Rational Curiosity 16.5.1 Transformational Creativity in Game Design 16.6 Discussion 16.6.1 Computational Creativity in Game Design 16.6.2 New Perspective for Computational Creativity 16.7 Conclusion 17 Evaluation 17.1 ASP for PCG 17.2 Applied Systems 17.2.1 Ludocore 17.2.2 Biped 17.2.3 Variations Forever 17.2.4 Refraction Tools 17.3 Recap 18 Conclusion 18.1 Goals 18.1.1 Amplify creativity of human game designers 18.1.2 Support deep, play-time design automation 18.1.3 Demonstrate tools that respect design problems 18.2 Research Context 18.2.1 Game Design 18.2.2 Design Studies 18.2.3 Computational Creativity 18.2.4 Symbolic AI 18.3 Contributions 18.4 Approaches 18.4.1 Design Spaces 18.4.2 Computational Caricature 18.4.3 Target Audience: Procedurally Literate Designer Programmers 18.4.4 Automating Logical Reasoning 18.4.5 Artifacts as Communication 18.5 Future Work 18.5.1 Two-level Design Spaces 18.5.2 Integration infrastructure 18.5.3 Broader base of modeling examples 18.5.4 Automating discovery of design knowledge 18.6 Epilogue