
BIO
Andrew Fray is a Bafta-winning game programmer and lead with two decades of experience in the industry. He’s worked on both AAA and indie titles, on PC, console and mobile. Notable studios include Frontier, Codemasters, Spry Fox and Roll7, and notable titles include Rollercoaster Tycoon 3, Alphabear and Rollerdrome.
Andrew has been using and speaking about automated testing in games for ten years. He first used automation in the Codemasters F1 series, where it proved extremely helpful in refactoring and optimising. Andrew founded and chairs the GDC Automated Testing Roundtables each year and runs the popular Automated Testing In Games discord server.
Talk (Beginner):
Bang-For-Buck Automated Testing in Game Development
Automated testing in game development is increasing in popularity, but still very much a niche discipline. It has proven difficult to apply the learnings from the wider software industry to the high-stakes and high-performance world of video games.
Here we demonstrate a range of techniques used with great success in the development of Rollerdrome, the Bafta-award-winning action skating game from 2022, and how those techniques had to be adapted to suit game development.
Outline:
We’ll explore the factors that differentiate automated testing in game development from other types of software development, the misconceptions people have, and ways I’ve found to combat them.
We will cover the three layers of automation that can help small-to-medium-sized game projects such as Rollerdrome: data validation tests, smoke tests, and runtime actor tests.
Each is increasing in capabilities but also in complexity, so if implemented in order can allow a team to pick the level of automation that's to their tastes. This is important when automated testing is still not seen as a Best Practice in the games industry. The examples will use Unity, a common game engine, but the learnings are applicable to most game development environments.
Takeaways:
- The particular challenges of automated testing in gamedev
- Quickly capturing issues in data
- Using end-to-end tests as a driver for more specific tests
- Translating unit-style tests to a realtime environment