Feature list : Game Play
From Sokoban Wiki
[show all]
2. Game Play |
Game Play
Game Play | Game Play
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
autosave best solutions | yes tiebreaking: moves, pushes, secondary metrics | yes | yes tiebreaking: moves, pushes | no | yes tiebreaking: moves, pushes | autosave best solutions | yes tiebreaking: moves, pushes, secondary metrics | no | no | yes | |||||||||||||||||||||||||||||||||||||||||||||
autosave solutions options | always autosaves better solutions; inferior solutions are discarded | always autosaves better solutions; inferior solutions are discarded | autosave solutions options: never/always/if better/ask; existing solutions are kept | no | autosave solutions options: none/best 5/best 10/all | autosave solutions options | always autosaves better solutions; inferior solutions are discarded | always autosaves game history | optionally saves game when solved; only one solution per saved game | always autosaves better solutions; inferior solutions are discarded | |||||||||||||||||||||||||||||||||||||||||||||
push or move optimized pathfinding | yes | yes | yes | yes | yes | push or move optimized pathfinding | yes | yes | yes | yes | |||||||||||||||||||||||||||||||||||||||||||||
move animation modes | smooth, cell by cell, instant | cell by cell | cell by cell, instant | cell by cell | smooth | move animation modes | cell by cell, instant (instant with choice points is listed but is too fast to be useful) | cell by cell, instant | cell by cell, instant | cell by cell, instant | |||||||||||||||||||||||||||||||||||||||||||||
mouse move control: drag and drop | yes with reachable squares | no | yes without reachable squares | no | yes with reachable squares | mouse move control: drag and drop | yes with reachable squares | no | no | yes partial implementation: player only, not boxes without reachable squares | |||||||||||||||||||||||||||||||||||||||||||||
mouse move control: select and drop | yes with reachable squares | yes with reachable squares | yes with reachable squares | yes with reachable squares | yes with reachable squares | mouse move control: select and drop | yes with reachable squares | yes with reachable squares | yes without reachable squares | yes with reachable squares | |||||||||||||||||||||||||||||||||||||||||||||
mouse move control: drag and track | no experimental click-less tracking available | no | no | no | no | mouse move control: drag and track | no | no | yes | no | |||||||||||||||||||||||||||||||||||||||||||||
reverse mode play starting at end position (pull instead of push) | yes | yes | no | no | no | reverse mode play starting at end position (pull instead of push) | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
show secondary metrics (box-pushes, box-changes and pushing-sessions) | yes display: mouse over | no | yes display: optional, configurable | no | no | show secondary metrics (box-pushes, box-changes and pushing-sessions) | yes | yes | yes | no | |||||||||||||||||||||||||||||||||||||||||||||
show a lowerbound of the solution length | no | no | no | yes | no | show a lowerbound of the solution length | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
timing | yes optional; optional idle time threshold | no | no | no | no | timing | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
move player through boxes | no | no | no | no | no | move player through boxes | yes target: reachable squares through boxes. figure: small black square. via: options -> go through boxes. | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
Game Play : Legal moves | Game Play : Legal moves
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
show player's reachable squares | yes figure: transparent small skin graphics | yes figure: skin graphics, independent of player | no | no | yes | show player's reachable squares | yes figure: small round blobs | yes | no | yes figure: transparent small skin graphics or round blobs | |||||||||||||||||||||||||||||||||||||||||||||
show box's reachable squares | yes figure: transparent small skin graphics | yes figure: skin graphics, independent of box | yes figure: skin graphics, independent of box | yes figure: transparent small skin graphics | yes | show box's reachable squares | yes figure: small round blobs | yes | no | yes figure: transparent small skin graphics or round blobs | |||||||||||||||||||||||||||||||||||||||||||||
show pushable boxes | yes dynamically by clicking a wall. figure: configurable border | yes dynamically by clicking a wall. figure: yellow border | no | no | no | show pushable boxes | yes permanent with CTRL+F9. dynamically by clicking a wall. figure: skin graphics, independent of box | yes dynamically by clicking a player | no | no | |||||||||||||||||||||||||||||||||||||||||||||
show dead squares | yesfigure: configurable shaded square | no | no | yesfigure: darker shaded square | no | show dead squares | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
simple deadlock detection | yes dead squares, freezing boxes | no | no | yes dead squares, freezing boxes | no | simple deadlock detection | no | yes dead squares | no | yes dead squares | |||||||||||||||||||||||||||||||||||||||||||||
advanced deadlock detection | yes bipartite: n boxes for m goals; 1 goal for n boxes; corrals: precalculated at level load time + 100 ms search after a push | no | no | yes | no | advanced deadlock detection | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
Game Play : History | Game Play : History
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
undo/redo | unlimited | unlimited | unlimited | unlimited | unlimited | undo/redo | unlimited | unlimited | unlimited | unlimited ? | |||||||||||||||||||||||||||||||||||||||||||||
undo all | yes | yes | yes | yes | yes | undo all | yes press [esc] | yes | yes | unnecessary move history list is readily available - press [backspace] | |||||||||||||||||||||||||||||||||||||||||||||
redo all | yes | no see "replay" note | no | yes | no | redo all | no | yes | yes | unnecessary move history list is readily available - press [backspace] | |||||||||||||||||||||||||||||||||||||||||||||
replay | yes forwards and backwards | yes forwards and backwards the buttons are named "undo/redo all" but they are best categorized as "replay" because they show the moves instead of changing game-state instantly | yes forwards | no undo/redo is available | yes forwards and backwards | replay | yes forwards (solutions only) | yes forwards | yes | yes forwards the program crashes on mousewheel up/down during replay, sometimes so badly that computer expertice it required to make it run again | |||||||||||||||||||||||||||||||||||||||||||||
replay ergonomics | unified start/stop button; click anywhere to stop; keyboard shortcuts available; speed and direction can be changed during replay | press [esc] or [space] to stop; keyboard shortcuts available; the direction can be changed during replay. | separate start/stop buttons; click stop-button to stop; keyboard shortcuts available | replay ergonomics | with start/stop: CTRL+F2 to begin. SPACE to replay to next box-change. without start/stop: F2 | replay button starts; any click stops | trackbar represents replay history; drag trackbar to control replay; click anywhere, click [stop] button, or press [esc] to stop | unified start/stop button; click anywhere to stop/restart; keyboard shortcuts available; speed can be changed in settings | |||||||||||||||||||||||||||||||||||||||||||||||
mousewheel undo/redo/replay support | yes combined moves | yes single step | yes single step or optional combined moves | yes combined moves | no | mousewheel undo/redo/replay support | yes combined moves | Not applicable to mobile devices. | no | yes 3 moves at a time the program crashes on mousewheel up/down during replay, sometimes so badly that computer expertise is required to make it run again | |||||||||||||||||||||||||||||||||||||||||||||
browse move history | yes trackbar (choice-points, with preview) | yes enter move number as text | yes trackbar (all moves, with preview) | yes trackbar (choice-points, with preview) | no | browse move history | no | yes trackbar (all moves, with preview) | yes trackbar (all moves, no preview) | yes list (all moves, with preview) ergonomic flaw: preview setting is not remembered from one action to the next | |||||||||||||||||||||||||||||||||||||||||||||
quicksave slots | yes unlimited (interface: graphical, window, thumbnail preview) | yes 8 (interface: keyboard) | yes unlimited (interface: graphical, pop-up, list) | no | yes 3 (interface: graphical) | quicksave slots | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
one-click load quicksaves | yes keyboard: press [Enter] to load currently selected snapshot; mouse: double-click a snapshot on the list | yes (keyboard: keys 1 to 8) | no | no | yes | one-click load quicksaves | no | no | no | no | |||||||||||||||||||||||||||||||||||||||||||||
remember last session | yes file, level, history with redo, position position is optional, default "off", additionally, up to 25 recent (file, level) | yes file, level, history with redo, position | yes file, level | no | yes file, level, history without redo, position | remember last session | yes file, level, history without redo, position | yes file, level, history with redo, position | no | yes file, level, history with redo, position | |||||||||||||||||||||||||||||||||||||||||||||
|
Info
Choice points
A choice point in the game is when the player changes from one box to another, or finishes a series of moves that pushed a box in a single direction.
Several programs have replay features related to choice points. Sokofan, for example, has replay buttons (called "smart do/undo") to move from one choice point to another. Another example is the game history browser in Sokoban YASC which works with choice points instead of individual moves.
Mouse Move Control: Select and drop
Lift and drop. Left click on a box to lift it, move to the wanted position and left click again to drop. Lift and drop is easier for long moves than the drag and drop.
Mouse Move Control: Drag and track
Point at the pusher with the mouse and move it in the direction you want. The pusher will track your movements.
Simple deadlock detection
Simple deadlock detection deals with deadlock types that require rather simple analysis of the board and the game state. Good examples are:
Advanced deadlock detection
Advanced deadlock detection deals with deadlock types that require quite sophisticated computations. Good examples are:
Lowerbound of solution length regarding pushes
For solving a level all boxes have to be pushed to goals. A program can calculate the distance of every box to the nearest goal. While doing this it is presumed only one box is on the board (hence the box does not need to be pushed around other boxes). The sum of all these box distances to their goals results in a lowerbound - no matter how the boxes are pushed to their goals the level can never be solved with fewer than the calculated number of pushes. Some programs can calculate a lowerbound for the solution length (in pushes):
number of pushes so far + sum of all box distances to their nearest goals (presuming no other boxes are on the board).
This lowerbound can be useful in levels like the "Kobus Theron"-series.