==================== SOKO-BAN (ZX-SOFT) ==================== SOKO-BAN is a classic puzzle game invented by Hiroyuki Imabayashi and published in 1982. As a warehouse keeper, you must reorganize boxes into their designated positions by pushing them around. ======== FEATURES ======== * Includes all 90 classic levels from the original version; * Succinct, easy-to-read implementation (100% in Basic) intended to help teaching game design and advanced programming techniques (simply BREAK the program any time to study it); * Expansible design: additional levels can be saved as separate programs and simply MERGEd into the original code (see below). ======== CONTROLS ======== Sinclair Joystick (6 LEFT, 7 RIGHT, 8 DOWN, 9 UP) - move "SPACE" - restart level "N" - choose new level (only previously solved levels are available, complete each level to unlock the next one) ======== COMMANDS ======== The tape contains the following programs: "SB MERGE " - Full version with all parts MERGEd together and levels unlocked (for players not interested in the tech details) "SOKO-BAN" - Main game plus the first 50 original levels (01-50) "SB EXTRA" - A separate set of 40 classic levels (51-90) "SB BONUS" - Basic example of a replacement for the first level "SB VERIFY" - Level validation routine to assist level design To load the game and start playing the first 50 levels, type: LOAD "SOKO-BAN" Additional levels are stored as separate programs that must be MERGEd into the game. For instance, to load also the 40 extra levels, after loading "SOKO-BAN" you must BREAK it and type: MERGE "SB EXTRA" RUN If you want to save the game at the current level, [you can save a snapshot using an emulator or] BREAK the game and type: SAVE "SOKO-BAN" LINE 30 There's no protection against cheating. In order to gain instant access to all the first 50 levels for instance, you can BREAK the game and type: LET MAX=50 : GOTO 30 ============ TECH DETAILS ============ This version of SOKO-BAN implements a simple but clever mechanism to support replacing existing levels or adding new ones. The image of each level is stored as consecutive lines in Basic, that can be saved as a separate file and MERGEd later into the game before playing. Each level has to follow strict guidelines to ensure the game will automatically recognize it. The level layout should fit into the standard size limit of 16x20 (although the bottom row can be omitted for a larger 17x20 size as required by classic levels 52 and 89). A new level L must start at line 1000+20*L and contain exactly 16 consecutive lines of DATA layout (one for each level row), followed by another DATA with the starting position (X,Y) and the exact number of boxes out of place. For instance, a replacement for the first level (L=1) will look as follows: 1020 REM level 01 1021 DATA "1st row..." 1022 DATA "2nd row..." 1023 DATA "3rd row..." ... 1036 DATA "16th row..." 1037 DATA X,Y,N Both programs "SB EXTRA" and "SB BONUS" are practical examples of additional levels. To look at one of these examples, you should first LOAD "SOKO-BAN" (to update the redefined UDG graphics in memory), then BREAK the game and LOAD "SB BONUS". ============ LEVEL DESIGN ============ The easiest way to implement a new level is to LOAD "SOKO-BAN", then BREAK it and simply edit the lines corresponding to the level you want to replace (usually starting at level L=1). Whenever you want to test your level, simply RUN the program. For testing levels above L=1, you can use the cheating described in the COMMANDS section. The tape includes a special routine to validate all levels and help identify potential problems. To run it (with "SOKO-BAN" already loaded with your levels), type: MERGE "SB VERIFY" RUN 500 Don't forget to periodically SAVE your work by typing: SAVE "name" LINE 10 If you are implementing a complete new set of levels, you may want to consider designing also a special "GAME OVER level" to replace the level right after yours. This special level follows the same rules as the others, except it can contain any arbitrary image and the final line should be "DATA 0,0,0". If no special level is specified, by default the program will use the GAME OVER defined at line 9980 whenever there are no more levels to play. Finally for releasing your work, it's recommended you delete all lines from the original program and only distribute your new levels, which will make it easier for publication. ======= CREDITS ======= Freeware "SOKO-BAN" for ZX-Spectrum & compatibles. Produced by *ZX-SOFT* Brasil Ltda. Programmed by Einar Saukas & Eduardo Ito. Based on PC version developed by Spectrum Holobyte. Original levels (01-50) created by Thinking Rabbit. Extra levels (51-90) created by Joseph L. Traub. Bonus (sample) level created by Einar Saukas.