Using AI to find bugs

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…

artificialfictionbrain

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!

2 Responses to Using AI to find bugs

  1. Pingback: More on automated testing « Black Lab Games Blog

  2. Joel says:

    Nice tip, Paul. It’s interesting that occaisionally players can be greater bugspotters than developers.

    Great work with the games development!

Leave a Reply

Your email address will not be published.

*

* Copy this password:

* Type or paste password here:

1,883 Spam Comments Blocked so far by Spam Free Wordpress

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>