|
Features

The Game Production Handbook:
Making Builds
The following is a selected excerpt from The Game Production Handbook (ISBN
1-58450-416-1) published by Charles River Media.
--
Introduction
It is important to have a process in place for creating builds on a regular basis so that features and assets can be checked in-game. If regular builds are not created, the development team cannot do proper checks of the game's functionality or ensure that the assets are displaying correctly in-game. There is a noticeable visual difference in how art assets for a console game display on a PC and how they display in-game on a television. There are numerous settings on televisions—some with lighter displays and some with darker displays—all of which can affect how something looks in-game. The developer will not see these differences unless he creates a build and looks at the assets directly in-game.
If there is difficulty creating a build, it can also indicate that there are bugs in the game that are preventing the code from compiling. The developers might not realize these bugs are there until they try to create a build. If a long time elapses without creating a build, critical bugs will remain undiscovered in the code and will be more difficult to deal with as development progresses.
Build Process
Every development team will have a different build process, which is usually determined by the lead engineer. The important thing is making sure that this process gets defined during pre-production and implemented as soon as assets are available for creating a build. Waiting too long to establish a build process will cause development delays during critical milestones; the engineers will spend precious production time trying to work out kinks in the build process instead of coding features and fixing bugs.
The process must be flexible so that it can be modified to create builds with special requests. For example, marketing might request a stable build they can demo at a conference, which has only a certain area of the game available to play. Access to the other game levels can be prevented by locking out UI functionality or by removing items completely from the game.
The process must also have a way to track what has been added to the build. This is helpful if an artist is waiting for a certain tool to be finished or if a designer is waiting on a level to be finished so he can begin scripting it. One simple way to do this is to set up a “New in Build” mailing list for what's been added to the build. This way, if an engineer checks in updated vehicle AI code, he sends an email to this list stating what new code he just checked in. An artist would send an email to the “New in Build” list every time an art asset was checked into the build, and so on. This helps the team as a whole track what's being added to the build, and it alsogives QA a better idea of what to expect in each build that is delivered to them for testing. The “New in Build” emails also provide a good foundation for creating build notes, which are discussed later in this chapter.
Although a primary person will oversee the build process, several people needto know how the process works. This is useful if an unplanned build needs to becreated, and the primary person is not available to do it.
Build Schedule
After production starts, the initial build must be made as soon as possible—well before a first playable build. This provides a benchmark for measuring the progress of future builds. It provides proof of concept and technology to the development team and studio management. By the time the game is at a first playable stage, builds should be made two to three times a week. By alpha, it is ideal to be in the habit of making daily builds.
At the point when daily builds are being made, the QA department will work with the team to decide how often builds will be submitted for testing. It is counterproductive to give QA a new build to test every day. They need to spend several days with a single build to make sure they have tested all aspects of the game thoroughly. QA will probably only want to look at a new build every three to four days during alpha. The frequency of builds submitted to the QA department will increase as the game gets closer to code release. The build schedule will keep production progressing on the game. People can check in their assets and know when the build will be ready and submitted to QA.
Build Checklist
Creating a build checklist is helpful for remembering all the steps that are necessary when creating builds. Figure 18.1 is a build checklist for creating builds of Shanghai: Second Dynasty . This game was a PC/Macintosh hybrid and had several technical steps in the build process. In addition, several other steps were required to ensure that the correct set of assets was used and that any assets not included in the build were removed, such as development cheats and saved game files.
The checklist also tracked which version of the build was being made and what files had changed since the last build. The build steps for Shanghai: Second Dynasty are difficult to understand out of context, but the checklist gives a good idea of complexities involved in making a build. This build checklist can also be given to QA so they can double-check the modifications during the code release process. Refer to Chapter 22, “Code Releasing,” for more information code releasing builds.
Automated Builds
An automated build process is usually simple to set up and saves a lot of development time. If the process is automated, the person responsible for making the build does not have to take time to manually complete all the steps in the build checklist. If the build process for Shanghai: Second Dynasty were automated, the build would take less time, and fewer mistakes would be made. The checklist can provide the framework for what tasks can be automated.
All of these tasks can be automated by setting up a separate “build” machine, which has programming script that will instruct the machine to pull out all the updated code and assets from the version control system and compile them. When compiled, it will generate the latest build and copy it to an appropriate place on the computer network. This programming script can be set to run on a regular basis. For example, the build script can be set to run at midnight each night, so there is a new build waiting for the team in the morning.
|
| Build Checklist— SD2 GM v.1103.1 |
COMPLETED |
BEFORE STARTING TOAST: |
|
Delete old build from network |
|
Copy latest version of installer to network |
|
Confirm that e-reg.exe is removed |
|
Confirm that Earthlink folder is removed |
|
Confirm that correct localized assets are being used |
|
Check that .ldl files are all encrypted |
|
Delete setup (debug).exe from build |
|
Make sure “TEXT” file is included in setup folder |
|
Make sure “TEXT” file is hidden |
|
Test installer to make sure it is working properly from network |
|
Place updated files from QSI in build on my hard drive |
|
Change version number for Crash Logger in anet.inf file |
|
Change QA version number in anet.inf file |
|
Update tln.dat file, get latest version by making one from latest CD |
|
Encrypt tln.dat file |
|
Test encrypted tln.dat file |
|
Make sure sendcrsh.exe included |
|
Confirm that SAVED GAMES folder is empty |
|
Confirm that development cheat files are deleted |
|
Test build to confirm it is working properly |
|
Uncheck read only box, so that you can do MAC file-typing |
|
Copy game files to Builds folder (setup/data) on network |
|
Put .exe in correct folder (setup/HighResExe, setup/LowResExe) |
|
Make sure readme is at root of CD |
|
Make sure readme is in setup folder |
|
Make sure MAC applications are in proper folders |
|
Include most updated version of MAC readme |
|
Include most updated version of MAC installer |
|
Test Mac Installer |
|
File type PAT for MAC |
|
File type HTML text for MAC |
|
File type HTML JPEG for MAC |
|
File type BMP for MAC |
|
File type CRD for MAC |
|
File type TEXT for MAC |
|
File type DATA for MAC |
|
Copy build to Burner hard drive. Make sure build copied to correct partition |
|
Change MAC installer icon |
|
Change MAC CD icon |
|
Arrange icons in user friendly way in MAC window |
|
Restart MAC computer |
|
Empty Trash |
|
| |
|
LOCALIZED VERSIONS: |
|
Confirm that e-reg.exe is removed |
|
Confirm that Earthlink folder is removed |
|
Confirm that correct localized assets are being used |
|
Confirm “TEXT” file is include in setup folder |
|
Confirm “TEXT file is hidden |
|
Confirm version number for Crash Logger in anet.inf file |
|
Confirm sendcrsh.exe included |
|
Confirm that SAVED GAMES folder is empty |
|
Confirm that development cheat files are deleted |
|
Confirm readme is at root of CD and in “setup” folder |
|
Confirm most updated version of MAC readme is included |
|
Confirm correct MAC Installer and CD icon |
|
| |
|
AFTER STARTING TOAST: |
|
| |
|
Select MAC/ISO hybrid with Audio Tracks |
|
Select MAC button and highlight the correct partition |
|
Select PC button and drag over correct PC files |
|
Rename PC CD label |
|
Make sure file settings are set to JOLIET |
|
Remove MAC only files |
|
Add music tracks in AIF format |
|
Put 80 minute CD in drive |
|
Start burn |
|
| |
|
| |
|
Files that got updated since last build: |
|
| |
|
| |
|
| |
|
|
 |
 |
 |
Figure 18.1 Sample build checklist.
|
The automation process can be taken a step further in reducing time in other areas of development. For example, on certain days the build script could be instructed to copy the latest build to all the QA machines, so that when the QA testers reported to work in the morning, the latest build was ready for testing. The process can also include scripts that check the build for errors, such as misnamed files, missing assets, or incorrect file formatting. The error log can be automatically emailed to the team so that people can begin fixing the errors before the next build is created. The lead engineer can work with the development team to set up the best way to automate the build process.
A publicly visible indicator can be added to show when the build is not working. Clinton Keith of High Moon Studios has integrated lava lamps into the build process: “when an asset is checked into the game, there is an automated test suite that tests everything that is committed art- and code-wise to pipeline. If the tests determine that an asset has produced a fault, a red lava lamp is triggered to indicate that the build is broken. If the tests determine the asset is working correctly, a green lava lamp is triggered. The lamp is visible to the whole team and is a fun way to remind people to double-check the correctness of their work before checking it into the build.”
Multilingual Builds
|