b[0].x
A while ago, I threw together an experiment on my website to procedurally generate Sokoban levels. They weren't that good, but later I wondered about giving it another shot - not only generating the levels themselves, but also the mechanics that would be used in them. This is the end result!
Does this use GenAI? Nope, just good old-fashioned procedural generation algorithms.
My mouse isn't working! This is a retro-style game, we don't speak mouse here! Use the arrow keys to select and Enter/Space to confirm.
The CRT filter is really annoying! But I worked so hard on it :(
I don't care, how do I turn it off? You can reduce or disable it in the options menu.
How does the generator work? It's complicated, but the short version is it throws together some boxes at random, wanders around aimlessly for 150 steps, then puts goals on all the occupied squares (that weren't occupied to start with), and finally resets the level to how it started. If people are interested in the details I can write a devlog or something.
Controls
- [WASD / Arrow Keys] Move
- [Z] Undo
- [R] Reset
- [Enter/Space] Confirm
- [ESC] Options / Cancel
| Published | 7 days ago |
| Status | Released |
| Platforms | HTML5 |
| Rating | Rated 4.0 out of 5 stars (1 total ratings) |
| Author | Brian_Nether |
| Genre | Puzzle |
| Made with | Godot |
| Tags | 2D, 8-Bit, Godot, No AI, Pixel Art, Procedural Generation, Singleplayer, Sokoban |
| Average session | A few minutes |
| Languages | English |
| Inputs | Keyboard |



Comments
Log in with itch.io to leave a comment.
Unfortunately, there's something not quite satisfying about the puzzles being generated in my opinion. When the mechanics for pushing are intuitive, I don't run into any problems getting the boxes to go where I want them to go. The randomly generated mechanic system is a very intriguing premise, but in practice, I found it to just be frustrating.
I understand that the algorithm works by having the player move 150 steps and putting goals where there are squares? That's pretty clever! But when the generated rules are unintuitive, it's frustrating to not have a simple sandbox level to get to grips with the rules. I'm curious how the game would feel if it generated a "1 move puzzle" followed by a "2 move puzzle" - essentially trying to teach the randomly generated mechanics through small puzzles before ramping up to "150 move puzzle"?
The music, sound, and presentation are impecacable! It looks and sounds really pretty!
I have to agree, the current systems could use some tweaking for less confusing mechanics. I attempted to balance the difficulty as you suggest using a system called "complexity"; each mechanic that gets generated is labeled with a complexity based on the behaviors that make it up, and mechanics and levels with higher complexity get pushed to the end. Ideally this would mean that the first few levels would be "antepiece" levels that introduce you to a mechanic in the simplest way possible, but in practice it doesn't seem to work too well; perhaps the numbers simply need adjustment.
(I should point out, though, that the 150-move puzzle doesn't necessarily mean you need 150 moves to beat it. A lot of those 150 inputs during generation involve aimlessly wandering around and bumping into walls and such. A 1-or-2-move puzzle would probably be won on the first turn.)
Thank you for your feedback!
How interesting! I'd be curious to know what complexity is associated with what mechanics!
And I def see your point regarding the move count: a 10 move puzzle might involve shifting back and forth 5 times and not pushing any blocks lol.