The motive of writing USokoban is to provide a new native version of Sokoban for Linux/GNU.
USokoban is developed under Ubuntu, and is written in C on top of the GTK+.
I have only tested it under Ubuntu,
(3 of the top 10 distributions of Linux according to
but it might work for other Linux distributions with a GNOME/KDE desktop enviroment running on i386
machines as well. It is reported that USokoban can be also compiled for
amd64/x86-64 architecture. There is
a guide to compiling and installing
USokoban on x86-64/Fedora/xfce
written by ikamusume at FedoraForum.org.
USokoban can be also compiled for PC-BSD, a customized installation of
Suggestions, comments and bug reports are welcome.
Minor update. The binary file is the same as v0.0.13. The 'alphabet.txt' levelset is updated.
A new levelset 'zodiac.txt' is added. A problem of the installation script 'install_usokoban.sh' is fixed.
Also, a new screenshot of USokoban running on Ubuntu 12.04 is added on this page.
[July 18, 2012] v0.0.13
Minor update. A new levelset 'alphabet.txt' is added to the binary package.
Most of the levels of this new levelset are authored by laizhufu. Open the levelset
with a text editor to see the authors of each level.
[July 13, 2012] v0.0.12
Compress the solutions using zlib
before saving to the database. Please delete the file '.usokoban.solutions'
created by version 0.0.11.
[July 12, 2012] New icon. As a result, the binary package becomes much smaller in size.
[July 11, 2012] v0.0.11
Using the SQLite engine,
USokoban can now save two best solutions automatically for each level, with respect to the number of moves
and pushes, respectively. All solutions are saved in a single file named '.usokoban.solutions' in the user's home
If a level has been solved before, the parameters of the saved solutions will be shown at the title bar.
Press F7 or F8 to load a saved solution. F7 loads the best solution with regard to the number of moves,
and F8 is for pushes (the two solutions may be the same).
USokoban remembers solved levels by hash value, rather than by their locations in the file system.
[Feb 13, 2012] v0.0.10
I would like to thank Debian Developer Julian Gilbey for making the following contribution to USokoban.
Several bugs fixed so that USokoban can be compiled for amd64 architecture.
Rewrite the functions for level file reading using PCRE.
Strengthened the config/settings file handling.
[Aug 20, 2011] The source code for USokoban is available for download now.
[Apr 23, 2011] v0.0.9
A naive solver has been built into USokoban. It works for tiny levels. See README for the usage of the solver.
I would like to thank Brian Damgaard, the author of Sokoban YASC, for his instruction in Sokoban solver algorithm.
[Dec 27, 2010] v0.0.8
Add a button for "fullscreen" on the toolbor.
[Nov. 26, 2010] v0.0.7
Remember the level folder in the setting file. Please delete the setting file of the previous version manually by using command "rm ~/.usokoban", before launching the new version.
Add a button for "open" on the toolbar.
[Nov. 17, 2010] v0.0.6
Add a toolbar.
Use Ctrl-J to copy the [sokojava] discuz! code for the current level to clipboard, which is used on MF8 forum.
[Nov. 7, 2010] v0.0.5
Remember the active skin file and window maximized/unmaximized state in the setting file. Please delete the setting file of the previous version manually by using command "rm ~/.usokoban", before launching the new version.
Auto-resize window to fit the level when leaving the maximized state; auto-resize window to fit the level when switching skins by F1/F2/F3/F4.
[Oct. 29, 2010] v0.0.4
Make the program installable, so that all the users of the system can access USokoban. See the README file for detailed instruction
Include another levelset of 50 levels remodeled by 'stopheart' in the package.
[Oct. 23, 2010] v0.0.3
Further optimize the path-finding algorithm. Now it takes less than a second to find a path for the box even in extreme cases (tested with Intel Pentium Dual-Core T2310 1.46GHz, 1GB memory).
Click a box to show where the box can be pushed to. Click a wall to show which boxes can be reached by the pusher.
Suggested by Brian, adopt the 'Common Sokoban Skin Format'.
Press F11 to switch to fullscreen mode.
Press Ctrl+N to normalize the level, i.e., to remove walls and boxes unreachable by the pusher.
Remember the last played levelset and level by saving the information to the file 'sokoban.settings'.
Use F1, F2, F3 and F4 to switch from different skins.
Include a levelset of 50 levels by 'stopheart' in the package.
[Oct. 14, 2010] v0.0.2.
Better support for extreme long solutions.
Optimize the algorithm for finding path for box-pushing.
Use Ctrl-V to paste either level or solution from clipboard.
If the main window is not maximized, it will auto-resize to
fit the level. Use Ctrl-L to copy the level together with solution to clipboard.
Use Ctrl-M to copy the level in both XSB and MF8 format
(The MF8 format is used in the MF8 forum to display sokoban level graphically).
And several other minor changes.
[Oct. 8, 2010] First release.
open xsb format levelsets
ctrl+[left/right arrow] to select levels from the file
support levels of size upto 50x50
support solutions of at most 100,000 moves
use arrow keys to control the man
mouse control: click an empty tile, the man will move there if it is possible
mouse control 2: click a box, and then click an empty tile, the man will push the box there if possible;
when a box is selected, click it again to unselect, or click another box directly to select the other
show the number of moves and pushes on status bar
unlimited undo and redo ('backspace' key for undo, 'space' key for redo)
press 'esc' key to restart a level
ctrl+c to copy solution or partial solution (i.e. a 'lurd' string) to clipboard
ctrl+v to paste solution from clipboard (USokoban does NOT save solutions to files at the moment)
the default skin is taken from XSokoban, use F3 and F4 to switch skins of different size (you can design your own skins if you like)