Improving Conditional Level Generation using Automated Validation in Match-3 Games
<|reference_start|>Improving Conditional Level Generation using Automated Validation in Match-3 Games: Generative models for level generation have shown great potential in game production. However, they often provide limited control over the generation, and the validity of the generated levels is unreliable. Despite this fact, only a few approaches that learn from existing data provide the users with ways of controlling the generation, simultaneously addressing the generation of unsolvable levels. %One of the main challenges it faces is that levels generated through automation may not be solvable thus requiring validation. are not always engaging, challenging, or even solvable. This paper proposes Avalon, a novel method to improve models that learn from existing level designs using difficulty statistics extracted from gameplay. In particular, we use a conditional variational autoencoder to generate layouts for match-3 levels, conditioning the model on pre-collected statistics such as game mechanics like difficulty and relevant visual features like size and symmetry. Our method is general enough that multiple approaches could potentially be used to generate these statistics. We quantitatively evaluate our approach by comparing it to an ablated model without difficulty conditioning. Additionally, we analyze both quantitatively and qualitatively whether the style of the dataset is preserved in the generated levels. Our approach generates more valid levels than the same method without difficulty conditioning.<|reference_end|>
@article{aylagas2024improving,
    title={Improving Conditional Level Generation using Automated Validation in
  Match-3 Games},
    author={Monica Villanueva Aylagas, Joakim Bergdahl, Jonas Gillberg, Alessandro
  Sestini, Theodor Tolstoy, Linus Gissl'en},
    journal={Transactions on Games 2024},
    year={2024},
    doi={10.1109/TG.2024.3440214},
    archivePrefix={arXiv},
    eprint={2409.06349},
    primaryClass={cs.LG}
}