I wanted to share a technique I recently used in developing Star Hammer Tactics to find crash bugs. (BTW, this post will probably be more interesting to developers, especially programmers.)
A few weeks ago, I thought the game was finished. All of the tasks on the task list were complete, and I’d tested the game extensively. I tried all sorts of crazy things to try and crash it, or make it misbehave, and it always worked just fine. Convinced that it was ready to release, I submitted the game to Sony for acceptance. A few days later, I get the acceptance testing report, and to my disappointment found that the game had failed. Apparently it was unstable and crashed a lot. What!?!?
Now, being a small company, I don’t have access to a huge QA department. Whilst I make every effort to ensure that my code is as robust as possible, I’m only human, and I guess a few bugs had crept in. I got some friends to try the game, and after quite a few rounds of combat, the game froze. Awesome!
The problem was that it took at least 30-45 minutes to find *one* instance of the game failing. Furthermore, there was no way at all to tell what might have caused the game code to freeze. I needed a way to test the game in such a way as to find problems more quickly. At this point, I remembered that earlier in development, I’d used two competing AI players to tune the gameplay and balance the power of the various types of ship. Hmmm, competing AI…
What I was able to do was configure the game to play itself, non-stop, for hours at a time. Doing this through the debugger meant that if a problem occurred, I’d know were the problem was, and would have a better chance of finding the cause. The good news is that it didn’t take long to find a couple of bugs that only occurred in rare circumstances, but had caused the previously reported “instability”.
So, if you’re working on a game, consider a mode in which the game plays itself. It’s a great way to find bugs!




Pingback: More on automated testing « Black Lab Games Blog
Nice tip, Paul. It’s interesting that occaisionally players can be greater bugspotters than developers.
Great work with the games development!