Dev Diary: Pest Control in THREE KINGDOMS

Behind the Scenes

CA KingGobbo
September 24 2019

Welcome back to another Total War Dev Diary, where we dive deeper into how we do things around here. This time, we’re taking a look at the oft unsung heroes of the gaming industry: QA.

Over the course of this article, we’ll be taking you through how the QA team go about finding, flagging, and fixing any bugs that pop up now that Total War: THREE KINGDOMS is live. These are the folks who make sure that our games are not full of issues that might otherwise detract from the player experience – like this one:

Forgot something?


The QA team itself is broken up into lots of different departments:

  • Functionality
  • Audio
  • Graphics
  • Compatibility
  • Tools and automation
  • Localisation

The first thing we need to do to fix a bug is to actually find the offending problem and what causes it.

Every single day, a new build of each of our games is generated and sent over to the QA team for the morning sweep, which consists of going through the game using both manual and automated methods to make sure all the basics work as they should. When that’s done and any bugs have been found and reported, they begin working on much more specific tasks that have been assigned to them. These tasks can be testing anything from collisions all the way through to individual unit visuals.

Alongside the more structured testing described above, members of the QA team also conduct full playthroughs that are of a much more destructive nature. During these tests, instead of looking to see that everything is working as intended they use their expert knowledge of our games to pinpoint potential weak points – and poke and prod them as hard as they can to see whether they can break them (and they’re very good at breaking things).

MC Hammer, is that you?


Once found, our QA staff need to be able to consistently reproduce a bug in order to flag it for fixing – we can’t squash it if we can’t get it to happen reliably! This is often the slowest and most difficult part of the bug-finding process, and it can take a very long time because there are so many potential influencing factors. For example, it’s possible that some bugs can only be produced on specific setups, which can be a real time sink to replicate.

However, there are ways we can speed up the process a little, and one of the best of these… is you! Whenever a community member finds a bug, our live QA team picks it up and requests a bunch of information including a save file from just before the issue occurred. This way, we often have an extremely reliable way of recreating exactly what you see on your screen, which in turn helps us to determine the cause.

Once a bug has been successfully reproduced, it is usually sent over to our developers (anyone from coders to artists) so they can get to work exterminating it.

Smile for the camera!


When they first receive the bug, the developer looks at it and tries to determine exactly what the cause of the bug is as well as how to fix it – there is usually some back and forth between the designer and QA to determine the root cause.

The problem is often just a wrong value in the database, so once identified the designer can then go in and change what they need to resolve the issue. Sometimes it’s a scripting error, which is a little more involved and requires the designer to program in Lua in order to fix the problem. And occasionally, if the issue stems from the code of the game itself, the designer will send the bug on to a programmer for an even more technical fix.

And that is why QA is one of the most important teams in our studio!

As you may have heard, you’ll be seeing some more of their handiwork in October with a new patch for Total War: THREE KINGDOMS. Additionally, along with that patch there’ll be some brand-new Legendary characters for the main campaign complete with brand-new artwork – including the mighty Huang Gai. Keep an eye on our social media channels on Thursday for more details!

Miss our last dev diary about forts in WARHAMMER II? Check it out here.