layout | title | author | permalink | menu | icon |
---|---|---|---|---|---|
page |
Analysis and Generation of PuzzleScript |
Riemer van Rozen |
/PuzzleScript/ |
languages |
PuzzleScript.png |
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) [2].
-
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 [3, 4].
-
Tutomate. A novel tool for analyzing puzzle game tutorials by Dennis Vet. ScriptButler proposes tutorial analytics for predicting if puzzle challenges will present players with opportunities for learning with trial and error [5, 6].
Tutorial generation. Our current work focuses on analyzing game tutorials defined in PuzzleScript. In addition, we combine automated playtesting with procedural level generation [7].
- Stephen Lavelle. "PuzzleScript", Oct. 2013. https://www.puzzlescript.net
- 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
- 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
- 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
- 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
- Dennis Vet and Riemer van Rozen. "The Puzzle Forecast: Tutorial Analytics Predict Trial and Error". In: Proceedings of the International Conference on the Foundations of Digital Games, FDG 2024 – as part of the Workshop on Procedural Content Generation, PCG 2024. ACM, 2024. DOI: 10.1145/3649921.3659854 To appear.
- Borja Velasco Santamaría. "Echoes of the Labyrinth: Generating Puzzle Tutorial Levels and Solutions through Verb-enriched Playtraces". Cum laude. Master's thesis. University of Amsterdam, Aug. 2024