Qt4600g227 Nosplash 705E86d
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSITY OF CALIFORNIA SANTA CRUZ MECHANIZING EXPLORATORY GAME DESIGN A dissertation submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in COMPUTER SCIENCE by Adam Marshall Smith December 2012 The Dissertation of Adam Marshall Smith is approved: Professor Michael Mateas, Chair Professor Jim Whitehead Associate Professor Noah Wardrip-Fruin Dean Tyrus Miller Vice Provost and Dean of Graduate Studies Copyright c by Adam Marshall Smith 2012 Table of Contents List of Figures x List of Tables xii Abstract xiii Dedication xv Acknowledgments xvi 1 Introduction 1 1.1 Goals . .3 1.1.1 Amplify creativity of human game designers . .3 1.1.2 Support deep, play-time design automation . .4 1.1.3 Demonstrate tools that respect design problems . .5 1.2 Research Context . .5 1.2.1 Game Design . .6 1.2.2 Design Studies . .6 1.2.3 Computational Creativity . .7 1.2.4 Symbolic AI . .7 1.3 Contributions . .8 1.3.1 Mechanizing Design Spaces . .9 1.3.2 Situating Mechanized Design . 11 1.4 Approach . 12 1.4.1 Design Spaces . 13 1.4.2 Computational Caricature . 13 1.4.3 Target Audience: Procedurally Literate Designer-Programmers . 13 1.4.4 Automating Logical Reasoning . 14 1.4.5 Artifacts as Communication . 14 1.5 Outline of Dissertation . 15 2 Interdisciplinary Context & Motivations 17 iii 3 Game Design 19 3.1 Best Practices . 20 3.1.1 Prototyping . 21 3.1.2 Playtesting . 23 3.1.3 Balancing . 25 3.2 Folk Psychology in Game Design . 27 3.3 Call for Structure . 28 3.4 Procedural Content Generation . 32 3.4.1 PCG Meets Game Design . 33 3.4.2 Typical Architectures for Content Generators . 35 3.5 Attempts at Formalization and Automation . 38 3.5.1 MDA . 38 3.5.2 A Factoring of the Concerns in Game Design . 39 3.5.3 Ludi .................................. 41 3.5.4 A Generic Framework . 42 3.6 Game Design as a Design Discipline . 44 4 Design Studies 46 4.1 The Relationship between Science and Design . 47 4.2 Methods of Design Studies . 49 4.3 Vocabulary of Design . 50 4.3.1 Glossary . 55 4.4 The Automated Architect . 57 5 Computational Creativity 60 5.1 Vocabulary of Creativity . 61 5.1.1 \Creativity" . 61 5.1.2 Novelty, Value, and Surprise . 62 5.1.3 Process vs. Product vs. Producer . 63 5.1.4 Combinational, Exploratory, and Transformational Creativity . 64 5.1.5 Closed Loops . 67 5.2 Computational Creativity Meets Game Design . 68 5.3 Mechanization and Computational Creativity . 70 6 Symbolic AI 73 6.1 Logic Programming . 75 6.1.1 Deductive Logic Programming . 77 6.1.2 Inductive Logic Programming . 78 6.1.3 Abductive Logic Programming . 80 6.1.4 Prolog . 81 6.1.5 Constraint Logic Programming . 82 6.1.6 Answer Set Programming . 83 6.2 Standard Problems . 85 6.3 Standard Solutions . 87 6.3.1 Backtracking and Completeness . 88 iv 6.3.2 Heuristics . 89 6.3.3 Consistency and Propagation . 89 6.3.4 Constraint Learning . 90 6.3.5 Randomness and Restarts . 91 6.4 General Game Playing . 93 6.4.1 History . 93 6.4.2 Rule Representations . 94 6.4.3 General Game Playing vs. Action Planning . 97 6.5 Super-symbolic AI: The Knowledge Level . 99 7 Synthesis of Goals 102 8 Mechanizing Appositional Reasoning 105 8.1 Introduction . 106 8.2 Appositional and Abductive Reasoning . 107 8.3 Design Spaces . 109 8.4 Requirements for Knowledge Representations . 110 8.4.1 Constructivity . 111 8.4.2 Constraint . 112 8.4.3 Evolution . 113 8.4.4 Analysis . 113 8.5 Means of Mechanization . 114 8.5.1 SAT Solvers . 114 8.5.2 Abductive Logic Programming . 116 8.5.3 Answer Set Programming . 117 8.5.4 Future Demands . 118 8.6 Conclusion . 120 9 Computational Caricature 121 9.1 Introduction . 122 9.2 Computational Caricatures . 124 9.2.1 Visual Caricature . 124 9.2.2 Procedural Portraits and Computational Caricature . 125 9.3 Computational Caricature of the Game Design Process . 127 9.4 Exemplars . 129 9.4.1 A Designer in a Box . 130 9.4.2 Cooperating with the Machine . 131 9.4.3 Imagining Gameplay . 133 9.4.4 Summary . 135 9.5 Conclusion . 136 10 Answer Set Programming for Design Automation 138 10.1 ASP in Context . 139 10.1.1 AnsProlog as a Little Language . 140 10.1.2 Perspectives . 143 v 10.2 Design Spaces in ASP . 144 10.2.1 Representing Artifacts . 147 10.2.2 Representing Spaces . 148 10.2.3 Modeled and Unmodeled Properties . 148 10.2.4 Modeling, Solving, Interpretation, and Refinement . 150 10.3 Programming Tutorials . 155 10.3.1 Hello Soggy World . 155 10.3.2 Graph Coloring, Complexity, and Visualization . 158 10.3.3 Golomb Rulers, Optimization, and Numerical Constraints . 165 10.4 Existing Design Automation Examples . 171 10.4.1 Diorama ............................... 171 10.4.2 Anton ................................ 176 10.4.3 Toast ................................. 179 10.5 Modeling Tutorials . 182 10.5.1 Chess Mazes . 182 10.5.2 Strategy Game Maps . 193 10.5.3 Platformer Levels with Support for Mixed-Initiative Interaction . 201 11 Applied Systems Overview 214 12 Ludocore 217 12.1 Overview . 217 12.2 Building Games on the Event Calculus . 219 12.3 The Logical Game Engine . 220 12.3.1 State, Events, and Consequences . 223 12.3.2 Player Model Interface . 226 12.3.3 Relation to the General Event Calculus . 227 12.4 Ludocore in Action . 229 12.4.1 Gameplay Trace Inference . 229 12.4.2 Modifying Rules and Configuration . 232 12.4.3 Using Player and Nature Models . 234 12.5 Applications Enabled . 235 12.5.1 Game Design . 235 12.5.2 Crafting Game Playing Agents . 237 12.6 Conclusion . ..