Testing In Bulk

Like King of Dragon Pass, Six Ages is a large, complex game. That means that during development, there will be a lot of bugs.

Graph of scenes written, coded, testedThe best way to find them is to start testing early. I like to start QA as early as possible, once there’s a runnable game. For example, we can start the process of making sure every interactive scene works.

We have a really good QA tester, but like KoDP, there are a lot of scenes, with a lot of branches. One of the process improvements over KoDP is that we have a way to brute force test every response of every scene. This is only a supplement to human testing. It can make sure nothing crashes, but can’t find typos or situations where the wrong person is mentioned. But it does mean we don’t waste QA’s time with testing something that isn’t fully implemented.

Some bugs have patterns. If one scene has a problem after the player has made a major story choice, it’s likely that others will too. I usually track these in our bug database as a “sweep,” meaning once all the scenes are coded, we will have to search the code for possible occurrences. We still report fix bugs as we go, and when this situation came up again in a scene, I decided to try out an idea: change the brute-force testing to set up the story situation, and then run the brute-force test. Bingo! Ten failures. Or, ten places that a person doesn’t have to either read code and see what’s going on (in a code sweep), or write up a bug report (manual testing).

Last night I got a bug report about a scene failing when there was no chief. So I decided to do another brute-force test. This found a lot of problems in scenes that had not yet been tested.

Unfortunately, the brute-force testing of every branch of every scene takes about two minutes (and getting worse, as we code more scenes). So while I probably should run each brute-force variant, for now I’m relegating them to occasional situations. But I’m definitely going to look for more places to do this.

Author: David

Creator of Six Ages and King of Dragon Pass

11 thoughts on “Testing In Bulk”

    1. Setting up a CI box is what unpaid working for college credit were made for. But a spare machine pulled out of storage somewhere and hooked up to the network that, say, checks code out and runs the build/test every hour is the job of less than a day and in a project with one developer gets you 90% of what a CI box gets you for 10% of the labor.

      1. We are certainly trying to do this game on a budget but I never like the idea of people doing assignments without pay. I’m also not really keen on the idea of running another machine in my house. Finally, there’s the problem that the build process is scripted but is not yet automated (since that would require checking in build targets or making some changes to build dependencies that would probably slow down normal development).

        I did investigate one integration solution a little, which inexplicably can only run 7 of 105 tests.

        Still, I have been doing more with running occasional tests for weird situations, like feuding with all your neighbors.

  1. It is amazing how many scenes Dragon Pass has and how many behind-the-scenes operations I’m sure the game does. Six Ages won’t be much different, will it? Choosing your own adventure is what makes Dragon Pass so wonderful, and I’m sure Six Ages will capture my heart by being so different with every playthrough as well!

    Just… no DLCs. Let’s go back to ’99 in that manner.

    1. Six Ages will be its own game, but I think it’s safe to say it’s very much in the tradition of KoDP.

      1. As it takes place in the world of Dragon Pass, does it happen before or after the events of Dragon Pass?

          1. Alternative history? I like the way you think.

            Will the composer of the first game be in this one as well? I just loved the music!

            Also, why is farming less important in this game compared to cattle. Don’t get me wrong, I love cheese and milk, but grains are needed to survive!

  2. Can we wipe out the ducks without consequence?

    One of my beefs with kodp was that despite alliances, tribes and a strong army and the Raven banner I always got destroyed by the beast men of i pissed them off. I understand why, but come on, why not have the ability to at least work to being able to beat the beastmen, filthy creatures they are.

    1. Because the Oranthi aren’t like the Roman legion or that disciplined; they form shield walls at best, and rely on personal courage and heroics to win the battlefield. If we were to, in theory, transplant a Legion into Dragon Pass and allow them to use magic, their organized tactics would absolutely decimate our favorite clans.

      You also have to realize that the human gods are much less proactive as the gods of the other creatures. The troll queen alone is stated to be on a power scale near enough to the gods of old.

  3. Just wanted to send you some friendly encouragement. KODP captivated me when I first played it as a teenager when it came out and, like a good work of literature, it has stayed engaging and relevant to me as i’ve aged. So excited to have a spiritual successor!

Comments are closed.