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