Spotlight: Spelbalans testen met AI

Door Andreas Veeckman

Het balanceren van een game is door de hoeveelheid aan parameters een echt huzarenstukje. In adversarial games met vele mogelijke acties, uitrustingen, skills en/of abilities is elke mogelijke combinatie manueel gaan testen quasi onmogelijk. Zeker in een iteratief proces waarbij al die zaken ook nog eens continu veranderen doorheen het development proces.

Het vinden van exploits en skills die over- of underpowered zijn is een groot deel van balans testen. Vooral hier kunnen AI agents een rol spelen. We lichten hieronder twee voorbeelden toe.

RL voor het vinden van exploits in de game AI van For Honor.

Ubisoft LaForge bracht vorig jaar (2021) een presentatie op GDC over hoe zij AI inzetten in verschillende projecten. Een use case die zij aanhalen is het gebruik van een RL-agent om hun eigen Game AI te gaan testen. Een typische eigenschap van RL agents is dat ze soms overfitten. Wat wil zeggen dat hun gedrag heel specifiek gaat leiden tot het veelvuldig herhalen van een actie die telkens weer goed blijkt te werken. Als je zo een agent inzet tegen je eigen game AI, kan je op die manier exploits gaan detecteren.

Bijvoorbeeld: in een fighting game zoals Tekken, Mortal Kombat of Streetfighter leert een agent dat een bepaalde attack (schoppen) negen op de tien keer veel damage doet. Dat zou kunnen wijzen op twee zaken:

  1. Die specifieke aanval is te sterk.
  2. De game AI is te zwak tegen de specifieke aanval

Door agents te trainen tegen het volledige raster van opponents kunnen zulke exploits automatisch worden gedecteerd. In de video hieronder wordt dit mooi geïllustreerd (vanaf minuut 13). Kijk ook verder voor de obstakels (en oplossingen) bij het gebruik van Reinforcement Learning.

Underpowered skills vinden met Restricted Play.

Dit onderzoek dateert al uit 2012, maar is volgens ons nog steeds interessant. Het experiment uit de studie maakt enkele assumpties die hoogst waarschijnlijk matchen met maar een handvol games, maar de principes kunnen gegeneraliseerd worden naar een breder gamma.

De idee is om verschillende speelbare characters tegen elkaar uit te spelen om te leren welke skills weinig relevant zijn. Een vereiste is hier dat er wel een game AI aanwezig is die het spel kan spelen. Na het spelen van een aantal games, wordt bij één van de characters een bepaalde skill uitgeschakeld. Hierna worden opnieuw een aantal matches gespeeld en gekeken of de winrates significant verschillen. Indien dit niet het geval is, wil dit zeggen dat de uitgeschakelde skill weinig invloed had op de speelstijl, en dus voor dit scenario niet relevant was. Een mogelijke conclusie is dat deze skill wat underpowered is.

Gebruik van Game AI voor het evalueren van levels.

Een vergelijkbaar onderzoek aan de universiteit van Malta stelde een model voor dat op basis van de level layout bepaalde match characteristics kan voorspellen. Het model krijgt als input verschillende 2D abstracties van het level. Vervolgens worden games gesimuleerd met behup van al aanwezige game AI. Hiermee worden de truth values gegenereerd die het model dient te voorspellen. Het spel in het experiment is een simpele FPS game met 3 classes (corresponderend met drie fire ranges).

Het resulterende model kan redelijk accuraat de killratio voorspellen. Deze informatie is nuttig om op voorhand te gaan voorspellen of een bepaald level meer in het voordeel van een bepaalde class speelt.