ZBLAST(6)

NAME
zblast, xzb - blast the bad guys (svgalib and X versions)

SYNOPSIS
zblast/xzb [-small] [-dbuf] [-nomusic] [-nosound] [-autofire]

DESCRIPTION
zblast is a shoot-'em-up.

OPTIONS

-small
    on xzb, use a 320x240 window instead of the default 640x480. On zblast, use 320x200 (quicker) rather than 640x480x256 (nicer). zblast also uses 320x200 on cards which don't support 640x480x256.

-dbuf
    use double buffering. This is slower but should eliminate any flicker.

-nomusic
    don't play any titlescreen or in-game music. This currently only makes any difference on Linux, and only if MUSIC_SUPPORT was defined when compiling. This option might be a good idea on (really) slow machines.

-nosound
    no sound at all. Also only applies to Linux, etc. This implies -nomusic.

-autofire
    enable auto-fire, letting you hold down fire rather than hammering the space bar. Since this is a bit of a cheat, high-score saving is disabled.

GAMEPLAY
The idea is this: Shoot everything. The whole lot. No messing. Your ship (the funny-looking green thing) is at the bottom of the screen/window. You can move left, right, up and down within the lower half of the screen/window. You can shoot (two shots at a time). You can also shoot a kind-of wave of shots (described hereon in as a PDC, or Power DisCharge - tacky eh?) to help satisfy your genocidal tendancies. The PDCs are in limited supply, the standard shots are not. When the bad guys explode, the green bits that fly in different directions (and flashing lines) aren't harmful. Neither are the `stars' (uh, dots) in the background. Just about everything else is. When your ship is blue however, it cannot be harmed. This happens whenever you have just lost energy, i.e. when you've just been hit. You start with 30 energy points. If you lose no energy in a wave you get 10 extra energy points; if you lose less than ten energy points in a wave you get an extra PDC. There are additional bonuses for finishing levels (a level is a group of five waves). If you run out of energy points the game is over.

Your score is shown at the top left. Your energy left and PDCs left are shown at the top right.

KEYS
Cursor keys move up/down/left/right. Space fires. Enter fires a PDC. P pauses. Esc quits the game. All this is on the title screen.

Unless it was disabled at compile time, you can also (on Linux) use any joystick or joypad on /dev/js0. The first button fires, and the second fires a PDC. You can also use the first button at the title screen to start a game.

When you die, you can quit from the `game over' bit by pressing Esc. Like it says on the screen. :-)

HINTS AND TIPS
The collision-detection in zblast is intentionally biased in your favour. The lines (sorry, "laser blasty things" :-)) at the left/right sides of your ship don't count as part of your ship as far as being hit is concerned. You can actually push it a bit further than this as far as being hit by the enemy ships themselves (rather than their shots) is concerned. (So now you know how to do wave 4 without getting hit...)

You get an extra 10 energy points if you finish a wave without being hit. Given how hard the later levels get, this makes getting good at doing some of the earlier waves very important if you want to get anywhere. Here's a list of waves you should be able to do this on (and if you can't, you need practice!): 1, 2, 3, 4, 6 (tricky), 7 (if you're lucky), 8 (esp. if you use a few PDCs), 9 (tricky), 14 (make sure you hammer the guys in the middle hard when the wave starts, so you breach the `V' formation and can attack the rest easily), 17 (if lucky), 19 (if lucky), 22 (get the big ship quick enough and it's easy), and finally 24 (if you're careful). You'll need to get clean sheets on most of these to stand a realistic chance of getting through all 35 waves. Take it from me, from wave 25 onwards it gets VERY hard. At the time of writing, I've only managed to get all the way through twice.

You also get an extra PDC if you lose less than 10 energy points in a wave, but really this isn't all that important.

When waiting for the start of a new wave, don't just sit there recovering from the last one. Keep shooting! When the new wave starts, the enemy will be hit by any shots as usual, so you can hit 'em pretty hard if you do it right.

The dark purple baddies generate lesser baddies, so try to get them first.

Don't assume that all baddies of the same type take the same number of hits to destroy. It varies. (Though it's preset rather than random, so it'll always be the same on a wave-by-wave basis.)

ABOUT THE MUSIC
The tracks played in zblast/xzb are just stereo csf files played via a hacked-up version of sod2. `title.csf', `ingame.csf' and `gameover.csf' can be replaced with any other csfs you like, but if you do this you must set SOD2_SAMPLE_PATH explicitly to include your sample directory. (This is required as the customised sod2 embedded in the program looks in /usr/local/games/lib/zblast by default.)

I'm afraid the csfs were written by me, and I'm not much of a musician. They are otherwise known as lilting.csf (title) and macroscopic.csf (game). (The game over music is just a quick drum pattern I did.)

For those that care, the music played in zblast is the same as output from (for example) `sod2 -Rips 16000 title.csf', or just `-ips 16000' if only mono sound is available. BTW, when zblast says `loading music', that's true to a certain extent but what's taking all the time is the sod2 preconstruct bit. :-)

ENVIRONMENT VARIABLES

ZBLAST_NAME
    This name is used on the hi-score table. If this isn't defined, then USER is used. If that isn't defined, LOGNAME is used (and if that isn't defined, it gets your login via getpwuid()). Unless ZBLAST_NAME is used, the first letter is capitalised. There's a maximum of 7 chars allowed for the name. Apologies if this seems short, but I was struggling for space on the title screen. :-)

BUGS
The default unbuffered drawing style is `quick' but can be flickery. Use -dbuf for double buffering if the flicker is a problem and you have a fast enough configuration to handle it.

The game runs at a slightly different speed if you don't have sound. Also, some of the sounds aren't up to much. (You can use different ones if you want - they're 8-bit mono 8kHz unsigned samples.)

There are probably still too few waves, but now they do at least repeat and get faster next time round... ;-)

There's no file locking when writing to the scores file, so if more than one score is written at the same time, a score might be lost.

I haven't tested the joystick support on any, um, joysticks. :-) More precisely, I've only tested it on a joypad and not on any `proper' analogue joysticks. It should cope with them though.

The in-game music repeats, which is fair enough but it's only one track, so it can get a bit annoying after a while.

The music only plays 8-bit, and only at 16kHz. Not as bad as it used to be, at least.

The X version is called `xzb' rather than the obvious `xzblast' to avoid confusion with `xblast', a rather spiffy bomberman clone. Having the original still called `zblast' is probably fairly confusing, but that's just tough. :-)

ACKNOWLEDGEMENTS
Davor Jadrijevic contributed the design for the weird purple baddie that first appears on wave 31. He also proposed interesting ideas about how they should move in a fleet, etc., which I was too lazy to bother with. :-)

Graham Richards contributed the sound you get when the baddies shoot.

Oohara Yuuma added auto-fire support.

AUTHOR
Russell Marks (rus@svgalib.org). Hi-score 74376. :-)