PuzzleScript is a programming language and online game engine with an active user community. Created by Lavelle [1], this surprisingly concise and powerful notation expresses mechanisms using rewrite rules that work on tile maps. PuzzleScript has been used to recreate many classic games such as Sokoban. The availability of the soure code of these games provides an opportunity for empirical studies.

PuzzleScript. Games are tile maps populated by objects, named sprites of 5x5 pixel that can move and collide. The game logic is a set of rewrite rules. Programs consists of sections. Play sets the rules in motion.

Results. Our research on PuzzleScript has yielded the following results.

  • PuzzleScript analyzer. Static analyzer by Mauro Vermeulen (Rascal + Salix).

  • ScriptButler. A novel tool for PuzzleScript analysis and mixed-initiative design by Clement Julia. ScriptButler notably adds a PuzzleScript Grammar that enables parsing all PuzzleScript games in Rascal. Using ScriptButler, we have performed an empirical study on the source code repository bundled with PuzzleScript.

  • Tutomate. A novel tool for automated playtesting of puzzle game tutorials by Dennis Vet.

Current and future work

Tutorial generation. Our current work focuses on analyzing game tutorials defined in PuzzleScript. In addition, we combine automated playtesting with procedural level generation.

References

  1. Stephen Lavelle. “PuzzleScript”, Oct. 2013. https://www.puzzlescript.net
  2. Clement Julia and Riemer van Rozen. “ScriptButler serves an Empirical Study of PuzzleScript”. In: Proceedings of the International Conference on the Foundations of Digital Games. ACM, 2023. DOI: 10.1145/3582437.3582467
  3. Mauro Vermeulen. “Automated Game Generation Met Gebruik Van Meta-Programming: Automatische generatie van games in de open source programmeertaal PuzzleScript met gebruik van de Meta Programmeertaal Rascal”. Bachelor’s Thesis. Amsterdam University of Applied Sciences, Department of Informatics, 2018
  4. Cemenent Julia. “Leveraging meta-programming principles to facilitate the software evolution of video games: Using Rascal to analyse PuzzleScript games”. Master’s thesis. University of Amsterdam, Master of Software Engineering, Feb. 2022
  5. Dennis Vet. “Tutomate: Relating skill atoms to playtraces for enabling automated analysis of game tutorials”. Cum laude. Master’s thesis. University of Amsterdam, Nov. 2023
  6. Borja Velasco Santamaría. “TutoCraft: Advancing Tutorial Generation through Rewrite Rules”. Note: ongoing project. Master’s thesis. University of Amsterdam, 2024