

     Documentation for BoinkOut2
     Current Revision: E

What is it?

     A "BreakOut" style game.  Bounce the ball off of the paddle
     to destroy the bricks.  Destroy all the non permanent bricks
     and the level is finished.

     What Resolutions does it support?

     Right now realistically.  ST High and Above.  There is code in
     the program to work with ST Medium.  But it is not working at the
     moment.  It will attempt to run in whatever resolution you
     boot it in as if the screen were big enough for it to run.
     This in one way is annoying, but in another avoids some of the
     resolution detection problems that I had in the past when
     working on AstroPanic.

     ie.  If the screen resolution isn't high enough.  It's damn
     hard to play ;)

     What Color Depth does it support?

     Any.  With the default images, it's happiest in 8 bit color (256
     colors) or higher.  However you can load your own background
     image with whatever depth you like (1-8 planes).

     What Img formats does it support?

     Ximg and normal Atari Image formats should work for your backgound
     images.  BoinkOut2 does not support Truecolor Ximg files.

     What is "timing"?

     The entire program operates off of the VDI and AES.  The
     timing value is what you want the default minimum timing 
     to be.  For an ST this should be 0.  However for a TT
     with a graphics card.  I recommend in the range of 30.
     You will want to set the timing to whatever you feel is
     the most enjoyable for your system.

     Any cool things not listed in the Menu?

     Yes one.  Close the gameplay window.  Hold down the Right Shift key
     and select Open Window from the Menu.  This should launch you into
     the demo mode.  You will then be able to watch the game run through
     the levels.

Controls

     The game is controled with the mouse.  Moving the mouse will
     move the paddle in the play area.  Extra features of the game
     can be accessed from the Menu Items or Hotkeys.

     HOTKEYS

     Certain keys or combinations of keys operate as shortcuts.

     Control - O   Open a New Game window (only if not already open)

     Control - N   Start a New game.  Opens new window if necessary.

     Esc           Pause a game in progress. Pressing again unpauses.

     Control - Q   Quit the program

     Control - L   Load a background image. User selectable via
                    the file selector.

     
     Menu Items

     About BoinkOut2

          Displays information about the game.  Revision and URL.

     Open Window
          
          Opens a Game window if there is not already one open.

     New Game

          Starts a New Game.  Will abort a game in progress.  Will
          open a new window if necessary.

     Pause Game

          Pauses a game in progress.  Selecting again will unpause
          the game.

     Quit

          Exits the program.

     Set Timing

          Opens the Timing Dialog.  For "What is timing" see above.
          
          Suggested timing values to start with:

          Normal ST      0   (Includes All 8 mhz 68000 Atari's)
          TT/Nova Gfx    30
          060 clones     60  (Seems to be a good place to start)

          You will want to experiment with the timing for your own
          system.  Let me reitterate.  Experiment with the speeds
          what is a good speed for one person will be a quick trip
          to game end for another.  This is for entertainment, set
          the timing to where you have fun.
          
     Load New Background...

          Opens system file selector.  This allows you to select a
          new (X)IMG file to operate as the backdrop to the game
          play area.  See "What image formats " above.

	 Sound ON/OFF
	 
	 	This toggles whether to play any sounds or not.  When off
	 	your boss or wife won't know what you are doing ;)

     Load Level Set...

          Opens system file selector.  This allows you to select a
          new LVL file.  LVL files are level description files for
          BoinkOut2.  You can make your own LVL files and share
          them with your friends.

     View High Scores

          Opens the High Score window.  This will show you how well
          you or your friends have done in the past.  It will also
          show you the first time you play, that I have watched too
          many episodes of "Are You Being Served?", over the years.

     Save Preferences

          This option will save your game preferences.  At the moment
          this only saves your Timing variable.


Game Play

     BoinkOut2 at it's heart is a breakout game.  If you don't know
     what breakout is then play it for a few minutes and you will know ;)

     However BoinkOut2 is also close to the family of Arkanoid.  Kind
     of a Breakout+.

     The game takes place in the game window.  We will refer to this
     as the play area.  At the top of the play area, you will see
     three fields.

     The first is preceded by a strange shaped litle object that is
     a representation of the ball used in play.  The number next to
     it shows how many balls you have left.  Note.  If it says 1
     you are on your last ball.  Once you hit 0 the game is over.

     The next field is the Level indicator.  This shows what level
     you are on.  The built in levels of BoinkOut2 number 36, once
     (if) you hit 36 you will wrap and start at level 1 again.

     The last field on the right is your score.

     Below this should be an array of blocks.  Level 1 has 7 rows
     and 9 columns of blocks.  Level 1 has all normal blocks.

     There are several types of blocks in the game.

     1. Normal bricks.        One hit and they are gone.
     2. Normal Spin bricks.   Look a bit different one hit.
     3. Double Spin bricks.   Two hits to get rid of this.
     4. Triple Spin bricks    Three hits...
     5. Quadruple Spin bricks Four hits...
     6. Permanent bricks      Can not be destroyed.
     7. Magic Bricks          See below

     Magic Bricks are the fun ones.  You never know quite what is
     going to happen.  The play area could be erased, all the bricks
     can become invisible, multiple balls can come out.  There are
     some suprises waiting for you with these.

     At the bottom of the play area, is an open area containing your
     paddle.  This is what you use to hit the balls back up.  A ball
     hitting the bottom of the play area dies.

Making your own Level Sets.

     To make your own level sets open up your favourite text processor
     and edit away!  Actually is fairly easy to do.  The built in
     levels exist in a file called BOINKOUT.LVL, this will show you
     how all the levels that you have played are put together.
     I've also included another file called TEST.LVL, this is not
     a recommended set.  But shows that you can load more than one
     level set.

     All the rules for building your own levels exist in either of the
     .LVL files.  They are fairly easy.  Levels have 63 blocks, 9 columns
     by 7 rows.  The identifiers for the block types are in the files.
     One big warning.  NO SPACES in the data area.  This will cause the 
     file to be misinterpreted.
     
     NOTE:  There is a hard coded maximum of 99 levels that can be loaded
     from a LVL file.

Hey sometimes my balls bounce off the bottom of the play area instead
of dieing.

     You are the lucky recipient of the Magic Bottom!  Magic bottom
     can be invoked by a magic block.  However sometimes the clipping does 
     miss a ball and sends it bouncing back up.  Smile don't complain.


Finals notes:

	This probably isn't the pretiest program in the competition.  As usual
for me, I didn't get the time to really get the bits and bobs done that I 
wanted to get done.  However I hope that the game is playable.  The souce
will be available on my web page, if you feel so motivated to go in and 
clean up the bits I didn't get finished.  Please let me know if you do.

	I also owe alot of thanks to a lot of people for getting it to this state.
All the people on my beta list (Charles Silver, Edward Baiz, David Leaver and
Paul Williams to name a few (my memory is lapsing and I don't have enough time
to log in and get the rest.  Please accept my apologies if I left you out) and
SWE who did alot of real time testing for me via #atariscne on IRC.

	I also owe alot of thanks (as we all do) to many other programmers over
the years who have helped me out when I've gotten into hard spots.  I'd list
you all, but then everyone would realize that I don't program anything I just
recompile ;)

	Have fun and enjoy,

     Dan Ackerman
     baldrick@netset.com