SGL: Scalable Games Language

Research   |   Publications   |   Funding


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.

Demonstration of the SGL Scripting Language


See All Publications in Games and Simulations


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.