Automate your playtesting: Create Virtual Players for Game Simulation

It’s easy to automate playtesting by creating a Virtual Player (a game-playing agent), then using Game Simulation to run automated playtests at scale. Read on to discover three case studies describing how iLLOGIKA, Furyion, and Ritz Deli created Virtual Players – offloading nearly 40,000 hours (~4.5 years) of automated playtesting to Game Simulation.

Games are challenging to test for the same reason that they’re fun – players have the freedom to shape their own experience. Thus, games have a huge surface area for bugs and design flaws to appear. Developers must test frequently and with extensive coverage to resolve issues and reliably meet deadlines. 

In the past, developers chose between low-coverage tests with high frequency (unit tests in a CI pipeline) and high-coverage tests with low frequency (playtests before a major release).

We built Unity Game Simulation to help developers test with the coverage of playtests and the frequency of unit tests. Unity Game Simulation enables developers to run automated playtests in the cloud. To use Unity Game Simulation:

Create a Virtual Player (a game-playing agent). Use the Game Simulation package to instrument your game for simulation. Implement remotely configurable parameters to simulate different variations of your game. Implement metrics to record the data needed to answer design questions. Use the Game Simulation package to create and upload a build of your game to our servers. Run your game thousands of times from the Game Simulation user interface (UI).

This blog post focuses on step 1 – creating a Virtual Player for automated testing. Steps 2–4 are straightforward and covered in the Game Simulation documentation. You can try Game Simulation for free now.

Creating a Virtual Player for Unity Game Simulation is easy

A Virtual Player emulates the input of a real player to test some aspect of your game. For simple tests, such as validating that your game can run for 60 minutes without triggering an exception, a Virtual Player can be as simple as a C# script with a few lines of code that launches a scene and performs random actions. 

For more complex tests, such as verifying that all weapons are roughly equal in strength or that each level can be completed, a Virtual Player can be created with the same methods commonly used to create non-player characters (NPCs). These include:

Heuristic scripts: A script with a very simple rule or algorithm Behavior trees: – A visual representation of a plan consisting of conditions and tasks Finite state machines: A script with a few states that the Virtual Player alternates between, for example, seek and attack Unity AI Planner: A visual planning framework with an intuitive Unity Editor UI Reinforcement learning and imitation learning using the Unity ML-Agents Toolkit: Check out how we created a Virtual Player for Jam City’s Snoopy Pop using ML-Agents.

Below we highlight how three studios created Virtual Players, collectively offloading nearly 40,000 hours of playtesting to Unity Game Simulation. What’s particularly noteworthy is that all three studios were able to gain immense value with Game Simulation while relying on relatively simple approaches for creating their Virtual Player.

Ritz Deli: Heuristic (greedy algorithm)

Indie studio Ritz Deli developed Eraser Blast, a linker-style puzzle game featuring over 50 characters, each with unique gameplay characteristics. Ritz Deli used Unity Game Simulation

Continue reading

This post was originally published on this site