Latest News
Version 0.4.0 - 2026-01-23
- Redesign of Collections and Levels
- All levels now belong to collections, auto-registered at startup.
- Collections are referred by string ID (path-like) or numeric ID.
- Level ID format is COLLECTION-ID.LEVEL-INDEX, e.g. hero.2 or 13.2.
- Collection configs use YAML and are stored in levels/ directory.
- A special custom collection with ID 0 can be populated on startup.
- Command line args and options configure the custom collection.
- The custom collection can be recreated by clipboard import (Alt-C).
- Reworked Main Screen
- Main Screen shows all auto-registered and custom collections.
- Easier navigation and better hints for collections to enter.
- The custom collection is only shown on Main Screen when non empty.
- New Themes and Updates
- jewel — suitable for Sokoban and many other puzzles (press F5).
- cargo — suitable for Sokoban and some other puzzles (press F6).
- Reworked ancient1 theme, now it's green floor and yellow walls.
- Improved plates and other images in several themes.
- New keybindings Shift-F3 and Shift-F4 for ancient2 and modern2.
- Support for Various Level Arguments from Command Line
- Collection IDs, e.g. "stoneage/original".
- Level IDs, e.g. "atomix/original.5".
- Map files (Sokoban map files and internal maps auto-detected).
- Clipboard input (map or URL supported): "clipboard:".
- Standard input (map or URL supported): "stdin:" or "-".
- Map files via URL, e.g. "https://url-shortener.me/5NTJ".
- LetsLogic collection IDs ("letslogic:Micro Cosmos", letslogic:30).
- LetsLogic level IDs (after loading their collection), see below.
- Support LetsLogic Sokoban Collections
- New flag --list-ll-collections shows all LetsLogic collections.
- The LetsLogic collection list is cached locally for 1 week.
- URL-like syntax: letslogic:<coll-id-or-title>, letslogic:/<level-id>.
- Requested LetsLogic collections and all levels are cached locally.
- Configurable LetsLogic API key (by default, generic acc is used).
- Graceful handling and reporting of internet and server issues.
- New Sokoban Solver Highlights
- Supports classical search algorithms: BFS, UCS, A*, Greedy, DFS.
- Two solution cost metrics:
- push/pull-optimal — minimize shifts then moves,
- move-optimal — minimize moves then shifts.
- Unified solver core for GUI and CLI with extensive automated testing.
- Solver architecture separates barrel configuration (SuperPosition)
and character state (Position) for efficiency.
- Domain-specific heuristics with Hungarian matching and lower-bound
costs for A* and pruning.
- Detects multiple deadlock types: local, match, freeze, corral freeze.
- Supports special level classes: Circular, ZSB, reverse mode.
- Periodic progress reports and optional early return.
- New sokodun Command-Line Tool
- Dedicated CLI for Sokoban solving using the same solver as the GUI.
- Supports specifying multiple levels and collections on command line.
- Allows algorithm selection: --astar, --bfs, --ucs, --greed, --dfs.
- Supports solution types: push-optimal and move-optimal (--by-moves).
- Return the first found solution with --return-first.
- Time-limited solving via --limit-time.
- Flexible output: visual vs standard map format (--show-sok),
dead cell highlighting (--show-dead), timing per level (--show-time).
- Record comparison and control with --record-file.
- Quiet and verbosity flags for automation workflows.
- Command Line and Configuration
- Unified startup option instead of --level and --collection:
- -s, --start LEVEL-OR-COLL-ID
- New custom collection options:
- -t, --theme THEME
- -m, --music MUSIC
- -b, --bg-image BG_IMAGE
- -P, --puzzle-type PUZZLE_TYPE
- -c, --cloud-mode
- -r, --reverse-barrel-mode
- New options:
- --list-ll-collections
- -M, --no-music
- -S, --no-sound
- -p, --run-profiler
- -d, --debug LVL-or-FEATURE
- New Debug Mechanism (via --debug option)
- jreg, jprs — joystick debug registration/presses
- grid, grid+ — grid subsystem output
- path, path+ — pathfinding output
- solv, solv+, solv++ — solver internals log (very verbose)
- szsb, szsb+ — Sokoban ZSB output
- prun — periodic prune and deadlock counters
- nofd — disable Freeze deadlock detection
- nocd — disable Corral Freeze deadlock detection
- dlck — show all Match, Freeze, Corral Freeze deadlocks
- sevt — SokobanSolver event log (verbose; redirect to *.sel file)
- prevalid — SokibanSolver prepared valid shift data per level
- precosts, precosts+ — SokibanSolver prepared costs per level
- New Modules
- celltools.py
- collectiontools.py
- colorize.py
- grid.py
- hungarian.py
- level.py
- load.py
- processcmdargs.py
- profiler.py
- progressline.py
- records.py
- sokobansolver.py
- testsuite.py
- New regression Tests
- tests/all
- tests/celltools
- tests/colorize
- tests/grid
- tests/hungarian
- tests/progressline
- tests/records
- tests/sokobansolver
- tests/sokobansolver-long
- tests/teestream
- tests/testsuite
- BarrelPuzzle (Sokoban) Enhancements
- Full support for reverse-barrel-mode (press Alt-E):
barrels and plates swapped; pulls instead of pushes.
- Multiple solution controls via keyboard including algorithm:
RCtrl-1/A/B/D/G/U/0/-/Tab/Backquote.
- KP_Enter — find push/pull optimal solution.
- Shift-KP_Enter — find move optimal solution.
- Solution progress updates at least once per second.
- Solutions in LURD format (no spaces), copied to clipboard.
- Input Handling and UX
- Improved full-screen (F11 and Shift-F11), also fitting Ctrl-S.
- Ignore lone Shift/Ctrl/Alt presses centrally.
- Many keybindings no longer stop solution search or replay.
- Reserve right Ctrl / right Alt combinations for puzzles.
- Change RShift-D to RShift-M — copy current map to clipboard.
- Backspace — clear prepared solution without reloading level.
- Any key during solving marks stop_find, allowing early return.
- Updated joystick profiles and error recovery.
- Improved short status messages for common situations.
- Import LURD-based solution from clipboard by Alt-S.
- Miscellaneous Fixes and Improvements
- Fix mirror flip drawing and other rendering issues.
- Fix convert_outer_floors for all border floors.
- Fix warnings when switching levels during kill-enemy animations.
- Add actor facing modes (static, horizontal flip, rotate) and
use it for character and for enemy (in HeroPuzzle).
- Improve level config error messages.
- Fix GatePuzzle and LockPuzzle assert_config logic.
- Auto-append .png in load_image for missing extensions.
- Fix translated goal strings; allow recursive translation tokens.
- Catch joystick disconnect errors cleanly.
- Add cheat-mode (RShift-C) that allows pulls with Shifts and more.
Version 0.3.0 - 2025-08-21
- Improved Windows support:
- New install-deps.bat to check for and install missing dependencies.
- dungeon.bat now prompts you to run install-deps.bat if needed.
- Level collections
- Introduced named collections that contain actual levels.
- Main Screen now shows collection plates in the maze; press
Space on a plate to jump into that collection.
- Command line support
- New command line options for Unix and Windows, see: dungeon --help.
- Implemented: --level N, --collection NAME, --list-collections.
Start directly in a level / collection; list available collections.
- Solution system
- Solutions now include notions of 'push' and 'press-cell' primitives.
- Solutions are summarized as: N moves, N pushes, N presses, N targets.
- New Mirror Puzzle
- Reflect beam from generator to collector using mirrors.
- Mirrors are static or moveable, attached to barrels, lifts, carts.
- Mirrors may be rotatable or have a fixed orientation.
- Mirrors may be activated or deactivated, or have fixed activeness.
- Walls, closed gates and locks stop the beam; portals relocate it.
- New actors and map cell types
- Cart: like lift, but slides by 1 cell on floor in 4 directions,
while lift moves in void until obstacle.
- Mirrors attached to barrels, carts, or lifts.
- New map cells: glass (an obstacle that passes the beam), traps,
beam generator, beam collector.
- Themes
- Added variants of mirrors and all new cell types across themes.
- Added beam image for clipping, currently identical across themes.
- The minecraft theme is now quite complete and pleasing.
- New character and enemy images in moss theme (druid and troll).
- GatePuzzle now supports traps:
- Traps are like gates with reversed meaning; toggled by plates.
- The character dies when stepping on non-disarmed trap.
- Added one GatePuzzle level demonstrating traps in place of gates.
- BarrelPuzzle improvements:
- Auto-detect Sokoban Zero-Space type B (ZSB) levels.
- Generate ZSB levels of given size when "zsb" flag is set in config.
- Optimize solution for ZSB levels using double-push.
- Fix and improve solution in many level configurations.
- Fix solution when not at level start (after pushes).
- Clipboard support
- RShift-D now copies the current map to the clipboard too.
- The solution string (on KP-Enter) is also copied to the clipboard.
- The actor selected by the cursor is now highlighted for clarity.
- The native map format now supports portals and mirrors (with metadata).
- Solution speed can now be changed with the mouse wheel or PgUp/PgDown keys.
- Update web site with Mirror Puzzle info, controls, video and screenshots.
Version 0.2.1 - 2025-06-13
- Fix Windows compatibility
- Fix critical startup issues related to locale encodings.
- Add dungeon.bat to run the game from Windows console.
- New install and packaging
- Add Makefile with targets: install, uninstall, web, and more.
- Enable packaging with "make dist" (creates tar.gz and zip).
- Documentation updates
- Update README.md and download.html with download instructions.
- Document new keybindings (such as 'u' for undo and KP-Enter).
Version 0.2.0 - 2025-05-30
- New Solution System
- Puzzles can provide a solution from any current position.
- Solutions are computed first and then replayed centrally.
- The first press of KP Enter computes; the second replays.
- Support in puzzles: Barrel, Gate, Color, Minotaur, RotatePic.
- New Undo System
- Press 'u' to undo one step back to the level or room start.
- Full undo includes actor moves, states and cell transitions.
- New Minotaur Puzzle
- Escape the labyrinth while being chased by the Minotaur!
- Auto-generated levels with configurable size and Minotaur step.
- Support for pre-created maps.
- Support for solution playback.
- New SwitchBox Puzzle
- Push barrels onto plates to toggle related gates and barrels.
- Related gates and barrels are color-coded for clarity.
- Support for pre-created maps.
- Four handcrafted levels.
- New actor states: phased (semi-transparent, passable), hidden.
- Character flipping is now automatic, no need for duplicate images.
- Themes can now customize character, enemy, and cursor images.
- Improve several themes; some now include own character and enemy.
- Update all translations for supported languages.
- Better support for bidirectional text, like Hebrew.
- Level titles, names, and goals are now smarter and better localized.
- The "press cell" event is now a formalized part of the game.
- Space key sends "press cell" for the char cell with no info.
- Mouse clicks and some keys send "press cell" with button info.
- Improve joystick support with multiple PlayStation controller profiles.
- Implement music fadein on start.
- Key and animation handling refined for smoother gameplay.
- More robust input handling at level start/end and during animations.
- Update web site, including new category Videos.
- Added 3 new videos demonstrating both new and existing features:
- Minotaur Puzzle
- SwitchBox Puzzle
- StoneAge Puzzle
- New tutorial pages on creating puzzles and themes.
Version 0.1.0 - 2025-02-24
- 12 puzzles
- Atomix Puzzle
- Barrel Puzzle
- Color Puzzle
- Fifteen Puzzle
- Gate Puzzle
- Hero Puzzle
- Lock Puzzle
- Memory Puzzle
- Portal Puzzle
- RotatePic Puzzle
- StoneAge Puzzle
- Trivial Puzzle
- 13 themes
- default
- classic
- ancient1, ancient2
- modern1, modern2
- minecraft
- moss
- stoneage1, stoneage2, stoneage3, stoneage4, stoneage5
- Some puzzles (Hero, StoneAge) do not have Generator yet.
- Initial support for Solvers (Barrel, Gate).
- Support for Hints (Atomix, Fifteen, Memory, Portal, RotatePic).
- Support for precreated level collections (Atomix, Barrel, StoneAge).
- Support for mouse and PlayStation controlers.
- Background music and sound effects.
- Initial support for main screen.
- Initial support for translations.