Brokout - 3D Tetris
Please note, this game is currently unfinished, so please don't get too upset about the lack of a score, or any concept of a level. In fact don't get too upset by any general crumminess - this is my first ever Java program.
The object of the game is much the same as that of traditional tetris, i.e. to steal your soul and drain away your life force as you are dragged into a helpless spiral of addiction. More specifically, your playing area is a well, into which blocks fall. You must manoeuvre these blocks as they fall in order to pack them as tightly as possible. If you manage to pack an entire layer without any gaps, this layer will be be removed and all the layers above will drop down, enabling you to carry on playing.
In normal Tetris, you get points and advance through levels and stuff, but in practice I find it just as hard to stop playing without these frills.
You can control the block by moving it with the arrow keys, rotating it in any of its three axes, using the keys 'A', 'S' and 'D', or if you prefer to rotate it in the other directions, 'Q', 'W' and 'E' and dropping the block with the space bar. The blocks can control you by infiltrating your psyche and demanding that you regularly fulfil the craving to pack them successfully for just a little bit longer. You know it's all too late when you start to have nightmares about spinning objects made from cubes...
The thing you'll probably wish you hadn't been told is that the space bar may be used to start another game when you filled the well. As the game starts as soon as the page is loaded, by the time you actually come to play it, you'll probably need to use the space bar.
If nothing seems to be responding, try clicking on the game area first. Some web browsers don't seem to pass keyboard input to Java applets unless you've done this.
Say goodbye to your sanity...
...or maybe it's only me who is sad enough to get addicted to this kind of thing.
Known problems and bugs
If you drop a block as it is spinning, the game can temporarily freeze. You should be able to start it again either by moving or spinning the block if possible, or by pressing space and waiting for a second or so.
The game is sometimes a bit pedantic about where it'll let you put blocks - sometimes it looks like they should fit, but it will only let you spin the block, if it would happen to fit exacly where it ends up after spinning,
You only get the bare bones at the moment - no score, no friendly introductions or even any vaguely obvious indication that you've finished.
It doesn't work very well on MSIE 3.0 Beta 2 with JIT enabled. Upgrade to the current version.
The perspective can be a bit wild, depending on how large the game happens to come out on your browser. If it fills most of the screen it looks OK, but on a high resolution display, everything looks a bit distorted.
This will swallow a lot of processing power. In order to get the animation as smooth as possible, the frame rate is cranked up as fast as it will go. If you have a very powerful machine, there is nothing done to limit the frame rate. It'll look fine, it'll just swamp the CPU. (If you have multple processors, it'll swamp about 1.5 of them.) At least it only does it when blocks are moving though.
The game does its best to ensure that the animation is done at precisely the rate the host it runs on can manage. However it is possible that it'll go a bit wrong if you run your browser over X, on a machine some distance from your display or over a slow network. I've not tried it. It seems to be fine with a local X server though. (Linux and Netscape 2.01 on a 486DX2-66 and XFree86 (X11R6) worked and was playable, if not exactly slick.)