Sokoban Puzzle Generator
About
Made as a preparation exercise for my bachelor's degrees the aim of this project was primarily to practice breadth-first search algorithm whilst also thinking about procedural generation constraints.
Team
Being a practice project, I developed this piece by myself, though the limited art was provided by an artist.
My Contributions
- All programming;
Software
- Unity;
Mechanics
Sokoban Solver
The project implements a breadth-first search (BFS) algorithm to solve the puzzle each time a new piece is added during level generation. This ensures that the generated puzzle are solveable.
To enhance performance for players, the generator is primarily used in the Unity Editor to create layouts that the solver confirms as solvable. The valid puzzle configurations are then stored in Scriptable Objects, allowing for efficient level loading during runtime without the need for additional computation. This also allows the user to create level packs, such as: "Easy Levels", "Hard Levels" and so on...
Custom Generic Grid
A custom grid implementation using generics was added as a way to easily create floors, walls, buttons, crates and the character during generation.