Sokoban
Sokoban levels | |
---|---|
Location | Level 2–9 of Sokoban |
Bones | No |
Mappable | Yes |
Teleportable | No |
Diggable floor | all but bottom level |
Diggable walls | No |
Sokoban ("warehouse keeper" in Japanese) is a branch of the dungeon in NetHack that is modeled on and named after a game where a character is navigated through a series of levels. The object is to move objects to cover goal squares.
In the traditional Sokoban game, the character must move only in the cardinal directions (north, south, east, and west) and push the objects from behind to move them. Objects cannot be pulled, created, or destroyed, and a player must avoid failing the level by getting objects stuck or boxing themselves in. In the case of NetHack, the hero must push boulders into pits or holes that block the way forward.
Contents
Generation
The up stairs to Sokoban is located from dungeon levels 6 to 10 inclusive in the Dungeons of Doom, and is always one floor below the Oracle level. Neither the level containing the Sokoban stairs nor the actual Sokoban levels are eligible for leaving or loading bones.
Description
There are a total of 8 maps for Sokoban, with two for each of the four floors. The levels are ascending in dungeon depth (i.e., the 2nd level is above the 1st etc); however, monster difficulty increases as if descending to lower dungeon levels. Sokoban in NetHack is further complicated by the presence of monsters in the puzzles, so some concessions have been made:
- Diagonal moves of the boulders are still not allowed, but the player character may move diagonally if there is space to do so, and may also attack, fire or cast spells diagonally.
- It is possible to create or destroy boulders (e.g. with a force bolt or a wand of striking), as well as move over them in limited circumstances, but a luck penalty is applied for each offense.
- Other spells, wands and projectiles can be shot past boulders as normal.
If playing with text mode, you might want to change the boulder symbol to 0.
Level descriptions
All walls in Sokoban are undiggable and block phasing; the floor is undiggable only on the first level. All levels are no-teleport, and it is impossible for the player to level-teleport between Sokoban levels. Each level is fully mapped upon arrival.
On each level, there is one random ring, one random wand, and four (stacks of) comestibles randomly placed around the map. Additionally, the final floor of the branch contains a treasure zoo guarding a bag of holding or amulet of reflection in one of three closets, with an equal chance of each item.[1][2]) The prize sits on a burnt Elbereth and a cursed scroll of scare monster, and both prize items are generated normally.
The following information pertains to an upcoming version (NetHack 3.7.0). If this version is now released, please verify that the information below is still accurate, then update the page to incorporate it.
Special levels, including Sokoban, may be flipped horizontally and/or vertically.
Both prizes are no longer equally likely for each floor. Instead, floor 4a has a 3⁄4 chance (75%) of a bag of holding, and 4b has a 3⁄4 chance (75%) of an amulet of reflection.a | b | |
---|---|---|
1 | Sokoban Level 1a |
Sokoban Level 1b |
2 | Sokoban Level 2a ---- -----------
--.>-------- |.........| |..........| |.........| |.0-----0-.| |.........| |..|...|.0.| |....<....| |.0.0....0-| |.........| |.0..0..|..| |.........| |.----0.--.| |.........| |..0...0.|.-- |.........| |.---0-...0.------------+| |...|..0-.0.^^^^^^^^^^^^.| |..0......---------------- -----..|..| ------- |
Sokoban Level 2b ----------- -----------
|....|....--- |.........| |..00|00...>| |.........| |.....0...--- |.........| |....|....| |....<....| |-.--------- |.........| |..0.|.....| |.........| |.00.|0.0.0| |.........| |..0.....0.| |.........| |.000|0..0.----------------+| |....|..0.0.^^^^^^^^^^^^^^^.| ----------------------------- |
3 | Sokoban Level 3a |
Sokoban Level 3b |
4 | Sokoban Level 4a --------------------------
|>......^^^^^^^^^^^^^^^^.| |.......----------------.| -------.------ |.| |...........| |.| |.0.0.0.0.0.| |.| --------.----| |.| |...0.0..0.0.| |.| |...0........| |.| -----.-------- ------|.| |..0.0.0...| --|.....|.| |.....0....| |.+.....|.| |.0.0...0.-- |-|.....|.| -------.---- |.+.....+.| |..0.....| |-|.....|-- |........| |.+.....| |...------ --|.....| ----- ------- |
Sokoban Level 4b ------------------------
|..^^^^^^^^^^^^^^^^^^..| |..-------------------.| ----.| ----- |.| |..|0-- --...| |.| |.....|--|.0..| |.| |.00..|..|..0.| |.| --..00|...00.-- |.| |0..0...|0..| ------|.| |.00.|..|..0| --|.....|.| |.0.0---|.0.| |.+.....|.| |.......|..-- |-|.....|.| ----.0..|.-- |.+.....+.| ---.--.| |-|.....|-- |.0...| |.+.....| |>.|..| --|.....| ------- ------- |
Sokoban and luck
It is possible to solve every Sokoban level just by moving boulders around in the normal fashion - however, as mentioned above there are some actions that the original game does not allow that are legal in NetHack, but are considered "cheating" in some way and apply a -1 penalty to luck. Assuming the level is still unsolved, the following actions incur luck penalties in Sokoban:
- Jumping in any direction. (To avoid the penalty, press Escape when prompted where you want to jump.)
- Breaking a boulder.
- Squeezing past a boulder (or walking over one, when polymorphed into a monster that can lift and throw boulders).
- Casting stone to flesh on a boulder.
- Polymorphing a boulder.
- Reading a scroll of earth.
- Being pulled by a thrown iron ball.
- Hurtling through the air due to Newton's 3rd Law (i.e. throwing something while levitating).
The following actions do not incur a luck penalty when done in Sokoban:
- Teleporting a boulder (as this may move the boulder somewhere odd).
- Falling into a hole or pit.
- Polymorphing a statue into a boulder.
- Carrying a boulder into Sokoban while in the form of a monster that can do so, then dropping it.
- Digging your own pit or hole, or filling it with boulders.
The following information pertains to an upcoming version (NetHack 3.7.0). If this version is now released, please verify that the information below is still accurate, then update the page to incorporate it.
Jumping, being pulled by a thrown iron ball, and hurtling no longer cause a luck penalty (since they don't actually allow you to move diagonally).Strategy
In addition to learning how to best move boulders around and solve the puzzles with few or no errors, the climb up Sokoban is also complicated by the presence of monsters that can block the movement path of boulders or even risk breaking them.
For level-specific strategies, see the articles on the level maps linked above.
Puzzle
- Think ahead. The entire level is mapped, and all the levels are solvable without "cheating", barring some unfortunate monster generation.
- Not all of the boulders have to be used - regardless, try to keep enough of them open to fill all the pits.
- You can use a text editor, grid paper or other resource to try to work out the solutions before actually attempting them in-game.
- If you want to try out something, push the boulders only in ways you can undo - never create a square of four boulders, or two neighbors against a wall.
- Be careful - a typo may render a boulder immobile against the wall. Try to move diagonally or with the goto-key (underscore) whenever possible, as these commands will not push a boulder.
- If a hole is open, falling through it to the level below lets you get back to the stairs. This can be useful in certain situations where a boulder is pushed the wrong way.
Monster-puzzle interaction
- Check whether there are monsters in front of the pits.
- Use a magic whistle for pets, or leave them behind one level, and visit their level every 74 turns or less to avoid them losing tameness points. Alternatively, known-cursed items can help keep pets out of the pit area.
- Be aware of mimics imitating boulders. Unlike real boulders, mimics will not appear until they are in your line of sight, but a space containing a boulder may also contain a mimic mimicking a boulder, if that makes sense. You can move diagonally between mimicked boulders.
The following information pertains to an upcoming version (3.7.0). If this version is now released, please verify that the information below is still accurate, then update the page to incorporate it.
Displacement of peaceful monsters is now possible, making it much easier to move them out of the path.
Per commit d4ac146c, pets will attempt to avoid locations where boulders can be pushed.Stuck boulders
- If you must take a luck penalty, do so as early as possible. Put away any gray stones that might be luckstones, unless you are sure that your natural luck is positive. The sooner you take that luck penalty, the more likely it will have timed out the next time you encounter a critical luck-influenced event, such as needing to pray.
- If you mistakenly moved a boulder between yourself and the stairs from the previous level, dig down to create a hole and fall through (no penalty). Be sure to choose a safe place to dig. You may wish to use a spare boulder to fill the hole afterward.
- Destroy a boulder with a pick-axe, force bolt, or wand of striking (luck penalty). Be careful not to destroy too many boulders.
- Drop everything in your inventory (including armor) and squeeze into the same square as a boulder. This will help you separate boulders stuck together, but not a boulder stuck against a wall. This way, you can also kill monsters trapped between boulders and holes which block the way (luck penalty).
- Polymorph into a giant and step over boulders (luck penalty). You still cannot lift them, however; neither can monsters.
- Summon more boulders with a scroll of earth (luck penalty). Two scrolls can be found on the first Sokoban level. A non-cursed scroll will summon multiple boulders, possibly making the situation worse.
- Drop a wand of striking so that a monster picks it up, and position yourself between that monster and the boulder you want destroyed, in hopes that the monster will destroy the boulder for you; this incurs no luck penalty.
- If the boulder is stuck because of a monster behind it, shoot projectiles or spells past the boulder to kill the monster. Be sure the monster in question is not peaceful - note that no peaceful humans can be generated in Sokoban.
- An aklys is the ideal choice, as it returns to your hand for repeated throwing, and can easily be obtained from the gnomes in the Mines. Note that there is a 1⁄100 chance of it failing to return, so have a spare or some other solution available.
- If the monster is a coaligned unicorn, you risk a large luck penalty for killing it; if you determine by whatever means that the monster is a coaligned unicorn, you can toss gems to it to compensate for the inevitable luck hit. Sokoban is no-teleport, so the unicorn cannot leave of its own accord. Also, you cannot kill unicorns with rocks, an easily accessible missile weapon.
- Force bolts and the wand of striking will destroy boulders, but other methods are safe. Pacifists may want to strip naked and displace their pet onto the boulder. If you have a magic whistle, you can stand next to the boulder and apply the whistle until your pet appears on the other side of the boulder. Let your pet kill the obstructing monster and then use the whistle to get them out of the way.
- Hit the boulder with a wand of teleport (no luck penalty) after you finish as many other boulders as possible. While the new location may not be better than the old one, it often can't be much worse.
Items
- Upon completion, check under unmoved boulders for useful items.
- The first level contains two guaranteed scrolls of earth; remember to #name them as such as soon as you find them. Some monsters will read scrolls of earth, especially nymphs that can pluck the scroll from your inventory; however, most monsters only have a 1⁄10 chance of doing so unless they have a hard helm on.
- Sokoban is an excellent place to stock up on comestibles and other loot. If you are dealing with encumbrance issues or otherwise trying to manage your inventory, simply leave the food items on the floor and eat them only when you need to. On the other hand, grab every scroll and wand you see; at the least, doing so means a monster will not be able to pick them up and use them to your disadvantage.
- Items can sometimes be generated over holes. Pushing a boulder over the hole will bury the item. If you wish to retrieve the item instead, you may:
- Kick the item away; it will usually fall down another hole and appear somewhere on the level below. This will destroy the item if it is fragile, and on the top level will wake the monsters in the zoo.
- Repeatedly step on the space containing the item; it will eventually fall down with you, although not necessarily onto your space. This will never break the item.
- Turn on autopickup and step on the space containing the item; you will pick it up before you fall. Beware of loadstones, both over the hole and on the levels below. You can use pickup_types or autopickup exception to limit yourself to only picking up the type of item you are trying to grab.
- Use a grappling hook.
- Monsters can attack you with the guaranteed wand if applicable. If you have not already found it, be careful clearing the zoo, e.g. send your pet in without entering line of fire.
- Items can sometimes be generated over holes. Pushing a boulder over the hole will bury the item. If you wish to retrieve the item instead, you may:
- If you reach the end of the branch and do not see the prize, it is probable that some @ found the amulet of reflection and picked it up. Be sure to claim the amulet immediately after killing said monster, since you don't want your new amulet of reflection to become a snack for a rust monster or rock mole. Nothing will ever pick up the bag of holding, however.
Stash location
Once completed, the first level of Sokoban is often used as a stash level, for several reasons:
- The Eye of the Aethiopica can teleport the hero there instantly.
- It is conveniently located one level below the Oracle's dwelling, 2-8 levels from the Gnomish Mines, and located in the top half of the Dungeons of Doom, where shops and altars are likely.
- It is relatively free of monsters, and is biased toward neutral monsters, including less-dangerous baby monsters.
- There are spare boulders which can be used to further block off a safe area.
- There is a long corridor which can be used for polypiling.
- If there is an altar nearby, Sokoban can be used to control luck and avoid crowning during altar farming.
Out-of-game practice
nhss (originally by IanK of iank.org) is a C/terminal tool that sets up a Nethack-like environment (basic movement and boulder pushing only) that can be used to figure a level out before actually playing it, thus reducing the chances of rendering a level unsolvable. It can also record sessions and play them back step by step.
Unaffiliated but related to nhss, Nethack's Sokoban levels for various Sokoban implementations (XSok, Sokoban++, YSokoban, Universal Sokoban format and Games 4 Brains Sokoban format) which you can use to practice the levels in other Sokoban games.
Even more unaffiliated with any of the above, Nethack's Sokoban levels for Enigma.
The Nethack Android port by gurr with using Wizard mode can be done for practising on mobile. Use the level teleport option, go to the entry to Sokoban, and use the recreate map option if the player needs to try again.
Some other online web app links are listed below:
- An unaffiliated version of nhss, also called NHSS
- Annotate - by disperse, meant as a companion web app for Nethack, allows Sokoboan practice among other things. It allows you flip the levels for practice with the level flipping introduced in NetHack 3.7.0, and records user solutions.
- An alternative domain link to just the standalone Sokoban app by disperse.
- Sokoban Erim via Wayback Archive - a comprehensive collection of Sokoban resources
History
Sokoban first appears in NetHack 3.3.0. From this version to NetHack 3.4.3, including some variants based on these versions, luck penalties apply for most of the aforementioned actions minus jumping, even if the level is solved. In addition, the prize for the last Sokoban level does not have a cursed scroll of scare monster present, and depends on which final level map was generated: Sokoban Level 4a always has a bag of holding, and Sokoban Level 4b always has an amulet of reflection.
Starting in NetHack 3.6.0, the current rules regarding luck and boulder movement are applied, the cursed scroll of scare monster is generated on the prize square, and both final levels have a 1⁄2 chance (50%) of either prize item.
Origin
Sokoban is a video game created in 1981 by Hiroyuki Imabayashi, with the first commercial release published in December 1982 by Thinking Rabbit, a software house based in Takarazuka, Japan. Sokoban was a hit in Japan, where it sold more than 400,000 copies before being released in the United States in 1988, where it was published by Spectrum HoloByte for the Commodore 64, IBM PC compatibles, Amiga, and Apple II as Soko-Ban.
The presence of three doors in the treasure zoo with a prize behind one of them, is possibly a reference to the Monty Hall Problem.
Messages
- The boulder won't move diagonally on this floor.
- You attempted to push a boulder diagonally on an unsolved floor.
Variants
Most variants of NetHack attempt to improve upon the Sokoban experience in some form, on top of often adding new Sokoban levels:
- Some variants, such as SporkHack and UnNetHack, apply the level-flipping patch to Sokoban.
- Variants that contain magic chests place one at the beginning or end of Sokoban to aid players who use it as a stash level.
SLASH'EM
In SLASH'EM, the rules are the same as in NetHack 3.4.3, with 15 new possible levels - the final level has the usual 1⁄2 chance of either a bag of holding or an amulet of reflection at the end, dependent on the level generated. Ordinary sacks and oilskin sacks can be upgraded to a bag of holding in SLASH'EM, typically making the amulet the more desirable prize.
Some of the new Sokoban levels have iron bars - a doppelganger character can liquid leap through them, though this will incur a luck penalty, and the bars cannot be crossed by any other means (e.g., by polyself into a small or slithy monster such as a snake).
Several public server versions of SLASH'EM include a patch that adds the acid hound, which corrodes the floor to create pits when killed; these can be very troublesome if they appear in Sokoban, as they may make solving the level impossible without using a scroll of earth.
NetHack brass
NetHack brass does not change or add any layouts for Sokoban levels, but instead has a choice between the amulet of reflection, a cloak of magic resistance, and a bag of holding as the prize item. All monsters will avoid stepping on or touching the items, preventing abuse via using pets to retrieve unchosen prizes.
Non-artifact items that provide magic resistance or reflection can wear out and disintegrate from resisting or reflecting enough times, making it a good idea to carry a spare source. The bag remains a good choice for characters that already have "permanent" and/or redundant options for both properties.
GruntHack
GruntHack adds some new Sokoban levels, and offers a choice between the amulet of reflection, a cloak of magic resistance, and a bag of holding as the prize item, similar to NetHack brass. If one of the prize closet doors is opened or kicked down, the others will seal; a means of identifying the closet containing the desired item, such as a potion of object detection, is recommended.
GruntHack also implements player displacement of peaceful monsters, making herding them out of the path of boulders considerably easier.
SporkHack
In SporkHack, Sokoban rules are mostly unchanged from NetHack 3.4.3, though each final level has an equal probability of the prize being an amulet of reflection or a bag of holding. Sporkhack also has displacement for peaceful monsters.
UnNetHack
UnNetHack introduces new Sokoban levels as well, and additionally shortens the branch to three levels—the vanilla maps for levels one and two may all be used to create level one.
From UnNetHack 4.1.1 onwards, cheating in Sokoban does not incur a luck penalty, and solving Sokoban without cheating is instead tracked as a conduct; as of UnNetHack 6, solving Sokoban without cheating increases luck by 1 point. To compensate, the scrolls of earth typically found on the first level are not guaranteed.
The final level always has a bag of holding, a cloak of magic resistance or displacement, and an amulet of reflection, life saving or flying as the prizes. When one of these objects is picked up, the other two are destroyed. The prize items are temporarily type-identified while in direct line of sight, allowing for a more informed decision.
dNetHack
In dNetHack, Sokoban rules and maps are mostly unchanged from NetHack 3.4.3, but the boulders are replaced with massive stone crates, which behave similar to boulders and contain food - the food is released from the crate when pushed into the pits or holes within Sokoban, and the crates can be broken like boulders to access the food (though this carries a luck penalty due to the ruleset). dNetHack also places a magic chest in one of the closets beyond the treasure zoo at the top floor.
Pets that are left in Sokoban will not lose tameness.
DynaHack
Sokoban in DynaHack has three floors and uses maps from both UnNetHack and SLASH'EM, among other variants. The random rings and wands that are normally scattered in Sokoban are instead placed within a sack on Sokoban's final level, with the standard prizes moved to Mines' End, making the Sokoban branch more optional.
The prize selection is derived from earlier versions of UnNetHack: the choices are a bag of holding, a cloak of magic resistance or displacement, and an amulet of reflection, life saving or ESP.
NetHack Fourk
NetHack Fourk gives a name to each Sokoban level, and contains quite a few quality-of-life changes which are non-exhaustively listed below:
- If a peaceful monster would spawn in Sokoban, it is generated hostile instead. Thus, it is safer to kill unknown monsters that are blocking boulder movements.
- Sokoban luck penalties can only lower luck to a minimum of -3, and .
- Luck penalties do not apply when you have a non-cursed luckstone.
- Luck penalties do not apply when you are hallucinating, but a boulder will hit you for 1d12 damage.
- There are a number of additional Sokoban levels. Player feedback suggests that these are on average easier than the vanilla levels.
- Two of the new final Sokoban levels have a sack which contains rings of teleport control and polymorph control and a third random ring. If you already have either of those rings, you might receive other jewellery.
- In the other final levels endings, if you already have reflection, the Soko prize will not be an amulet of reflection; if you already have a bag of holding, the prize is likely to be an amulet of reflection. In either case, or if you already have both items, the prize might be a simple oilskin sack.
- To help pacifists, completing Sokoban without cheating grants one experience level.
- To make Sokoban more skippable, Perseus's statue always contains the shield of reflection and the sack.
FIQHack
In FIQHack, all pits on the first level of Sokoban are converted to holes, which lead back to the main dungeon floor containing Sokoban's branch stairs - the floor also contains a magic chest.
The rules for Sokoban are more similar to vanilla NetHack than 3.4.3, and prints a message once the level is solved. Additionally, monsters that would generate as peaceful otherwise are hostile if created in Sokoban, and co-aligned unicorns are not generated - this is done in order to avoid creating scenarios where a character must risk a major luck or alignment penalty, so they can more safely kill unknown monsters that generate in the path of their boulder movements.
Messages
- You feel some arcane magic being lifted from the area.
- A Sokoban level was solved.
xNetHack
xNetHack uses the same maps, rules and layouts for Sokoban as vanilla NetHack, with the removal of flipped Sokoban levels introduced in the upcoming NetHack 3.7.0 due to the change's unpopularity.
SpliceHack
SpliceHack adds a few new levels from other variants for Sokoban: for those that have an equal number of pits/holes and boulders, a hole or pit is removed in order to create a spare boulder and make them less difficult. SpliceHack also has different versions of levels 2a and 2b that replace the boulders with explosive monsters such as gas spores and flaming spheres.
notdNetHack
In notdNetHack and notnotdNetHack, Sokoban is replaced with Lokoban, a single-floor branch that has a much simpler challenge but much less in the way of loot.
EvilHack
In EvilHack, several level maps from SLASH'EM, GruntHack, UnNetHack, and other variants are added for Sokoban.
On the final level, all three closets in the Sokoban zoo have a prize behind each door, but you will not be able to tell exactly what that prize is until you pick it up - you can learn the object type of the prize behind each door via some form of item detection, e.g. quaffing a potion of object detection or reading a non-cursed scroll of magic detection. Like GruntHack, the doors are made impenetrable to prevent taking more than one prize: once one door is opened, the other two doors disappear and are replaced with a sealed wall; despite this, the doors can still be broken, e.g. by a giant. When you pick up one of the prizes, the other two will magically disappear regardless of whether or not the doors were opened.
There are two different items of each type that can spawn behind each door, with an equal probability of each item:
- Sokoban prize armor – gauntlets of protection or a helm of speed
- Sokoban prize amulet – an amulet of reflection or an amulet of magic resistance
- Sokoban prize tool – a bag of holding or a magic marker
Since magic markers do not generate randomly, Sokoban is potentially one of a few locations in the game where a marker can be found.
GnollHack
In GnollHack, Sokoban is largely the same as in NetHack 3.6.2 except for the top floor: there is an additional room accessible from the zoo where a mage resides. He sells items, teaches spells and provides other services (such as performing incantations) for a fee.
Hack'EM
Hack'EM imports several maps from SLASH'EM, SlashTHEM, Fourk and other variants for Sokoban, and all levels have been given Fourk-style names to make them easier to reference. The prizes given are also the same as in EvilHack, with the same rules concerning their identities.
Encyclopedia entry
Sokoban (Japanese for "warehouse keeper") is a transport puzzle
in which the player pushes boxes around a maze, viewed from
above, and tries to put them in designated locations. Only one
box may be pushed at a time, not two, and boxes cannot be pulled.
As the puzzle would be extremely difficult to create physically,
it is usually implemented as a video game.
Sokoban was created in 1982 by Hiroyuki Imabayashi, and was
published by Thinking Rabbit, a software house based in
Takarazuka, Japan. Thinking Rabbit also released three sequels:
Boxxle, Sokoban Perfect and Sokoban Revenge.