Path of Destruction: Learning an Iterative Level Generator Using a Small Dataset

We introduce a novel method for training content generators called the Path of Destruction. We use the method to generate levels for various 2D games. Link:

Path of Destruction generates training repair sequences via iteratively destroying a goal towards a random target. We start from the goal level and destroy it tile by tile until reaching a random noise and create a dataset along the way (destroyed levels + repair actions).

After we generate the training set, we can use it to train a machine learning algorithm that can repair any damaged level towards being better. To fully generate new levels, we can sample a random noise level and run the trained algorithm until it becomes good.

The trained repair agent tends to learn a more general strategy to avoid mode collapse. Having more goal levels encourages generalization and finds more unique playable levels but we see that levels are more diverse versus just being similar to goal levels (even using 1 level).

Testing the system on other games like Sokoban and Dangerous Dave showed that the technique is robust enough to work easily on them.

In destruction, we destroy the goal level towards random noise but what if we destroy it towards another level or distribution (distribution shift). Can the agent learn to do style transfer?