|
Features

Automated Build and Test Systems for Games
Let’s Have Machines Do the Work for Us!
If you are working on a software project that is any larger than
the most simple of applications, you need a build system and some
form of automated testing. If you are working on a game project
for a major console, you need build and test system to save your
developers time. Let a machine do the repetitive and time consuming
tasks, not your developers who have better things they could be
doing.
This isn’t just about saving programmer time either - all
disciplines can benefit from robust build and test systems. At
Nihilistic Software, we have spent a comparatively small amount
of time creating automated build and test software in relation
to the large amount of time and stress saved from having these
systems in place. Our build system is currently in use on its second
commercial project. It was used to ship our last title, a tri-platform
PS2 / Xbox / GameCube game, and is currently in production use
in our upcoming unannounced PS3 / Xbox 360 title.
This article will outline the system we use, in the hopes it
can be helpful to other developers in creating their own build
and test frameworks, consequently improving the quality of their
games by giving back more time for the important task at hand -
making great games.
Build System
Nihilistic’s build system was developed in-house using a
variety of both open source and commercial tools. It was designed
to be flexible, easy to update, and distributed. The key components
of the system are: a method for clients to request builds and have
them fulfilled by servers, a scripting system to drive the build
requests on the servers, a repository to store completed builds,
and finally, a way to report results. Each component will be covered
in turn, including how it was implemented.
Layout of our distributed build system. Developers act as clients making requests to the master server that brokers said requests to build servers, storing results in a repository.
|