Skip to content

GeorgiaSamaritaki/Ludoscope-Mini

Repository files navigation

Ludoscope Mini

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.

Demo

See my presentation on this project that also contains a live demo: Presentation w/ Live Demo

How the tool works:

Constraints help build better maps:

Example of a successfully procedurally generated map with a room and a forest:

How to run

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();
Note: Salix is still under development therefore certain features might not work as expected. CodeMirror which is visualising code in the web app doesnt work properly as of now so all the .lm files can only be edited through Eclipse (with nice highlighting!) or a text editor.

About

A PCG grammar-based tool for generating 2D tile maps

Topics

Resources

Stars

Watchers

Forks