data-mine these logs for recurring patterns. If these patterns are easy to detect, developers can take advantage of them. This type of optimization, however, is very difficult for designers or for players developing user-created content. Ideally, a game-aware runtime would have some knowledge of common patterns and be able to adjust for them automatically.
Performance is not the only reason for the runtime to monitor how the game changes over time; it is also useful for debugging. Debugging a game is not as simple as stepping through a single script. Each object is scripted individually, and these scripts can interact with one another in subtle ways. An incorrect data value in one script may be the result of an error in a completely different script. In addition, many errors are the result of user input that is not always easy to reproduce. A script designer needs some way of visualizing which scripts modify which objects and how these objects change over time. This is an application of data provenance, which is an active area of development in the field of scientific computation. Like designers, the scientists targeted by data provenance tools often have little programming experience; instead, the provenance techniques model the way they naturally think about the data. As yet, no game scripting language supports data provenance.
Data provenance is even more important if the script runtime has an unusual execution model. In the previous script to place items in a container, efficient execution involved reordering portions of the script. Instead of having the programmer debug the scripts in an execution model that is different from the one in which the bug appeared, it is best to give him or her a higher-level visualization of how that bug might have occurred.
Game-aware runtimes are more difficult to implement than language features. Language features can often be implemented piecemeal; as programming patterns are identified, new language features can be added without adversely affecting the old. Runtimes, once architected, can be very interdependent and difficult to change. For example, any changes to the order in which operations are processed will affect the debugger. Thus, while languages can have an attitude of “see what works,” runtimes need to be well understood from the beginning.
CONCLUSION
Scripting languages are an integral part of both game development and modding, and their design has huge impact on both correctness and performance of the resulting game. Game developers earn money from the
more queue: www.acmqueue.com
titles that they publish, not the engineering problems that they solve. Therefore, anything that reduces technical challenges for the developers and allows them to create more content is a welcome innovation. Advances in design patterns and scripting languages will influence the way games are programmed for years to come. Q
REFERENCES
1. White, W., Sowell, B., Gehrke, J., Demers, A. 2008.
Declarative processing for computer games. In Proceedings of the 2008 ACM SIGGRAPH Sandbox Symposium. http://doi.acm.org/10.1145/1401843.1401847.
2. Dean, J., Ghemawat, S. 2008. MapReduce: simplified data processing on large clusters. Communications of the ACM 51(1): 107-113. http://doi.acm.org/10.1145/1327 452.1327492.
LOVE IT, HATE IT? LET US KNOW feedback@acmqueue.com or www.acmqueue.com/forums
WALKER WHITE is the director of the Game Design Initiative, an interdisciplinary undergraduate program training students in the design and development of computer games, at Cornell University. He has been actively working with game companies to identify ways in which database technology can be better integrated with computer games. His current research interests include data-driven design and data management for computer games. CHRISTOPH KOCH is an associate professor of computer science at Cornell University. He is interested in both the theoretical and the systems-oriented aspects of data management, and currently works on managing uncertain data, community data-management systems, data-driven games, and Web information extraction and management. JOHANNES GEHRKE is an associate professor in the department of computer science at Cornell University. His research interests are in the areas of data mining, data privacy, scalability, and computer games and virtual worlds. He coauthored the undergraduate textbook Database Management Systems (McGraw Hill, 2002), currently in its third edition. AL DEMERS is a principal research scientist in the department of computer science at Cornell University. He has done seminal work on data replication and ubiquitous computing, and he holds several patents in these areas. His current research interests are in data management for computer games and virtual worlds. © 2008 ACM 1542-7730 /08/1100 $5.00
ACM QUEUE November/December 2008 25
References:
http://doi.acm.org/10.1145/1401843.1401847
http://www.acmqueue.com/forums
Archives