Tuesday, September 29, 2009

The Console, Debug Menu, and Gaming Development

In the first article of a series, software engineer and project manager Casey O'Donnell talks about interactive "game design" infused game development.

In its simplest form, game mechanics have been around game design and development for a long time. The "debug" menu or "console" found in many games seems to be one of the foundational means by which developers have attempted to make their tools more flexible. In many games, though the debug menu remains hidden, or actually stripped out of shipping games, sometimes it re-emerges providing players and game enthusiasts with new avenues to examine the roads not traveled in the design and development of a game.

The console, though perhaps the most powerful, is the least intuitive and least interactive. It is commonly used to issue specific commands to the underlying game system. Variables can be assigned new values, thus adjusting the underlying mechanics. Boolean variables can be turned off or on, indicating whether or not particular program paths or options will be executed. But ultimately it becomes a task that isn't easily played. Commands are issued, and the developer returns to the game to see if or how those changes affect the overall game system.

The debug menu, on the other hand, while quite similar, will often offer the player/developer a range of options. Exposed variables will be listed, with current values and the option to change them. In some cases, specific actions can be executed. Characters can be spawned or destroyed. Models, textures, sounds, and other options can be substituted. Levels can be loaded, missions launched, or specific cut scenes played. But, most importantly, the debug menu offers a range of options visually to the user. They need not necessarily know the commands that make a particular action occur. The menu provides the user with the information regarding what can be changed.

Ultimately though, the console and the debug menu were simply a first step down a path of moving design data outside of the core source code of videogame systems. They are simply the most obvious form of a broader movement within game design and development. "Data driven" design is nothing new in the world of software developers, but for many game developers it can seem a relatively new concept. Given than many engineers in the game industry are self taught from books and sample code from others, the idea that design elements should be external to the games underlying code systems can seem foreign. Models need to be loaded, not based on hard-coded source, but based on design data from game designers. Artists need to be able to specify a range of textures applicable to a single model and the frames associated with animations.

In many cases "consoles" are merely the interface into the underlying scripting engines that have been created as interfaces by which designers manipulate the game worlds presented to players. Thus, my next post will focus more on technical artists and tools engineers, whose job it seems to push the envelope with respect to interactive "game design" infused game development.

Casey O'Donnell has worked as a software engineer and project manager both in and out of the videogame industry. He is a faculty member of the Telecommunications department at the University of Georgia and is currently the Athens Chapter President of the Georgia Game Developers Association.

1 comment: