Bloxed !Help file
Version 1.11
!Bloxed - a Tetris variant (c) Steven Singer 1991-96 ---------------------------------------------------- This file last updated 13 August 2001 [web version edited 12 Februrary 2003]. Introduction and Gameplay ------------------------- !Bloxed is a variation on Tetris. It has lots of extra features. Your best bet is to load it up and watch the demo. Quick precis, pieces fall from the top of a well. Each piece consists of four blocks stuck together. You can move the pieces left or right, and turn them to position them as desired. You can also pull them down to speed up placement. If you complete an entire row across the well, that row is removed, and the lines above fall down. The game ends when the pile reaches the top of the screen (OK, not quite accurate, but good enough for simple instructions). The rate at which the pieces fall down accelerates as the game progresses. The rate reaches a local maximum at level nine. At level ten it slows down, and then gradually speeds back up so that level eighteen is the same speed as level nine, and level nineteen is a touch quicker. Then at level twenty it slows down slightly, then it speeds back up over levels twenty-one to twenty-three. Level twenty-three is the same speed as level nineteen. Level twenty-four is a touch faster. Levels twenty-five to twenty-nine follow the same speeds as levels twenty to twenty four. If you get past level twenty-nine it starts getting nasty. At level fifty it starts getting really nasty. Levels one hundered and thirty-nine upwards are identical. If you can make it to level one hundred you're either cheating or some kind of genius. The extra features are power blocks, line passing in multi-player mode, and the nasty things at level thirty upwards :-). Some pieces that fall contain a power block one of 4 F S B 16. If the line that the power block is placed in is completed - either by that piece or by another later - the power block is activated (if more than one power block would be activated, only one is). The effects are as follows: 4) (Four Lines) Removes alternate lines from the highest line with any pieces in, to a maximum of four lines. F) (Filler) Produces a little alien, which may be guided with the left and right keys and encouraged to drop a block with the turn key. You can use it to complete partially finished lines. S) (Shooter) Produces a satellite/gun, which may be controlled in a similar way to the alien, which can shoot blocks. B) (Bomb) A bomb appears which can be guided as it falls. When it lands on the blocks, it explodes doing a fair amount of damage. (Hint, the damage may look variable, but it isn' t. Experimentation should help in determining placement for maximum effect). 16) (16 ton weight) A 16 ton weight (a la cartoons and Monty Python) appears, it too can be guided. When it lands, it removes 3 columns of bricks. In multi-player mode, when either player completes more than one line with a piece, the lines removed (minus the piece just put in them), are sent across to the next player, where they are inserted at the bottom of his/her well. The piece the player was trying to position at that time gets vapourised. Lines are passed in a circle avoiding dead players. The game continues till only one player is left standing. This game is really meant to be played two player. It's mean. Due to the cunning fact that player 1's keys lie near the '2' and player 2's near the '2' on the numeric pad, both players can restart a game for revenge. On an A5000, I have sometimes noticed keyboard clash on the left and right keys of player 1. Redefining them to 'Q' and 'W' cleared this. (I hope it's keyboard clash, if not, my playing is worse than I thought). You may also need to watch for keyboard clash on RiscPCs. Player 3's keys are badly placed. My the time I added the 3 player option, the other players' keys were already fixed. Use 'K' to redefine the keys. Unfortunately, I've not added any music (does anyone want to write some ?). My suggestion is grab the nearest tape deck/hi-fi/CD player and play something suitable. One final hint, when using a filler, consider the possibilities of not removing all the lines. Remember, you can see what the next piece is. Oh yeah, to quit the game hit 'Esc'. Notes For 1 Meg Machines ------------------------ !Bloxed should just about run on a 1 Meg machine. I can only give the standard advice if you have trouble, that is reboot your machine with a CTRL-RESET and try again, and if that fails do a CTRL-RESET whilst holding down the '*' key, this will bring you up in supervisor mode with a minimum system, then run !Bloxed from the command line (something like :0.!Bloxed to run of floppy or :4.$.Games.!Bloxed for harddrive 4 with !Bloxed in the directory Games. SCSI users etc. may have to work out their own incantation). Configuration Options --------------------- There are two configuration screens. They are accessed by pressing the appropriate keys whilst a game is not in progress. One screen is for redefining keys (press 'K') and the other for general configuration (press 'C'). I hope these two screens are self explanatory. There are only a few things I can think of to point out. To save the configuration you have to click the 'Save' button on the configuration screen. This also saves key definitions. If you don't save the new configuration or key definitions then the next time you play the old set will be reloaded. To change the backdrop file you should click on the white box containing the name of the current backdrop file. A caret will then appear which should respond to most standard controls. When you have entered the name press return and the program will attempt to load that file. It will print a warning if it can't find the file or if there is insufficient memory to load the file (and to allow workspace for the decompression). There are two special filenames you can enter. If you enter a blank filename then it will be changed to the default backdrop file. If you enter the filename 'none' then backdrops will be disabled. If you want to make your own backdrop files then contact me for the program to do it. The program isn't on general release as it isn't very tidily written. It needs lots of memory (for the same reason). The backdrop files for this game are in my own format. Do not try and use other files as backdrop files as it is very likely that doing so will crash your computer losing any work you have. The 'multi-player cumulative total' option toggles whether or not the program will keep track of how many multi-player games have been won by each player. The current total is printed an the bottom of the title screen. If you switch it off and later switch it back on then the scoring will pick up from where it left off. To reset the score to everyone at 0, click on the reset button. The 'Message scrolling' option determines whether or not the various printed messages on the title screen and in other places are scrolled onto the screen or just centred straight away. The speaker setting is not saved, instead it is picked up from the current state of the computer. History ------- !Bloxed is based on an arcade game I played for a while called Bloxeed. This, in turn, was based on Tetris. If you don't know what Tetris is, which planet have you been on ? My version started as a one player C program, running under Unix, using the curses library, in 1990. I've still got it if anyone wants. I then ported it to BASIC on the Archimedes in 1990-91 (this was before I bought my own, I used a friend's). It was made 2 player. The resulting code was 'orrible. When I finally bought my own Archimedes in October 1991, I re-wrote the entire prgram from scratch in Arm-code. This took me about 4 weeks (whilst still at university). Over Christmas 1991, I added the front end. And in the little spare time I had in Hilary term 1992 I added the backdrops, put the score into Arm code, and generally tidied up. There was then a pre-release version released. Over the Easter Vacation, I added some sound effects and the configuration screen. Over the next summer, whilst between courses, I added the nasty bits at levels 30+ and the high score tables. Then when I started my Ph.D. course in October 1992, I added the pause facility, and changed the backdrops. This became version 1.00 - the first official release. It was distributed at the Archimedes User Show on the Sunday (I went down and gave out some copies), it was posted to the Newcastle Info Server (RIP) shortly after, and made it into the January 1993 issue of Acorn Computing. Changes to give version 1.01 Fixed bug - 'Missing ENDIF' in key definition procedure (thanks Pelago). Allow saving of configuration (thanks everybody). Allow centring of screen in one player mode (thanks Robert). Fixed bug that caused shooter not to fire occasionally (thanks everybody). Fixed bug that caused filled blocks to change colour on transfer (thanks me). Added auto repeat on the left and right keys (deliberately not on the turn key - I found this dodgy), configurable repeat rate (thanks everybody). !Help file - Notes for 1 Meg Users, About The Author and Thanks added. Trimmed comments and tightened some code to keep in 512k wimp slot. Fixed obscure bug in filler (thanks Pelago). Changes to give version 1.02 (not released) Overlayed code to free up some memory (thanks Robin for hassling me). Changes to give version 1.03 (released for development late April 1993) Altered assembly code to make it relocatable. Moved compilation off-line to separate program to produce an object file. Moved the multiple data files into the object file (this will probably be a temporary move). Made it clear screen and print goodbye when escape pressed. Changes to give version 1.04 (released for development early May 1993) Moved backdrops back out of code. Moved all block sprites into one file. Added sprites for blomb explosion. Expanded high score tables to 50 entries. Added animation for bomb. Allow each multi-frame object (bomb, filler, shooter and explosion) to have a different number of frames animation - number of frames need no longer be a power of 2. Now tries to grab as much memory as possible, this is a preliminary to allowing alternate backdrop and block files. Added configuration option to select backdrop and block files (ignored at the moment). Some of Lee's sprites made default. Changes to give version 1.05 (released for beta testing 2 Aug 1993) Remmed out code to chose block file. Added code to select backdrop file. Improved text entry for configuration options to allow Ctrl-A, Ctrl-E, Ctrl-U Ctrl-left and Ctrl-right. Added Configuration section to the !Help file. Changes to give version 1.06 (released for beta testing 2 Aug 1993) Improved text entry for configuration options to allow Ctrl-K and backspace. Flush buffer before reading configuration text strings. Set up text window before loading backdrops so large messages don't scroll configuration screen. Changes to give version 1.07 (released for beta testing 20 Aug 1993) Changed high score table printing into mode 15. Added timestamping to high score table. High score name entry now remembers names from previous game. Changes to give version 1.08 (released for beta testing 29 June 1994) Fixed annoying click at end of samples. Deleted !Boot file (thanks Pelago). Changed Blox$Dir to Bloxed$Dir throughout program (thanks Pelago). Miscellaneous code tidying. Changed 'alltime' to 'all-time' throughout program (thanks Pelago). Trap failure of write of high score table (thanks Pelago). Other Versions section added to !Help file, as there are now other version. Changes to give version 1.09 (released 23 February 1995) Time frames from real time clock rather than vsync. This should give the same game speed regardless of screen refresh rate. Default configuration now stored in code. Config file only created when configuration is saved. Config file removed from distribution. Trap errors when saving or loading config file. Changes to give version 1.10 (released for beta testing December 1995) Fixed vsync timing error when game paused. Fixed vsync timing error in demo. Supplied 100Hz modes for RPC so that letterbox modes are avoided. Extended level scheme to level 139 (from 99, blame LES.. for this). Changes to give version 1.11 (released 1 May 1996) Fixed bug in screen memory allocation (got broken in RPC mode upgrade). Major overhaul to allow >2 player games (blame Graham Robinson for this). Fixed bug that caused the modules not to be RmKilled on exit and config files not to be loaded. Key and configuration saving fixed and added version number. Redraw code sped up so 3 player games should run on ARM 2 machines. Reconverted all backdrop images. Added LES..'s best high score to table. RiscPC mode definitions tweaked. Copyright Notice And Acknowledgements ------------------------------------- Unless otherwise noted, all the code is copyright Steven Singer. The sprites are copyright Steven Singer and Lee McGinty. The bomb sprite, bares more than a passing resemblance to the RISCOS 3 error sprite :-), and I suspect the Calvin and Hobbes picture is copyright Bill Watterson (but seeing as I got it through the public domain I felt free to use it). Most pictures used in the backdrops were acquired as GIFs by anonymous ftp from wuarchive.wustl.edu. The exceptions were the one with the helices on and the sunset, which were both part of the PVray 0.5ß distribution. The helix picture (ntreal) was created by Drew Wells, and the sunset picture (sunsethf) was created by Douglas Muir. All pictures were converted to RISCOS sprites using ChangeFSI (by Robert Hamilton and Roger Wilson) and Translator (by John Kortink). They were then compressed using a routine I wrote specially for this program (based on the LZW algorithm). The sound effects (before I played with them), came by anonymous ftp from terminator.cc.umich.edu This software is may be freely copied, as long as the following conditions are met: a) This notice is distributed unchanged with every copy b) Any changes released should first be mailed to the author at one of the addresses given below, and not distributed until permission is given. c) No charge (excluding possibly a minimal copying charge) is made for the software by the distributor. This software is provided 'as is', with no guarantee of its suitability for any purpose. NO WARRANTY IS GIVEN! I accept no responsibility for loss of friends when playing !Bloxed in multi-player mode :-). If you do change the code at all, please let me know, as I refuse to try to support other people's modifications unless I have been told about them, and I will probably be interested. If you want to use any code from this program, contact me first. I might be presuaded to provide documentation. Thanks ------ Thanks to the following people: Robin Watts, for use of his Arc before I got mine, for teaching me ARM code for letting me take over his room to program in when I was living out of college and for giving me cups of tea whilst I was in there, for writing !Larger (get a copy, you know it makes sense), for looking stuff up in his PRMs for me and most of all for beating me (occasionally). The Archimedes User Group in Oxford for play testing, suggestions and help with distribution. Robert Archbold (aka Orbital Productions) for suggestions. John Veness (aka Pelago) for pages and pages of suggestions. Matthew Newton for suggestions. Lee McGinty for redesigning the sprites. Dom Symes for writing !Zap (definitely get a copy of this). Graeme Foster for suggestions - mostly on the high score table. Graham Robinson for suggestions. Anthony Haines for bug reports and ARM 2, 1 Meg, RiscOS 2 testing. Iwan Attwood (aka LES.. and Dr. De'ath) for some truly sick high scores. Other Versions -------------- A version of Bloxed is available for the Psion III, written by Robin Watts. Contact him at Warm Silence Software, P.O. Box 28, Woodstock, Oxfordshire, England, OX20 1XX. E-mail me for his e-mail address or go to their web-site at http://www.wss.co.uk/ Note that this isn't an official WSS product, just something Robin did in his spare time. A version was being written for the X windows system, UNIX and TCP/IP by me, but it's stopped. Other things kept getting in the way (like my thesis). If you want to try and port Bloxed to other systems, contact me for details. I can provide in depth descriptions of algorithms used and precise measurements of level speeds to ensure an accurate port. I will not, however, provide the source code , I will provide hints about how to tackle writing various parts of the game to ensure smooth game play and accurate reproduction . Basically , you'll get lots of advice on tips and tricks I learnt the hard way. Miscellaneous ------------- If anyone has any ideas on improvements or new features for !Bloxed, please get in touch with me, though ideas for new power blocks must be exceptional to be included. I would appreciate improved sprites/backdrops/sound effects/music, being sent to me at the addresses below. The programs to convert sprites to backdrops and pieces, and to make the voice modules from samples are available from me by request for people who wish to play with them. Alternatively, if you would like me to customise a version for a special purpose, then contact me at the addresses below. There is a Bloxed WWW page on http://www.finesse.demon.co.uk/steven/Bloxed/ About The Author ---------------- I am currently working as a software engineer in Cambridge. Most of this game was written while I was an undergraduate at Oxford University (studying physics). The rest was written whilst I was studying for a Ph.D. in nuclear physics at the University of Surrey. Contact ------- I can be contacted by e-mail at singer@ox.compsoc.net ----- Unix is a trademark of AT&T Laboratories (I think). GIF is a trademark of Compuserve, Incorporated, an H&R Block Company. Tetris and Bloxeed may be trademarks, but I can't attribute them. ARM, Archimedes, A5000, RiscPC etc. are trademarks of the usual people. (Yes I think giving trademarks is over the top as well). If this file zoomed past at high speed, load !Edit, then try again.
Up to the Bloxed page.
Comments should be addressed to webmaster@pertinentdetail.org