Game Development is complicated an it’s just common that mistakes happen. For example: Can you see the difference between the upper and lower screenshot below?
Answer: In the lower image the green highway tube is a bit brighter. The questions are:
When did it happen?
What changed (shader, material, texture, …)?
X:Rebirth is a huge game and we did the material-setup in a long XML-file which makes it easy to change something unintentional. It might happen that a change like this doesn’t get noticed for a long time and it will cost much time to find the answers to the above questions.
This post is about a tool which I build together with the guys at Egosoft. The Watchdog Script helps us to keep track of visual changes in the universe of our game.
First, it creates screenshots of our universe, materials and special test-cases every night.
Some of the shots are automatically compared and if something changed visually a warning-mail is send out. If there was a significant FPS drop or raise a warning-mail is generated too.
In addition, a (filter-able) HTML gallery is created to give a good overview about all generated screenshots to all team members.
You also can see all screenshot-iterations of a specific location with more data like the position or performance information (details follow below).
By the way
We don’t use it only for checking materials! We also take pictures of (static) particle-systems and a simple cube-animation to test if these systems and their features work fine. In the image below you see tests for particle-blending, -scaling, -orientation, … – More information about what is comparable can be found here.
This article is about the basic structure of the script and all the problems we faced during the development. We don’t release source code because the script is optimized for our pipeline, but writing the code shouldn’t be a problem. In fact, it’s more important to have the motivation to invest a bit time in tools even if you can’t calculate how much time it will save you. If you’ve the will-power, the code isn’t a problem anymore.
Here you find descriptions of the different steps and challenges we took to develop the script. I can recommend reading at least the problem section. It’s always fascinating how computers protect developers from boredom.
[t02] Image Comparison Tool “Perceptual Image Diff”
[t03] Image Comparison Tool “DiffImg”
[t04] Command Line Mail Program: Blat
[t05] JQuery + LazyLoad Plugin
[t06] Function for returning URL Parameters
[t07] Cruise Control
[a01] PDI/Dreamworks: “A Perceptual Metric for Production Testing”
[r01] Reddit Discussion about this article