**** BOULDERDASH V0.9 *************************************************** * * * Program (c) 1992 by Jeff Bevis * * * * Permission to use and distribution of this program is subject to * * the following conditions: * * * * »» This program may not be sold for profit without the * * written approval of the author. * * * * »» Permission is granted for this program to be included in * * freely distributable software libraries, such as the * * Fred Fish freely distributable AMIGA software library. * * * * »» This program should only be distributed in its entirety, * * with all original files present and intact (unmodified). * * * * »» The author accepts absolutely no liability for any use, * * misuse, or inability to use this software, nor any * * consequences (whether intentional or accidental) arising * * from its use or possession. * * * * »» No warranty is implied nor in effect for the user of this * * program. Use of this program is at your own risk! * * * ************************************************************************* !!!!! IMPORTANT !!!!! If you read nothing else in this file, please read the section near the end called "BUGS, WARNINGS, ETC." BEFORE you use the program. PLEASE! INTRODUCTION ------------ This is all Laurence Vanhelsuwé's fault. If his Rocky Clone V1.0 hadn't fallen into my hands, I would have continued to lead a perfectly happy life. Instead, my desire to play Boulderdash was rekindled (rather violently, I might add), and thusly this incarnation of the game was born. Laurence's program does a great job of accurately reproducing the cell automata of the C64 version of Boulderdash, and I was duly impressed. However, I wanted it to look and sound like the C64 version (well, we should hope it would be a little better :-) This program represents a totally new implementation of the game, and none of the source code from Rocky Clone V1.0 has been used in this program. Several of the Rocky game screens are reproduced here, though -- primarily because 1) I haven't had time to make a lot of new screens, and 2) I think Rocky players (especially Laurence) would get a kick out of seeing the screens with new, better graphics and sound. INSTALLATION ------------ Place the following files in the same directory: README README.info Boulderdash Boulderdash.info bd.snd bd.txt bd.16 maps You may then run the game from either the Shell or Workbench. No special libraries, assign's, or fonts are required. DESCRIPTION ----------- When you run the program, a window appears on the Workbench. The program will load its data files and the 'maps' file. If all goes well, you may select either to 'Play' the loaded maps in sequence, 'Quit' the program, or 'Reload Maps' from the 'maps' file. (Reloading the maps is useful if you're alternately editing a level then testing it -- you need not quit the editor or Boulderdash.) After you click 'Play', you get the game screen. At the bottom is shown: LEVEL xxx the current map level number NEED xxx the number of diamonds required to finish the level TIME xxx the time (seconds) you have to complete the level xxxxxxxx your score The title of this level will also be displayed in the middle of the screen. With a joystick connected to the second game port (not the mouse port), you may start the gameplay by pressing the FIRE button. Alternatively, you could press a key on the keyboard to begin. During gameplay, the following keyboard commands exist: SPACE pauses the game ESCAPE leave the game; returns to the Workbench window RETURN commit suicide -- restarts the level The idea is to get the number of diamonds indicated before time runs out. To do so, you move around with the joystick, avoiding obstacles and threats while maneuvering to collect diamonds. When you have enough diamonds to leave the level (you will hear a 'snap' sound), you must find the exit symbol and move into it. At the end of a level, your time bonus is calculated and added to your score. You then proceed to the next level. MAKING YOUR OWN LEVELS ---------------------- The big bonus in this game is that you can make your own levels using only a text editor. You can also change graphics and colors for each level you create. An example map file ('demo.maps') is included to show you how this is done. The format is simple ASCII; Each level is defined by a series of commands and a map image body. Use the format provided in the 'demo.maps' file. Don't worry about extra spaces (except in the map area) or blank lines -- they are ignored. If you make mistakes in the map file, and create something which can't be loaded, the program will tell you when you load the maps. One word of warning here: ALWAYS surround the area of your map with permanent walls ('W') -- if moving objects (butterflies, you, etc) or explosions are permitted to travel to the very edge of the map, Bad Things can and will result (as they begin traveling off of the map and through the rest of your computer's memory!) Note that comments can be added on any line by beginning it with '#'. Such lines are totally ignored. Here's a brief synopsis of the commands: LEVEL Initiate a level definition. Must be the first line of a level that you create. NAME Specifies a name for your level. A name is required. BFCOLOR Defines a color cycle for butterflies; The argument is sixteen three-digit hex numbers. Each three digit number represents an RGB color value. BFMODE Define the way the color cycle is applied to the butterflies. There are two arguments. One is a number (1, 2, 4, 8, or 16), and the other is a word (up, down, or stop). The number specifies the window size (how many colors are shown before repeating the pattern). The sixteen colors are scrolled through this window repeatedly, either 'up' or 'down'. The colors don't scroll if you specify 'stop' DICOLOR Same as BFCOLOR, but for diamonds. DIMODE Same as DICOLOR, but for diamonds. DIRTCOLOR Argument is a three-digit hex number like each of the BFCOLOR arguments. Specifies the color of the dirt on the level. WIDTH Specifies the width of the level's map (in chars). Width cannot be less than three nor greater than 64. HEIGHT Specifies the height of the level's map (in chars). Height cannot be less than three nor greater than 48. DIAMOND Specifies an image for the diamonds (0...9). There are ten unique diamond images. All diamonds have DICOLOR in their imagery; a few also have BFCOLOR in their imagery. TIME Specify the number of seconds for the player to complete the level. REQUIRE Specify the number of diamonds the player needs to complete the level. MAPSTART Begins the map body of the level. No further commands may follow except MAPEND. The map body must consist of HEIGHT rows of WIDTH characters, as defined later. The map must have one (and only one) of each of the following symbols: 'X','P' MAPEND Ends the map body of the level. END Terminates the map file. (required) The map consists of symbols which represent game objects. The following translations are used: Character Represents --------- --------------- / blackness (totally inert) (space) a Amoeba b,B,c,C Butterfly. (u,r,d,l) initial direction d Diamond g Growing wall i Monolith o,O,q,Q Box. (u,r,d,l) initial direction . Dirt m Magic wall P Player starting position r Rock s Semi-Permeable wall t TNT - Limbo (totally inert) w Destructible wall W Permanent wall X Exit to next level I'm sure you'll get tired of the original levels very shortly. So please, make more and distribute them! We'd love to see them! BUGS, WARNINGS, ETC ------------------- This is the part of the README file I hate the most. It's where I have to admit I haven't debugged the program fully. Here's what you can expect to happen (the list is ugly): - The program takes over the machine during gameplay. However, it will return it to the OS when you are done. Under OS2.04, this can be with few ill side-effects. A good return is not guaranteed, though, so don't bet on it. Finish other work before starting Boulderdash! - The program will almost certainly crash on non-7Mhz Amigas. PAL appears to work OK, but the game will run slower (5/6 speed). This is not due to use of forbidden instructions (ie, TAS or MOVE to CCR, etc), but simply timing differences which give rise to situations I haven't been able to debug (I don't have the needed access to faster machines for debugging this). - Occasionally, when you click the 'Play' gadget, the program may also crash as gameplay starts. - Upon return to the OS, occasionally you will get the famous FIREWORKS_DISPLAY mode. This is also my fault. - If used under OS1.3, it appears that the floppy drives become dead after a single invocation of the game. This sounds awful, but on slow machines running OS2.04, it's not too bad. I find that the program is pretty stable on such configurations. I'm working on bug fixes for compatibility probelms even now, so hopefully '020 - '040 users will eventually be able to use the program. But, until I can afford a faster machine of my own, I don't think I'll find all of the major problems dealing with the faster processors. :-( For now, just be careful, and don't rely on your machine's stability after running the program. If you're unable to use the program, please accept my apology. I can only work within my means. CONTACT ------- Jeff Bevis 618 Ash Street Beech Grove, IN 46107 Internet: bevis@ecn.purdue.edu Monetary contributions greatly enhance my motivation!