Backend Engine Teacher Interface User Interface Frontend Engine
Total Page:16
File Type:pdf, Size:1020Kb
Designing an Educational Game Creator Goals for Non-Programmers Patrick Costello ([email protected]) Dawson Zhou ([email protected]) Results Advisor: Steve Cooper Process A screenshot from Neverwinter Nights 2. Ideally, teachers would be able to create games of this complexity and detail. A proof-of-concept screenshot of the teacher UI. A teacher creating a game using our software uses a simple drag-and-drop interface to design games of arbitrary Teacher Interface User Interface complexity. The blocks and connections shown in the interface represent the un- derlying states and transitions that drive the game logic in the backend engine. The role of video games in education is a relatively new and unexplored The teacher interface is designed to follow the model of flow-chart based design sys- The user interface is designed to be as modular as possible. This design choice was made field. Studies have suggested that effective use of interactive entertainment tems. An example system is Lego Mindstorm, which is designed for non-programmers. to make fast-iteration development possible, as well as making it easy to switch to differ- can significantly improve how a student absorbs material. Teachers, expe- This presentation medium allows the game designer to very easily understand the over- ent platforms. One of the most important design goals was to make this accessible to as rienced in interacting with students on a regular basis, are in the perfect all progression that the game player will follow. The designer can use the interface as many students as possible. This means the user interface must support Mac/PC/Linux as position to design both their game editor, and their storyboard. well as machines where native code execution is not possible, such as a public machine in educational games. a library. This would require support for a user interface that could be run in the browser. The flow-chart design system fits the interaction-response model on which the Backend However, the extensive programming experience typically required in vid- Engine is built. This allows the designer to have a full understanding of the underlying Development began with a text-based user interface. At the same time, we began research eo game development limits the degree to which most teachers can actually design of the game, without having to handle the tough programming aspects. into possible game engines to use for graphics. The three main engines considered were: develop educational interactive software. Whether building a game from OGRE, Irrlicht, and Panda3D. We decided to begin with Irrlicht because of its easier scratch or from an existing game engine, the developer needs significant The major control points that the game designer controls are transitions. These transi- learning curve. However, we designed the user interface module such that we could cre- familiarity with programming in order to implement a proper video game. tions are scriptable in Python -- but can be expanded to many other languages -- and ate another interface built with a different graphics engine. import re allow the designer to have complete control over how the game moves from one state def state_transition_0(am, gm): Game creators requiring no such experience exist, but none are geared spe- to the next. However, with the use of built-ins and community generated content, the if re.match(‘([tT]he )?[Dd]eclaration [Oo]f [Ii]ndependence’, cifically toward educational games. In this project, we built an implemen- designer can make all these choices without ever seeing a line of code. am[‘free_response_answer’]): tation of a simple game creator designed to allow teachers with little to gm[‘response_text’] = “““Great answer! The Declaration of no programming experience to develop meaningful, educational games for Independence is one of the most important documents in the their students. creation of the United States.””” return 0 else: gm[‘response_text’] = “Nope, not quite. Why don’t you try again!” return 1 The backend engine supports customizable scripts that determine the outcome of state transitions based on interactions that the player has with the game. In this particular example, the Python script checks the player’s response to a free response question. By using regular expressions, it allows a great deal of flexibil- ity in the answers it will accept as correct. The script also determines the game’s Backend Engine Frontend Engine textual response to the player’s answer. The frontend engine handles player interactions when running the game created by the game designer. When the player performs a particular action while playing the game, The backend engine handles all of the logic that runs the actual game created by the user. the frontend engine interprets this as an interaction and determines any relevant input One central concept that drove our implementation of the game creator was that the game information, passing that information along to the backend engine. In order to keep the should be modeled as a deterministic finite state machine. States represent a player’s cur- backend engine completely oblivious to implementation specific details regarding inter- rent progress through the game, while transitions represent accomplishments and events actions, the frontend engine first translates its input into a format that the backend engine that drive the player towards an end goal. This design offered the most flexibility in understands. It has a number of different components which take specific interaction types potential game designs in conjunction with being presentable and relatively intuitive to and translates them to generic attribute maps that the backend engine can then utilize. Future Work teachers using our software to create games. The frontend engine consists of a single main module and a hierarchy of interaction The appeal of the state machine design lies in the ability to create arbitrarily complex prompt types and interaction types. For example, a game which supports multiple choice game logic through the combination of simple primitives, namely states and transitions. questions would allow the player to speak to a character in the game, generating a Multi- Furthermore, for teachers with minimal programming experience in select scripting lan- pleChoicePrompt object carrying question and answer information. Her response would guages, we provide a means by which transitions can be completely customized. The then be recorded in a MultipleChoiceAnswer object, which would be passed back to the backend engine executes scripts in order to determine the outcome of state transitions. backend engine in order to determine the next course of action based on her answer. • Use of a graphics engine to support graphical games These scripts can be generated automatically or coded by the teacher creating the game. • Intuitive, simple UI for teachers to use to create games See the “Results” section for an example. • Pre-implemented transition scripts • Support for more scripting languages for transitions • Proof-of-concept game created with our game creator • Support for community generated content A screenshot from the game design interface in Neverwinter Nights 2. • More interaction types Games with its level of complexity tend to have intimidating interfaces. • Support for creation of web based games.