Sokoban

From Wikipedia, the free encyclopedia
(Redirected from Boxxle)
Jump to navigation Jump to search

Sokoban
File:Official Sokoban website banner.png
Sokoban official fan kit banner
GenrePuzzle
DevelopersThinking Rabbit
ASCII
Itochu
Unbalance (ja)
Falcon
PublishersThinking Rabbit
ASCII
Itochu
Unbalance (ja)
CreatorHiroyuki Imabayashi
Platforms
First releaseSokoban
1982
Latest releaseThe Sokoban
2021

Sokoban[a] is a puzzle video game series in which the player pushes boxes in a warehouse to get them onto storage locations. The game is viewed from a top-down perspective. Boxes can only be pushed, never pulled, and only one box can be pushed at a time. The principal challenge is planning moves correctly to avoid deadlocks, i.e., situations where a box becomes permanently trapped, making the puzzle unsolvable.

Hiroyuki Imabayashi created the first Sokoban game as a hobby in 1981; his company, Thinking Rabbit, commercially released the first enhanced version in December 1982. This initial title became a bestseller in Japan. Between 1982 and 2000, Thinking Rabbit and its licensed partners developed new titles for various platforms. The series made its international debut in 1988 with the U.S. release Soko-Ban. In 2001, Falcon acquired the rights and trademark, becoming the main developer and licensor. Since then, new titles have been published under the Thinking Rabbit trademark as well as through licensed partners.

Since its 1982 debut, the series has sold over 4.1 million copies worldwide, with more than 40 official games released across various platforms. Reviewers have consistently praised the game's simplicity, its addictive and challenging nature, and the level of thought required. However, it has been criticized for a lack of variety.

Due to the creation of numerous clones, the name "Sokoban," a registered trademark, has become genericized to describe the genre. The series has inspired thousands of custom puzzles, as well as Sokoban-like games. Its core concept of pushing objects to targets has been widely used in puzzles within other video games. Moreover, Sokoban puzzles have been studied in the fields of computational complexity and artificial intelligence.

Gameplay

[edit | edit source]
File:Sokoban ani.gif
The puzzles in Sokoban require the player to push boxes to designated spots (shown as red dots in the animation) in the game world.

Sokoban takes place in a warehouse viewed from above and composed of walls and floor squares. A floor square may be empty, occupied by the player, or occupied by a box. Some floor squares are storage locations. The number of storage locations equals the number of boxes. The objective of the puzzle is to push all boxes onto storage locations.[1]

The player can move one square at a time, either horizontally or vertically, onto an empty floor square.[2] Boxes and walls block the player's movement, but the player can walk up to a box and push it to an empty square directly beyond it. If a box is pushed against a wall or another box, it does not move. Pulling boxes is not possible.[3]

Sokoban requires players to plan several moves ahead and consider all possible outcomes.[4] Careful decision-making is essential to avoid pushing a box into a position where it becomes permanently trapped against a wall, another box,[2] or in a dead end.[5] Such situations create deadlocks that make the puzzle unsolvable, regardless of future moves.[6]

History

[edit | edit source]

In 1981, Hiroyuki Imabayashi created the first Sokoban game for the NEC PC-8001 as a hobby, featuring text-based graphics and five original levels. The core mechanic was inspired by Hudson Soft's 1980 game Aldebaran #1 for the MZ-80K,[7] where players pushed luggage to block radiation.[8] Imabayashi envisioned a warehouse setting where incorrect box placement could make further progress difficult or even impossible, and designed levels that proved challenging even for his friends. At the time, his wife's parents owned a record store with a small computer section. A salesman who saw the game suggested it had commercial potential.[9] Imabayashi later ported the game to the NEC PC-8801, enhancing the graphics and expanding it to twenty levels. In 1982, he founded Thinking Rabbit in Takarazuka, Japan, and released the NEC PC-8801 version as the first commercial Sokoban game in December.[10][11]

In 1983, the Japanese magazine PC Magazine published Sokoban Extra Edition as a type-in program with ten new puzzles, developed by Thinking Rabbit on request.[12] In 1984, Thinking Rabbit released Sokoban 2, which included a puzzle editor.[13] Throughout the 1980s, new titles appeared on various Japanese platforms, including home computers such as the MSX and PC-9801, and consoles like the Famicom, Sega SG-1000, Sega Mega Drive, and Game Boy.[14] These releases were either developed by Thinking Rabbit or licensed to other companies.[10] In 1987, Spectrum HoloByte in California licensed Sokoban from Japan's ASCII, adapted the MSX version for IBM PC, Apple II, and Commodore 64, added features for the U.S. market, and released it as Soko-Ban in early 1988.[15][16] The official series continued in Japan during the 1990s with new titles for the Super Famicom, Windows, Macintosh, and PlayStation.[17]

