Spotlight: Adversarial RL for PCG

Door Andreas Veeckman

In eerdere blogposts zagen we al ML models die in staat zijn content te genereren. Vaak ging het om Generative Adversarial Networks: GANs in het kort. Een vergelijkbare aanpak wordt gehanteerd in onderstaand onderzoek van SEED: Adversarial RL for Procedural Content Generation (ARLPCG). In de video kan u een overzicht zien van het onderzoek. We lijsten onder de video kort even de kernideeën op.

Het belangrijkste uitgangspunt van ARLPCG is dat RL agents getrained op een vast portfolio aan levels minder robuust zijn voor verandering. Hun prestaties zijn buitengewoon voor de getrainde levels, maar nieuwe omgevingen vormen een obstakel. Daarom koppelen ze de trainer met een generator. De generator voorziet nieuwe levels gedurende het trainingsproces waardoor de agents met alle mogelijke scenario’s geconfronteerd worden. Niet alleen de agents doorgaan een trainproces, ook de generator leert wat geldige levels zijn.

Het resultaat is tweeledig. Enerzijds is er de level generator die geleerd heeft om levels te generen die wel degelijk kunnen gespeeld worden. (Het gaat hier enkel om de level geometrie, niet om de visuele invulling.) Anderzijds kan de getrainde agent ook ingezet worden als testbot tijdens het manueel designen van levels.

De gehele implemetatie werd gemaakt in Unity ML-agents. Nog eens wordt de gebruiksvriendelijkheid van deze plugin aangetoond. Naast feature engineering (het kiezen van input, layout en reward), dient verder weinig werk te worden gedaan.