UC San Diego UC San Diego Electronic Theses and Dissertations
Total Page:16
File Type:pdf, Size:1020Kb
UC San Diego UC San Diego Electronic Theses and Dissertations Title Three Paradigms for Mixing Coding and Games: Coding in a Game, Coding as a Game, and Coding for a Game Permalink https://escholarship.org/uc/item/9999c81v Author Foster, Stephen Publication Date 2015 Peer reviewed|Thesis/dissertation eScholarship.org Powered by the California Digital Library University of California UNIVERSITY OF CALIFORNIA, SAN DIEGO Three Paradigms for Mixing Coding and Games: Coding in a Game, Coding as a Game, and Coding for a Game A dissertation submitted in partial satisfaction of the requirements for the degree Doctor of Philosophy in Computer Science by Stephen R. Foster Committee in charge: Professor William G. Griswold, Co-Chair Professor Sorin Lerner, Co-Chair Professor Gail Heyman Professor Ranjit Jhala Professor Scott Klemmer 2015 Copyright Stephen R. Foster, 2015 All rights reserved. The dissertation of Stephen R. Foster is approved, and it is acceptable in quality and form for publication on microfilm and electronically: Co-Chair Co-Chair University of California, San Diego 2015 iii DEDICATION To all the people. iv EPIGRAPH I’m standing right behind you. —Anonymous v TABLE OF CONTENTS Signature Page . iii Dedication . iv Epigraph . v Table of Contents . vi List of Figures . x Acknowledgements . xii Vita ......................................... xiv Abstract of the Dissertation . xvi Chapter 1 Introduction . 1 1.1 The Big Problem . 1 1.1.1 American Economy . 2 1.1.2 Racial and Gender Inequity . 3 1.1.3 Deepening of Entrenched Inequities . 4 1.1.4 The Hope . 5 1.2 The Video Game Solution . 6 1.3 Three Sub-Genres . 9 1.3.1 Prior C[in]G Systems . 11 1.3.2 Prior C[as]G Systems . 13 1.3.3 Prior C[for]G Systems . 13 1.3.4 What this thesis is not about . 15 1.4 How our systems fit together historically . 16 Chapter 2 Related Work . 18 2.1 Definitions of Games and Coding Games . 18 2.2 Educational games . 19 2.3 What should a coding game do? . 21 2.4 How do we evaluate coding games? . 23 2.4.1 Learning-related Metrics . 23 2.4.2 Gameplay-related metrics . 26 2.5 Conclusion . 27 vi Chapter 3 CodeSpells: Coding in a Game . 31 3.1 Related Work . 32 3.1.1 The Language Debate: Accessibility vs Authenticity 32 3.1.2 Learning Theory . 33 3.1.3 CodeSpells . 35 3.1.4 Spells as Java Code . 37 3.1.5 Program as Spells . 45 3.1.6 Embodiment . 46 3.1.7 Automated Feedback in CodeSpells . 48 3.1.8 The IDE in CodeSpells . 49 3.1.9 Community Support in CodeSpells . 50 3.2 Multiplayer . 51 3.2.1 Two Design Principles . 51 3.3 Related Work . 54 3.4 Chess and StarCraft II . 54 3.4.1 Why these games? . 54 3.4.2 Investigating chess and StarCraft II . 56 3.5 Theory into Practice . 68 3.5.1 Overview . 68 3.5.2 Design and Implementation . 68 3.5.3 Evaluation . 70 3.5.4 Future Work . 76 3.6 Conclusion . 77 3.7 Acknowledgements . 78 Chapter 4 Programming By Gaming: Coding as a Game . 79 4.1 Introduction . 79 4.2 Fully Seamless Design . 81 4.2.1 Programming by Gaming . 81 4.2.2 Related work . 82 4.2.3 The Orb Game . 83 4.3 Method . 92 4.4 Results . 96 4.5 Discussion . 100 4.6 Conclusion . 100 4.7 Acknowledgements . 101 Chapter 5 G(ATS): Coding for a Game . 102 5.1 Introduction . 102 5.2 Related Work . 104 5.2.1 Coding Games vs Other Games . 107 5.2.2 Minecraft . 108 5.2.3 Evaluations Overview . 109 vii 5.3 Method . 110 5.4 Results . 111 5.5 Method . 112 5.6 Results . 115 5.7 Method . 120 5.8 Results . 124 5.8.1 Question 1 . 124 5.8.2 Question 2 . 125 5.9 Discussion . 126 5.9.1 Collaboration . 127 5.9.2 Hybrid Path . 127 5.10 Conclusion of Part 1 . 129 5.11 Part 2: Automated Tutoring + Blockbuster Game . 129 5.12 Background . 132 5.13 Methodology . 133 5.13.1 Research Questions . 133 5.14 Results . 137 5.14.1 Use outside of class . 137 5.14.2 Off-task behaviour during class . 139 5.14.3 Post-test results . 142 5.15 Discussion . 143 5.15.1 The G(ATS) Double-Edged Sword . 143 5.15.2 Off-task behaviour . 144 5.15.3 “Unproductive code execution” . 146 5.16 Beyond Minecraft and Coding: G(ATS) Design . 147 5.16.1 Educational game design versus G(ATS) design . 148 5.17 Conclusion . 149 5.18 Acknowledgements . 150 Chapter 6 Design Take-aways and Conclusions . 151 6.1 Overview of Contributions . 151 6.1.1 Coding in a Game . 152 6.1.2 Coding as a Game . 154 6.1.3 Coding for a Game . 155 6.2 Design space . 156 6.2.1 IDE/PL Skills Required . 157 6.2.2 Game Design Skills Required . 159 6.2.3 Degree of integration . 160 6.2.4 Mainstream buy-in . 162 6.2.5 Development Case Studies . 163 6.3 Discussion of Other Contributions . 167 6.3.1 Gender . 167 6.3.2 Player communities . 168 viii 6.3.3 Games and pair-playing . 168 6.4 Concluding Remarks . 169 Bibliography . 171 ix LIST OF FIGURES Figure 3.1: It is difficult to visually assess how many rocks are within a particular radius. 42 Figure 3.2: With a visual area in game, it is easier to see how many rocks are within the radius (zero in this case). 42 Figure 3.3: Results of a survey investigating StarCraft II players’ training habits – aside from merely playing StarCraft II. 63 Figure 3.4: Results of a survey investigating chess players’ perceptions of how proficient one can get with and without the benefit of metacognitive activities. For example: 48% of those surveyed believed that the level of Expert could be achieved by only playing chess . 64 Figure 3.5: Results of a survey investigating StarCraft II players’ perceptions of how proficient one can get with and without the benefit of metacogni- tive activities. For example: 34% of those surveyed believed that the level of Grandmaster could be achieved by only playing StarCraft II. 65 Figure 3.6: Results of a survey investigating chess players’ perceptions of what makes a higher ranked player better than those in a slightly lower- ranked category. 66 Figure 3.7: Results of a survey investigating SC2 players’ perceptions of what makes a higher ranked player better than those in a slightly lower- ranked category. 67 Figure 3.8: A graph of concepts detected during corpus analysis of 5 of com- monly used programs. 74 Figure 4.1: On its surface, The Orb Game is a 2D Mario-like game. 80 Figure 4.2: Sample flow in the orb game. 88 Figure 4.3: Another sample flow in the orb game. 91 Figure 4.4: The runtime stack visualized as an actual stack of games during execution. 92 Figure 4.5: Seven of the subjects completed at least 2 benchmarks. 96 Figure 5.1: Two examples of students experimenting with things at ‘epic scale’. 120 Figure 5.2: Examples of students experimenting with coding as a ‘power tool’ for building. ..