Around 2000, Thinking Rabbit became inactive but remained a legal entity.[8] In 2001, the Japanese software company Falcon acquired the copyrights and trademarks for Sokoban and Thinking Rabbit,[18] becoming the official developer and licensor. From 2004 to 2007, Falcon developed several titles for Japanese mobile phones.[19][20] Between 2015 and 2018, Falcon developed five Sokoban titles for Windows and the 2016 smartphone game Sokoban Touch, all published under the Thinking Rabbit brand.[17] In 2018, Falcon developed three Sokoban titles for Japanese digital terrestrial television broadcasters.[17]

Games

[edit | edit source]

Since its debut in 1982, more than 40 official Sokoban games have been released on various platforms, primarily in Japan but also internationally. Most titles are standalone, with a few sequels. The core mechanic of pushing boxes to storage locations has remained consistent in nearly all official titles, with the following exceptions:

  • One title includes stages with different core mechanics: Ultimate Sokoban (究極の倉庫番) features four themed stages with either strict move limits, boxes that float unless regularly touched or stored, a box that is a ghost, or boxes that, when stored, must complete an electrical circuit.[21]
  • Two titles have variant game modes: Sokoban Special of Tears (涙の倉庫番スペシャル) includes a mode where the player can use tools such as ropes,[22] and Sokoban Legend: Land of Light and Darkness (倉庫番伝説 光と闇の国) offers a mode in which the player must push enemies into holes and push puppets onto magic circles.[23]
  • One title deviates from the warehouse keeper mechanic: Power Sokoban (Power倉庫番) is an action-puzzle game in which the player shoots orbs and fills holes with rocks.[24]

The following table lists the titles in the Sokoban series.[17][14]

