Many students have an active interest in playing computer games on a variety of different devices. Some students want to transform their interest in game play to game design or game making. Many games employ game mechanics and software development kits (SDKs) that are designed to encourage or embrace game making or modding. While making and modding are important modalities for learning about game design, they primarily rely on informal game design practices and observational learning (e.g., watching online tutorial videos). Such learning modality may be effective, but may also be ad hoc, difficult to systematize and assess, and thus often inefficient or ineffective.
The question now is how best to engage students who want to learn about game design and development, but who may not be ready to commit to a multi-year educational program, or who want to try before they buy into such a program. For example, does computer game development represent an opportunity to introduce high school or undergraduate students to Computer Science or Software Engineering? Can students who know little about CS, but who are familiar with computer game play, social media usage, and Web browsing learn about game design, SE, or CS principles without first learning computer programming? What is an effective way to engage students or others new to game design to learn replicable methods of inquiry and discovery through game design and development? Questions like these helped motivate a study conducted by Prof. Walt Scacchi.
His investigation centers around a small case study where a high school student engaged as an ISR Summer intern in 2015, Mark Yampolsky, with no prior experience in computer programming or SE was directed by Scacchi to take on the task of learning how to make a new game. Along the way, the task was anticipated to surface many common challenges in SE practice. Likely challenges in requirements, design, prototyping, and playtesting were all expected to emerge, all prior to a formal education in coding or introductory level CS or SE. Game programming would be supported through an interactive game SDK that focuses attention to design of an event-driven, rule-based game, while providing parametric domain-specific code/expression or scripting templates that can be instantiated with data values or control variables. Coding is thus often implicit.
The results of this case study are detailed in a research paper titled “Learning Game Design and Software Engineering through a Game Prototyping Experience: A Case Study” by Yampolsky and Scacchi and were presented at the Fifth Int’l Workshop on Computer Games and Software Engineering (GAS’ 2016), held at the 38th Int’l Conference on Software Engineering in Austin, TX in May. A central focus of the study was the analysis of the functional and non-functional requirements, design, and operational prototype of a new Web-based, single user, multi-level game for helping high school and undergraduate students learn about optics and beam physics (and a little quantum teleportation), and how to playfully solve problems in optical beam routing through different configurations of mirrors and lenses. The resulting game prototype addresses more than a dozen functional and non-functional requirements, and its architecture configures six sets of event-processing rules, totaling more than 120 rules. Overall, the approach was successful and can serve as a candidate for follow-on studies that seek to explore the Software Engineering First approach to learning game development.
For more information, contact Prof. Scacchi.