Hey, I'm Simon and I made a game!! :)
Support me: BUY & Demo on Steam
Thanks a lot Egosoft that I’m allowed to publish these internal infos about the in-house tools.

I didn’t embed the video directly to avoid any tracking from Google and complications with the DSGVO.

Foreword

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:

Is this intentional?
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.

Introduction

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.

Chapters

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.










Update 1
Aldanaidaz and Pierre Bourdon mentioned that the Dolphin Emulator has a very similar tool named fifoci implemented. Check it out! Looks really cool!
Update 2
AdricGod mentioned Wraith which is the same like the Watchdog Script but for web development. Looks great!
Update 3
firefly2442 mentioned OpenCV which is “is an open-source BSD-licensed library that includes several hundreds of computer vision algorithms.”
Special Thanks

Michael Baumgardt
Owen Lake
Roger Boerdijk
Lino Thomas
Bernd Lehahn

Links & Resources
[t01] ImageMagick
[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

Leave a Reply

Your email address will not be published. Required fields are marked *