Title Release Platform Developer Publisher Region
Sokoban (倉庫番) 1982-1983 NEC PC-8801
NEC PC-6001mkII
NEC PC-8001mkII
Fujitsu FM-7
Sharp MZ-2000
Sharp X1
Thinking Rabbit Thinking Rabbit Japan
Sokoban Extra Edition (倉庫番[番外編]) 1983 NEC PC-8801 Thinking Rabbit PC Magazine (ja) Japan
Sokoban 2 (倉庫番2) 1984 NEC PC-9801
NEC PC-8801
NEC PC-6001mkII
NEC PC-8001mkII
Fujitsu FM-7
Sharp X1
MB-S1 (ja)
Thinking Rabbit Thinking Rabbit Japan
Sokoban ROM Pack (倉庫番 ROM Pack) 1984 MSX ASCII ASCII Japan
Sokoban Tape Pack (倉庫番 Tape Pack) 1984 MSX
Sokoban (倉庫番) 1985 Game Pocket Computer Epoch Epoch Japan
Sokoban (倉庫番) 1985 SG-1000 Sega Sega Japan
Sokoban Special of Tears (涙の倉庫番スペシャル) 1986 Famicom Disk System ASCII ASCII Japan
Soko-Ban 1988 IBM PC
Commodore 64
Apple II
Spectrum HoloByte[15] Spectrum HoloByte North America
Sokoban Perfect (倉庫番Perfect) 1989 NEC PC-9801
Sharp X68000
FM Towns
Thinking Rabbit Thinking Rabbit Japan
MSX2 Micro Cabin (ja) Microcabin
Sokoban (倉庫番)
BoxxleNA
1989 Game Boy Pony Canyon Pony CanyonJP
FCINA
Japan, North America
1991NA
Sokoban 2 (倉庫番2)
Boxxle IINA
1990 Game Boy
1992NA
Sokoban Deluxe (倉庫番Deluxe) 1990 Namco System 1 Namco Namco Japan
The Greatest Sokoban in History (史上最大の倉庫番)
Shove It! The Warehouse GameNA
1990 Sega Genesis NCS (ja)[25] Masaya (ja)JP
DreamWorksNA
Japan, North America
Sokoban (倉庫番) 1990 Game Gear Riverhill Soft Riverhill Soft Japan
Sokoban World (倉庫番World)
BoxyboyNA
1990
1991
TurboGrafx-16 Media Rings Media RingsJP
NECNA
Japan, North America
Sokoban Revenge (倉庫番Revenge) 1991 NEC PC-9801 Thinking Rabbit Thinking Rabbit Japan
Super Sokoban (Super倉庫番) 1993 Super Famicom Pack-In-Video Pack-In-Video Japan
Sokoban for Windows (倉庫番 for Windows) 1995 Windows Itochu Itochu Japan
Sokoban for Macintosh (倉庫番 for Macintosh) 1996 Macintosh
Ultimate Sokoban (究極の倉庫番) 1996 PlayStation
Sokoban Basic (倉庫番ベーシック) 1997 PlayStation
Sokoban Selection (倉庫番セレクション) 1997 Windows
Macintosh
Sokoban Special 102 (倉庫番スペシャル102) 1998 Windows Itochu Fujitsu Parex Japan
Ultimate Sokoban (究極の倉庫番) 1998 Windows Itochu Itochu Japan
Sokoban Basic 2 (倉庫番ベーシック2) 1998 PlayStation
Sokoban Basic (倉庫番ベーシック) 1998 Windows Unbalance (ja) Unbalance Japan
Power Sokoban (Power倉庫番) 1999 Super Famicom Nintendo Nintendo Japan
Sokoban Legend: Land of Light and Darkness (倉庫番伝説 光と闇の国) 1999 Game Boy J Wing (ja) J Wing Japan
Sokoban: Guide to Difficult Puzzles (倉庫番 難問指南) 1999 PlayStation Unbalance Unbalance Japan
2000 Windows
Sokoban (倉庫番) 2000 Windows
Sokoban First Step (倉庫番ファーストステップ) 2004 EZweb Falcon[19] Square Enix Japan
Sokoban Perfect (倉庫番パーフェクト)
(1/2/3)
2004 EZweb
Sokoban First Step (倉庫番ファーストステップ) 2004 i-mode Falcon[20] Dwango Japan
Sokoban Perfect (倉庫番パーフェクト)
(1-1/1-2/1-3/2-1/2-2/2-3/3-1/3-2/3-3)
2004-2005 i-mode
Konami Wai Wai Sokoban (コナミワイワイ倉庫番) 2007 i-mode Konami[26] Konami Japan
Sokoban Perfect Plus A-side (倉庫番パーフェクト プラス A面) 2015 Windows Falcon Thinking Rabbit Japan
Sokoban Perfect Plus B-side (倉庫番パーフェクト プラス B面) 2015 Windows
Sokoban First Step Plus (倉庫番ファーストステップ プラス) 2016 Windows
Sokoban Revenge Reprint (倉庫番リベンジ 復刻版) 2016 Windows
Sokoban Touch 2016 Android
iOS
Worldwide
Sokoban Smart (倉庫番スマート) 2018 Windows Japan
Chukyo-kun no Sokoban (チュウキョ~くんの倉庫番) 2018 Digital terrestrial television Falcon Chukyo Television Japan
Dayon no Sokoban (だよんの倉庫番) 2018 Digital terrestrial television Miyagi Television
Kumojiro no Sokoban (くもジローの倉庫番) 2018 Digital terrestrial television Nippon Television
Minna no Sokoban (みんなの倉庫番)JP
The Sokoban
2019JP Nintendo Switch
PlayStation 4
Unbalance Unbalance Japan
2021 Worldwide

Reception

[edit | edit source]

The first Sokoban title became a bestseller in Japan, with over 25,000 copies sold by July 1984.[27][28][29] Early releases for Japanese home computers, such as the NEC PC-9801 and Sharp X1, sold more than 100,000 copies combined.[30] The MSX version, published by ASCII, sold over 400,000 copies and was considered a commercial success.[15][31] The U.S. release, Soko-Ban, sold over 50,000 copies by mid-September 1988.[15] By 2018, Chukyo Television Broadcasting reported that the series had sold over 4.1 million copies worldwide since its 1982 debut.[32]

In 1990, Famicom Winning Guide recognized Sokoban as a staple puzzle game, noted for its difficulty, depth, and continued presence across multiple platforms.[33] Reviewers often emphasized the game's addictive nature. Micomgames staff remarked that players would find it difficult to stop playing the first Sokoban.[4] In 1988, Roy Wagner of Computer Gaming World suggested that anyone trying the US version, Soko-Ban, would likely remain absorbed for an extended period.[34] The Computer Entertainer newsletter described the game as fascinating and almost impossible to stop playing.[35] In its console reviews, Computer and Video Games magazine called Sokoban for Game Boy "an infuriatingly addictive little title" and compared its appeal to Tetris.[36]

