SGL: Scalable Games Language
The goal of the SGL project is the development of a high performance scripting language for games that fits naturally in the content creation pipeline. Content creation is a major part of game development, and game studios spend a lot of resources developing tools to integrate content into their software. For example, entry-level programmers typically make tools to allow artists to manage assets, or to allow designers to place challenges and rewards in the game.
The Neverwinter Nights 2 toolset for content creation
This content creation “pipeline” is not very well understood, and each studio has its own philosophy and set of tools. Many tools are taken from, or developed in coordination with the film industry. But unlike film, games must be interactive. Player actions require visual feedback; game characters should react to player choices. Adding interactive features typically requires some form of programming. These features are also a form of artistic content, and game studios would rather they be created by designers – developers who understand how the player will interact with the game, and what makes it fun – than software engineers.
The idea of game software as artistic content has led many game studios to split their software developers into two groups. Software engineers work on technical aspects of the game that will be reused over multiple titles. They work on core technology such as animation, networking, or motion planning, and they also build the tools that make up the content creation pipeline. Gameplay programmers, on the other hand, create the behavior specific to a single game. Part designer, part programmer, they implement and tune the interactive features that challenge and reward the player.
The gameplay programmer should produce fun, not complex algorithms. Unfortunately, the realities of modern gaming hardware makes this difficult. It is very easy for gameplay programmers to write applications that take too much memory (e.g. the Wii has an anemic 88 MB of RAM), or that run too slowly. Often, game designers are forced in a development cycle where prototype code is written by gameplay programmers and then optimized by software engineers; this is a development bottleneck that game companies would like to avoid.
SGL addresses this problem by providing a language that is simple enough for gameplay programmers to use, but which also delivers robust performance. SGL makes use of database processing techniques to provide such features as automatic indexing, parallelism, and runtime optimization. We are currently tuning SGL features for an initial prototype release for the public; return here for future updates.
- Walker White, Christoph Koch, Johannes Gehrke, and Alan Demers Better Scripts, Better Games. In ACM Queue, January 2009.
- Benjamin Sowell, Alan Demers, Johannes Gehrke, Nitin Gupta, Haoyuan Li, and Walker White, From Declarative Languages to Declarative Processing in Computer Games. In Proc. of the 2009 CIDR Conf. on Innovative Data Systems Research (CIDR 2009).
- Walker White, Benjamin Sowell, Johannes Gehrke, and Alan Demers, Declarative Processing for Computer Games. In Proc. of the 2008 ACM SIGGRAPH Sandbox Symposium (Sandbox 2008).
Robert Albright, Alan Demers, Johannes Gehrke, Nitin Gupta, Rick Keilty, Hooyeon Lee,
Gregory Sadowski, Benjamin Sowell, and Walker White,
A Scalable Language for Data Driven Games (Demonstration Paper).
In Proc. of the 2008 ACM SIGMOD Int. Conf. on Management of Data (SIGMOD 2008).
See a video of the demonstration.
Note: Given the lead time of SIGMOD, this paper describes an early version of the SGL language. There have been many changes since then; see the Sandbox paper above for a more definitive version of SGL.
- Walker White, Alan Demers, Christoph Koch, Johannes Gehrke, and Rajmohan Rajagopalan. Scaling Games to Epic Proportions. In Proceedings of the 2007 ACM SIGMOD Int. Conf. on Management of Data (SIGMOD 2007).
This research has been supported by the National Science Foundation under Grant IIS-0725260, by the Air Force Office of Scientific Research, and by a grant from Microsoft. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the sponsors.