ScriptEase - A Demonstration of Ambient Behavior Generation for Computer Role-Playing Games Maria Cutumisu, Matthew McNaughton, Duane Szafron, Thomas Roy, Curtis Onuczko, Jonathan Schaeffer, Mike Carbonaro (*) Department of Computing Science, University of Alberta (*) Department of Educational Psychology, University of Alberta Edmonton, Canada {meric, mcnaught, duane, troy, onuczko, jonathan}@cs.ualberta.ca, mike.carbonaro@ualberta.ca Abstract ScriptEase is a publicly-available visual tool that enables game designers to easily create complex interactive stories for computer role-playing games (CRPGs), without programming. In particular, ScriptEase facilitates the automatic generation of scripting code for ambient behaviors of the numerous non-player characters (NPCs) that populate the CRPG world. ScriptEase generates this scripting code using generative design patterns, responding to the challenge of creating entertaining and non-predictable behaviors for NPCs, without the effort of writing custom complex scripts for each NPC. This demonstration describes the steps of generating complex and non-repetitive ambient behavior scripts using generative behavior patterns with ScriptEase, in the context of Neverwinter Nights, a CRPG from BioWare Corp. Manual Scripting vs. ScriptEase Computer role-playing games (CRPGs) are coming to rely increasingly on the sophistication and excitement of their stories rather than just the realism of their graphics. Neverwinter Nights (NWN) is an award-winning CRPG from BioWare Corp. that uses the NWScript language to expose powerful scripting facilities to professional and amateur game designers. For each scripted object in the game, this text-based scripting language is used to specify behaviors that run in response to game events. The construction of a complex story requires the designer to script a considerable number of interacting game objects, such as props and non-player characters (NPCs). The large number of objects in a CRPG virtual world requires game designers to focus their scripting effort on a privileged set of objects vital to the story line. This situation has a negative effect on the depth and complexity of the game experience. Many NPCs that could potentially enrich the game adventure, instead display repetitive or boring behaviors, due to designers’ concentrated efforts on developing NPCs directly involved in the storyline. In addition to being time consuming, manual scripting causes errors due to copying and pasting scripts among similar objects and from mislabeled objects with obscure names such as “M1S04CPATRON”. This problem is exasperated by the growing number of game designers that do not have programming skills, who must rely on programmers to write their scripts. Finally, testing non- linear stories with thousands of scripts introduces additional challenges for the game design process. ScriptEase offers a fast and easy way of solving these problems through the use of patterns (ScriptEase 2003; McNaughton, Schaeffer, et al. 2004). Frequently occurring themes in the game, such as pull a lever – open a door, are captured using generative design patterns that can be adapted for various game situations, with no programming knowledge required. ScriptEase generates NWScript code automatically which makes scripting more productive, eliminating most common types of errors. With ScriptEase, non-programmer game designers can create more complex and entertaining stories. We have identified four types of patterns (McNaughton, Cutumisu, et al. AAAI 2004): encounter patterns – for generating scripts attached to inanimate objects, behavior patterns – for generating scripts attached to creatures, dialog patterns – for generating conversation scripts, and plot patterns - for generating scripts that control story plots. This demonstration introduces behavior patterns by showing the steps used to create ambient behaviors for NPCs. Ambient Behavior Patterns Behavior patterns encapsulate ambient behaviors for NPCs. We constructed three ambient behavior patterns that are responsible for all the interactions between the NPCs in a commonly occurring CRPG bar scene. We illustrate the functionality of ScriptEase behavior patterns using this basic set of ambient behaviors, although other complex behaviors can be produced by combining the component sub-behaviors in alternative ways. Server: proactive behaviors: approach a random customer, approach the bar, offer a drink to the nearest customer, and do nothing (except for basic default ambient behaviors such as yawn, stretch, or look into the distance); reactive behaviors: make a trip to the storeroom to fetch supplies when asked by the owner, respond when a drink offer is accepted by a customer,