Commentators often highlighted one of three aspects of the game: its simplicity, the level of thought it required of players, or its challenging nature. Micomgames staff, however, emphasized both simplicity and the thinking required of players, describing the first Sokoban as simple yet requiring deep thought comparable to playing Go or Shogi.[4] Family Computer magazine's All Catalog supplement described Sokoban for Game Boy as great due to the simplicity of its gameplay,[37] and Computer and Video Games magazine staff described it as one of the Game Boy's "simple but effective puzzle games."[36] Reviewers for the German magazine Happy Computer praised Soko-Ban as a brilliant logic puzzle that kept players thinking without pressure and recommended that players carefully observe a level before moving a box,[38] and in Computer Gaming World, Wagner summarized it as "very playable and mentally challenging."[34] In Game Player's magazine, Tom R. Halfhill reviewed Shove It! for the Sega Genesis, noting it was challenging and would require players to plan their moves carefully,[39] and reviewing Boxxle for Game Boy, he stated that it required careful planning or plenty of trial and error (usually both).[40] He later commented on Boxyboy for the TurboGrafx-16 that while the initial rooms were not difficult, players would eventually encounter one that "seems impossible."[41]

The series faced criticism for its lack of variety. Tom R. Halfhill observed that all puzzles in Shove It! were essentially the same.[39] He also noted that Boxxle's gameplay could become repetitive, with only the number and arrangement of crates and the room shape varying.[40] In his review of Boxyboy, he found it "virtually identical" to Shove It! and Boxxle, concluding that these games required players to enjoy solving the same type of puzzle repeatedly.[41]

Legacy

[edit | edit source]

Numerous clones have been created,[42] and the term "Sokoban," a registered trademark, has become genericized to describe the genre.[43] Thousands of custom Sokoban puzzles, spanning various difficulty levels, are freely available online,[44][45] along with software tools such as solvers[46] and solution optimizers.[43] The Sokoban puzzle principle, which involves pushing objects to the correct targets, is widely used in gaming.[47] Despite advances in computer and console power during the 1980s and 1990s, many games continued to use tile- and grid-based movement, making object-pushing puzzles common.[48] As a result, many older games featured puzzles similar to Sokoban.[48] Titles such as Adventures of Lolo (1989), LIT (2009), and The Legend of Zelda series incorporated this principle in their gameplay.[47][48] Resident Evil 2 (1998) also used this mechanic in a puzzle, requiring players to move statues to marked areas with attention to their orientation.[48] Additionally, Sokoban-like games such as Sokomania 2 (2014) introduced new mechanics, including switches and conveyor belts.[47]

Research

[edit | edit source]

The computational problem of solving Sokoban puzzles has been studied using computational complexity theory, and is known to be NP-hard[49][50] and PSPACE-complete.[51][52] Solving non-trivial Sokoban puzzles is difficult for computers because of the high branching factor (many legal pushes at each turn) and the considerable search depth (many pushes needed to reach a solution).[53][54] Even small puzzles can require lengthy solutions.[55]

Sokoban puzzles provide a challenging testbed for developing and evaluating automated planning techniques.[56] The first documented automated solver, Rolling Stone, was developed at the University of Alberta. It employed a conventional search algorithm enhanced with domain-specific techniques such as deadlock detection.[57][58] A later solver, Festival, introduced the FESS search algorithm and became the first automatic system to solve all ninety puzzles in the widely used XSokoban test suite.[59][60] Despite these advances, even the most sophisticated solvers cannot solve many complex puzzles that humans can solve with time and effort, using their ability to plan, recognize patterns, and reason about long-term consequences.[61][62][63]

See also

[edit | edit source]

Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

Notes

[edit | edit source]
  1. ^ Japanese: 倉庫番, Hepburn: Sōko-ban; lit.'warehouse keeper'[1]

References

[edit | edit source]
  1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  8. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ The source does not specify where this occurred, only the timing.
  10. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  14. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  15. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  17. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  19. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  20. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  24. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  25. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  26. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  27. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  28. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  29. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  30. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  31. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  32. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  33. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  34. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  35. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  36. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  37. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  38. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  39. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  40. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  41. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  42. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  43. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  44. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  45. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  46. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  47. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  48. ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  49. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  50. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  51. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  52. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  53. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  54. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  55. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  56. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  57. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  58. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  59. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  60. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  61. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  62. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  63. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]