Man Linux: Main Page and Category List

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. :-)