A new form of social interaction among humans has gained tremendous importance over the last decade: computer games. A recent trend is to blur the boundary between game designers and game players, by allowing game players to modify the game and to give free range to their own expressiveness. In modern games, players can extend or modify the game terrain, as well as the look and feel of the game characters. The involvement of game players in the creative part of game design has also been extended to the most important part of the game, namely the behavior of the game as expressed through its non-player characters (NPCs). Game players can alter the behavior of NPCs by modifying scripts that control them. Unfortunately, this aspect of today's computer games still suffers from a severe limitation, in that there are either just a few highly sophisticated NPCs, or a large number of very simple NPCs. The ultimate goal, of having the game scale to a large number of sophisticated NPCs, is not an option today. In this research, the PI will try to address this limitation by seeking answers to questions such as the following. What are suitable languages for scripting NPCs that are highly expressive yet permit sufficiently interesting character behavior? What are suitable processing algorithms for games with a large number of NPCs? How can designers fine-tune their games to balance performance with game-play? To gain a better understanding of these issues, the PI will develop a novel language (complete with optimizing compiler) that is expressive, but which can be processed efficiently with multi-query optimization from the database literature. And he will design tools for game designers to create expressive NPCs, which include techniques to allow the designers to easily adjust the quality of the simulation to improve performance. Stratagues, an open-source game engine, will serve as the concrete testbed for the initial implementation of the PI's ideas; a second implementation in a new toolkit for fast creation of scalable simulations is also planned. Finally, the PI will explore how his ideas relating to and lessons learned from games can be applied to simulations of virtual worlds beyond games, such as disaster recovery scenarios or simulation of animals and their environment. The PI expects to convincingly demonstrate that ideas and technology developed initially for programming virtual worlds (i.e., simulations) relating to computer games, can benefit and have a huge impact on scientists who currently labor to write simulations in low-level programming languages.
Broader Impacts: The outcomes of this research will empower scientists to quickly generate realistic simulations of scenarios involving large numbers of humans and/or animals while achieving performance comparable to that of specialized code requiring orders of magnitude more time to write. To this end, the PI will distribute the software he creates in this project as open source, and will furthermore develop a toolkit for rapid-prototyping of scientific simulations of rescue and disaster recovery operations.