2006 IEEE IS

Maria Cutumisu, Curtis Onuczko, Matthew McNaughton, Thomas Roy, Jonathan Schaeffer, Allan Schumacher, Jeff Siegel, Duane Szafron, Kevin Waugh, Mike Carbonaro, Harvey Duff, Stephanie Gillis, ScriptEase: A generative/adaptive programming paradigm for game scripting , Science of Computer Programming, 67 (1), June 2007, 32-55. abstract or pdf.


Abstract:

The traditional approach to implementing interactions between a player character (PC) and objects in computer games is to write scripts in a procedural scripting language. These scripts are usually so complex that they must be written by a computer programmer rather than by the author of the game story. This interruption in the game story authoring process has two distinct disadvantages: it increases the cost of game production and it introduces a disconnect between the author's intentions and the interactions produced from the programmer's written scripts. We introduce a mechanism to solve these problems. We show that game authors (non-programmers) can generate the necessary scripts for implementing meaningful interactions between the PC and game objects using a three-step process. In the first step, the author uses a generative pattern (concept) to create a high-level description of a commonly occurring game scenario. In the second step, the author uses a standard set of adaptation operations to customize the high-level description to the particular circumstances of the story that is being told. In the third step, the author presses a button that automatically generates scripting code from the adapted pattern. We describe the results of three studies in which a combined total of 56 game story authors used this three-step process to construct Neverwinter Nights game stories, using a tool called ScriptEase. We believe that this generative/adaptive process is the key to future game story scripting. More generally, this article advocates the development of adaptive programming as an alternative to current constructive programming techniques, as well as the application of adaptive programming in many domains.