This repo contains the work of my Master Thesis where I implemented a PCG grammar-based tool called Ludoscope Mini. You can find the thesis here.
Ludoscope is a grammar-based content generation system for level design. The tool can sequentially evolve models by using rewrite rules that gradually transform space, represented as tilemaps. Level transformation pipelines step-by-step transform level content, gradually adding detail, dungeons, enemies, encounters, missions, etc. Ludoscope was designed by Ludomotion.
Ludoscope-Mini enhances the tool further by offering a way to guide the generation and exclusively generate useful content the designer intended. The tool offers an improvement to PCG designers workflow and an intuitive way to help generation at runtime.
The project is developped in Rascal and uses Salix for the visualisation.
See my presentation on this project that also contains a live demo: Presentation w/ Live Demo
Constraints help build better maps:
Example of a successfully procedurally generated map with a room and a forest:
Download and install Eclipse 2021-06 following the instructions in the Rascal page see here. After having set up eclipse import the project. The Language support can be booted up with:
import main;
main();
Ludoscope Mini supports file with the extension .lm. To run a specific file from the Eclipse terminal:
runProjectFromLoc(|project://ludoscope-mini/src/tests/legendOfZokoban1.lm|);
To boot up the visual interface simply run:
import visual::IDE::IDE;
ldWebApp();