Home    General Programming    Artificial Intelligence    Math    Physics    Graphics    Networking    Audio Programming    
Audio/Visual Design    Game Design    Production    Business of Games    Game Studies    Conferences    Schools    Contact   
Architecture
C++ and Languages
Optimizations
Scripting
Resource Management
Data Structures
Memory Management
UI and Menus
Player Input
Level Editors and Tools
Debugging
All Articles
Game Programming Gems
Game Programming Gems 2
Game Programming Gems 3
Game Programming Gems 4
Game Programming Gems 5
Game Programming Gems 6
Game Programming Gems 7
AI Game Programming Wisdom
AI Game Programming Wisdom 2
AI Game Programming Wisdom 3
AI Game Programming Wisdom 4
GPU Gems
GPU Gems 2
GPU Gems 3
ShaderX
ShaderX2
ShaderX3
ShaderX4
ShaderX5
Massively Multiplayer Game Development
Massively Multiplayer Game Development 2
Secrets of the Game Business
Introduction to Game Development
GDC Proceedings
Game Developer Magazine
Gamasutra


General Game Programming: Debugging, Profiling and Testing


Using CppUnit To Implement Unit Testing

Blake Madden (Oleander Solutions)
Game Programming Gems 6

A Real-Time Remote Debug Message Logger

Patrick Duquette (Microids Canada Inc)
Game Programming Gems 5

Automated Testing for Online Games

Larry Mellon (Electronic Arts)
Massively Multiplayer Game Development 2

Metrics Collection and Analysis

Larry Mellon (Electronic Arts)
Massively Multiplayer Game Development 2

The Science of Debugging Games

Steve Rabin (Nintendo of America Inc)
Game Programming Gems 4

An HTML-Based Logging and Debugging System

James Boer (Amaze Entertainment)
Game Programming Gems 4

Shader Visualization Systems for the Art Pipeline

Homam Bahnassi and Wessam Bahnassi
ShaderX3

Advanced Script Debugging

Alexander Herz (Lionhead Studios Ltd.)
AI Game Programming Wisdom 2
Abstract: Poor or missing script debugging facilities are among the principal reasons for scripts not being fully exploited in a development environment. Often, errors encountered during script execution result in crashes of the game or a "screen of death" style representation of the virtual machine's internal state just after the crash has occured.

In-depth knowledge of the virtual machine is required to interpret such information, and often the virtual machine's source code needs to be examined in order to identify the problem, which may have been caused by a virtual machine command executed long before the crash. Because all external developers (including the mod community) and most in-house script programmers lack this in-depth information, they will restrict their programming style to simple constructs that can be fixed using a trial and error process in case of a problem. Therefore even the most powerful script languages are doomed to be misused if they do not support proper debugging mechanisms.

This article shows how to incorporate known debugging capabilities from common development environments into your script system, giving your script designers and the mod community the ability to create complex scripts and use the language to its full extent, while also shortening the development period because of improved debugging capabilities for scripts.

Adding Error Reporting to Scripting Languages

Jeff Orkin (Monolith Studios)
AI Game Programming Wisdom 2
Abstract: Custom scripting languages are a controversial game development tool. Scripting languages empower non-programmers by moving game AI logic out of the C++ code. While this empowerment certainly comes with some risks, the benefits are that additional team members can create behaviors, designers can tweak AI more directly, and the AI logic is more accessible to the mod community. The most common complaint about scripting languages is that they are difficult to debug. This concern is exacerbated if non-programmers intend to write scripts. If the scripting language compiler or interpreter only gives feedback like "syntax error," non-programmers are not going to get very far. Fortunately, this problem is easily solved. The same techniques used to define the grammar of valid syntax can be used to identify and report scripting errors in plain English. This article describes how to harness the power of Lex and Yacc to generate meaningful errors when compiling scripts. The article includes C++, Lex, and Yacc code for a simplistic language called Simple.

Unit Testing for Massively Multiplayer Games

Matthew Walker (NCsoft Corporation)
Massively Multiplayer Game Development

Building an AI Diagnostic Toolset

Paul Tozour (Ion Storm Austin)
AI Game Programming Wisdom
Abstract: This article describes invaluable techniques that real developers use to tweak, test, and diagnose their AI during the development cycle. We describe literally dozens of specific ways you can instrument your AI to help you tweak and test it more quickly and figure out what's wrong when your AI breaks.

Testing Undefined Behavior as a Result of Learning

Jonty Barnes (Lionhead Studios), Jason Hutchens (Amristar)
AI Game Programming Wisdom
Abstract: We consider learning to be the essence of Artificial Intelligence. Non-player characters, when granted the ability to learn, are given the potential to surprise and entertain the player in completely unexpected ways. This is very reinforcing from the player's point of view, but a nightmare for a testing department. How can they assure the quality of a game that may behave completely differently depending on the who's playing it? In this article we show, via a case study of the computer game "Black & White", exactly how a testing department can achieve their goals when the product they're testing features unpredictable learning AI.

Lightweight, Policy-Based Logging

Brian Hawkins (Seven Studios)
Game Programming Gems 3

Journaling Services

Eric Robert (Ubisoft)
Game Programming Gems 3

Real-Time Hierarchical Profiling

Greg Hjelstrom, Byon Garrabrant (Westwood Studios)
Game Programming Gems 3

A Built-in Game Profiling Module

Jeff Everett (Lithtech)
Game Programming Gems 2

Game Input Recording and Playback

Bruce Dawson (Humongous Entertainment)
Game Programming Gems 2

A Generic Tweaker

Lasse Staff Jensen (Funcom)
Game Programming Gems 2

Squeezing More Out of Assert

Steve Rabin (Nintendo of America)
Game Programming Gems

Stats: Real-Time Statistics and In-Game Debugging

John Olsen
Game Programming Gems

Real-Time In-Game Profiling

Steve Rabin (Nintendo of America)
Game Programming Gems

40% off discount
"Latest from a must have series"
Game
Programming
Gems 7



"Cutting-edge graphics techniques"
GPU Gems 3


"Newest AI techniques from commercial games"
AI Game
Programming
Wisdom 4






Home