Episode 2 of Forumwarz gives us a great opportunity to introduce changes to the gameplay balance. Since it’s a large content update we can piggyback on it with a bunch of adjustments to the balance between classes.

We have been collecting feedback on the balance between classes forever, and we have a bunch of great ideas for where to start tweaking.

The only problem is, tweaking even small stats on our classes means a lot of additional testing is required. When developing Episode 1, the best tool I had for this was my “Clone character” and “Reset character” tools.

In other words, I’d get a character to a point in the game, make a clone them, test something, revert, clone, test, revert clone, test, etc until I was happy with things. Unfortunately, if I got to a point late in the game where I wanted to make a change to something that would affect the earlier gameplay, I’d have to start all over again. Not only was this incredibly time consuming but it was mind numbing too. After a while I wouldn’t be able to objectively test the game, as I’d be so desensitized to the gameplay and storyline.

We are fortunate going into Episode 2 that we have an installed user base who are eager to test all sorts of permutations for us. We will definitely take advantage of that. However, I think it’s very important to get things as stable as possible from a balance standpoint before handing it over to actual users.

After thinking about it for a while, I came up with the idea of writing a bot to play Forumwarz for me. Since I have access to all the back end methods, it wouldn’t have to play through the interface, it would simply have to call methods, examine their results, call others.

Hence, BalanceBot 9000 was born. He turned out to take a lot more code than I initially thought, but earlier this week I got him to the point where he could beat Episode 1 from beginning to end. He’s smart enough to stock up on items, buy equipment, collect junk and sell it, fight threads (with different strategies for each class) and even grind in lower level forums in order to gain experience to beat higher level ones.

The main thing he doesn’t do is have conversations with NPCs, he just skips them and gains the desired ending effect. But those don’t need to be tested for balance anyway.

The idea is we can have BalanceBot run the game over and over, gathering stats as to how many attempts it takes him to beat a particular forum. After running it many times, we can get some cool numbers out of it. For example, we’ll know if a camwhore is slightly stronger than an emo kid at a particular level and weaker at another.

After every adjustment to the game balance, no matter how minor, we can run BalanceBot again and see how it affected the overall gameplay. Of course, this takes some time to run: It takes BalanceBot 9000 2 minutes to beat the game from beginning to end on my Quad-Core Xeon machine, and to get good stats we have to run the game many times.

I have already learned some interesting things about Episode 1’s balance that I didn’t before, and I haven’t even started tweaking things. I’m pretty sure we will see a much smoother gameplay experience as a result, both for Episode 1 and Episode 2!