DDBJ: Double Decker Bus Jumper
==============================

CREDITS
======
Awesome title music by HyoChan - My Dear Rhubarb
- http://www.youtube.com/hyochan

Scott Lembcke for Chipmunk. A free, easy to use 2D Physics library.
- http://code.google.com/p/chipmunk-physics/wiki/Documentation

Andy McTaggart for the arrangement of Big Red Bus



SUMMARY
=======
Speed up and slow down to move.

Tilt forward/backward in mid air to land on wheels.

Flip forward/backward to get back onto wheels.

Find the Golden Acorn Of The Ancients before Spermophilus

Keep going right!


No complicated controls, just one or two inputs; use arrows,
mouse buttons, mouse, joypad, one switch...



RUNNING THE "GAME"
==================
To run DDBJ using whatever config you last had use

    DDBJ.exe

To make life easier(?) 4 extra targets are provided

    DDBJ_onekey.bat
    DDBJ_oneswitch.bat
    DDBJ_headtracker.bat
    DDBJ_standard.bat

These RESET THE GAME OPTIONS to suitable defaults and start the game.
Typically you would only use these the first time you run the game
since after that DDBJ.exe will use the previous options. Or you can
use these to reset everything if the options become a mess.

Finally, mostly as an experiment, there is also

    DDBJ_large_standard.bat

which will run the game with LARGE FONT menus. 
NOTE: If you want to go back to standard menus you need to run one of
the above 4 targets.

If you aren't using standard config e.g. onekey,oneswitch etc, but want
LARGE FONT meus then you can use

    DDBJ_large_menus.bat

NOTE: unlike the above 4 targets you would use this every time you run the game.
(I know this is all a big mess)


Performance
-----------
It is possible this game might run like a 2 legged dog. The likely cause of
this is software fall back for rendering lines. Try turning off the

     CONFIGURE->GAME->SMOOTH
     
menu option.

If you really get desperate then you could edit the DDBJ_Level1.cfg file and
delete the 3 lines with "Slopes", "Paps" and "Sun" in them. Or you could
delete the 2nd line of the DDBJ.cfg file (the 'GFX_STYLE == "SOLID"' line).

If none of that works, consider yourself lucky and go out and by a lottery ticket.



STORY
=====
After a drunken party watching Summer Holiday and Back To Future
continuously Dr Tam Toucan L.S.D. (Life Sciences Diploma) is struck
with a gestalt moment and combines the power of time travel with
the classic British look of the double decker bus.

Unfortunately Dr Toucan does not possess a PCV license so YOU! have
been chosen to pilot the vehicle on it's first mission...

         Retrieve the Golden Acorn of the Ancients

Sinbad tried and failed, Hercules had triskaidekaphobia, Jason would
have, but the Argo in for a service, so now YOU! must do what lesser
heroes could not.

Unfortunately The Gods are aware of your Quest and have released 
Spermophilus the Chipmunk to thwart you.



GUI
===
Menus are used to setup various things like the control schemes,
graphics, game options etc. Functional without the "Fun" is probably
the kindest description. There are many different input schemes (one
key, mouse etc) that can be used for both the menus and for driving
the bus.

The Game shows you "The Bus" with a small map below. A power bar shows
the current engine power with an arrow above showing your actual forward
or backward speed.



MENU OPTIONS
============
The usual set of options (sound, resolution, etc) can be changed via
the menus. Unfortunately some of these don't take effect until you
exit and restart. Notably

    Fullscreen On/off

There are also various game options that can be set. Here's a description

    SWAYING  - The amount (angle) the world sways (set to zero for off)
    SMOOTH   - Enable/Disable smooth lines

There are also several .cfg files which can be played with if you are
so inclined. See the MODDING section below.



CONTROLS
========
Ah yes, the controls. Funny story. Unfortunately I don't remember it
so here are the painful details.

The controls are simple, describing the raft of horrible options
provided is not.


1. Control Summary
   ---------------
The same one or two inputs are used to everything (speed, tilt or flip).

    One Key:      SPACE to do stuff

    Head Tracker: Mouse pointer to do stuff

    Standard:     Joypad, Mouse, Mouse Buttons or Arrow Keys and escape
                  space/return to do stuff

1.1 Speed

Increase or decrease your power level which will then change your speed.

1.2 Tilt

If you are falling (wheels not on the ground) and the front of the bus
is leaning forward then keep hitting the slow down input (or SPACE if
using One Key input) to tilt backward. Similarly for tilting forward.

1.3 Flip

If you are on your side (or roof) keep hitting the slow down or speed
up input (or SPACE if using One Key input) to flip backward or forward
to try and right yourself.


2. Menu Control Schemes
   --------------------
This is chosen using the

    Configure->Inputs->Menu Input 

menu option. Here is what the choices mean

    ONEPRESS      Current option auto-scrolls. Press SPACE to SELECT.

    ONESWITCH1    Hold SPACE for NEXT. Press for SELECT.

    ONESWITCH2    Press SPACE for NEXT. Hold for SELECT.

    HEADTRACKER1  Page has two arrows. Dwell on an arrow with the mouse
                  to click it. The bottom arrow is NEXT, the right arrow
                  is SELECT.

    HEADTRACKER2  Same as HEADTRACKER1, but with 2 extra arrows. The top
                  arrow selects the PREVIOUS menu option and the left
                  arrow moves BACK to the previous menu page.

    STANDARD      Page has two arrows and a selection box. Top and bottom
                  arrows select PREV/NEXT option. Click the selection box
                  for SELECT. Use the mouse, joypad or arrow keys. With
                  mouse/joypad buttons, space or return to click.
                  Escape key moves BACK to the previous menu page.


3. Game Control Schemes
   --------------------
This is chosen using the

    Configure->Inputs->Game Input 

menu option. Here is what the choices mean


3.1 ONEPRESS Controls

A "One Press" input means press only, so no press and hold. The same
input (SPACE) is used to speed up/slow down when driving, tilt when
falling or to flip when on your side.  


    ONEPRESS1         SPACE to set power. Power changes in fixed steps.
                      SPACE to tilt/flip bus when in air

    ONEPRESS1_PAUSE   Same as ONEPRESS1, but after pressing SPACE a small
                      "P" lights up on the GUI for a short time. Pressing
                      SPACE whilst it is lit will PAUSE the game. i.e.
                      press space twice quickly to PAUSE.

    ONEPRESS2         Same as ONEPRESS1, but the power can be changed in
                      an analog fashion i.e. set to any amount.

    ONEPRESS2_PAUSE   Same as ONEPRESS2, but with same PAUSE mechanism as
                      ONEPRESS1_PAUSE.


3.2 ONESWITCH Controls

ONESWITCH is similar to ONEPRESS, but the switch (SPACE key) can
provide an input of <PRESS> or <PRESS and HOLD>.

    ONESWITCH1_PAUSE  Press SPACE to set power. Power changes in fixed steps.
                      Press SPACE to tilt/flip bus when in air.
                      Hold SPACE to PAUSE.

    ONESWITCH2_PAUSE  Same as ONESWITCH1_PAUSE, but power can be changed in
                      an analog fashion i.e. set to any amount.

    ONESWITCH3_ACCEL1 Hold SPACE to change the power which will stop when
                      reach max. When released the power will slowly reduce
                      back to full reverse.

    ONESWITCH3_BRAKE1 Power constantly increases to max, hold SPACE to brake.


3.3 HEADTRACKER Controls

Headtracker uses the mouse pointer, but not the buttons.

    HEADTRACKER1      Dwell in the Top/Middle left screen area to slow down,
                      tilt/flip backward. Use the Top/Middle right area to
                      speed up, tilt/flip forward.
                      Dwell in the bottom middle of the screen to PAUSE.


3.4 STANDARD Controls

Uses the mouse buttons, keyboard or joypad.

    STANDARD2         Left mouse, joypad or arrow to slow down or tilt/flip
                      backward. Right to speed up, tilt/flip forward.
                      Escape key to pause.
                      The power is changes in fixed steps.

    STANDARD2         Same as STANDARD1, but Power changes analog style i.e.
                      it can be set to any amount.



MODDING
=======
Most of DDBJ is driven from stuff in config files. These are simple text files
in the format

<KEY> == <value>

If you are bored or insane you can have a play around with these. Things may
well break, especially if you make a syntax problem e.g. miss a closing quote.

The easiest way to change things is simply to copy the file to the same
location but with .mod added to the end. You can then edit that file and the
game will use your changes. You can even remove entries from the .mod file and
just those that set new values e.g. You could create a DDBJ_MENUS.cfg.mod file
containing the line

   ITEM_CHOICES_MUSIC_VOL == "0,10,20,30,40,50,60,70,80,90,100"

if you objected to the lack of granularity the current 5 values provides.


1. DDBJ.cfg
   --------
This is the main config file. As well as defining the main game settings this
also defines where to find the other config files. E.g. SOUNDS_CFGFILE.

As well as having a DDBJ.cfg.mod file you can use any file by passing it's name
as the FIRST parameter to DDBJ.exe. See the DDBJ_large_menus.bat and the
DDBJ_LARGE.cfg for an example.

You can change the look of the GUI by playing with the following values

    CAMERA_XYZ
    MAP_ON
    MAP_CAMERA_XYZ

    VIEW_HEIGHT_SCISSOR_PERCENT
    MAP_WIDTH_PERCENT
    MAP_HEIGHT_PERCENT
    MAP_GAP_PERCENT

    MAP_ZOOM_X
    MAP_ZOOM_Y


2. data/Config/DDBJ_BUS_SETTINGS.cfg
   ---------------------------------
Defines the physics for the Bus. e.g. the force to apply when flipping left
(backward) is

    IMPULSE_FLIP_AMT_RIGHT == 0,-20000


3. data/Config/DDBJ_POWER_SETTINGS*.cfg
   ------------------------------------
Various configurations of how to adjust the power levels of the bus. E.g. you
could make the bus always have full power by setting

    POWER_LEVELS == "1,1,1"

There are multiple files because game input schemes use different settings
(as defined by POWER_CONFIG_FILE in the data/Config/Input/DDBJ_GAME_INPUT*.cfg
files).


4. data/Config/DDBJ_SOUNDS.cfg
   ---------------------------
What sound files are used and how they are played.


5. data/Config/DDBJ_MENUS.cfg
   --------------------------
The setup and text of the menus.


6. data/Models/PowerHud.cfg.ply
   ----------------------------
How to draw the Power Level meter.


7. data/Models/Speedo.cfg.ply
   --------------------------
How to draw the Speedo arrow.


8. data/Models/*.cm.ply
   ----------------------
The physical properties e.g. mass, of the game items e.g. the Bus, and how to
draw them.  e.g. Setting BUS_MOMENT in Bus.cm.ply to a small value will make
it rotate more ("moment of inertia" is how hard it is to rotate an object).


9. data/Config/DDBJ_Level1.cfg
   ----------------=====------
Sort of the map file for the game.


10. data/Config/DDBJ_Physics.cfg
    ----------------------------
Default parameters for the physics.



THANKS
======
This would not exist if I had not stood on the shoulders of giants. Some of
those colossi are

RetroRemakes community for help, support, giving me awareness of OneSwitch
and a place to spurt words on the screen

DeleD for a simple 3D editor - http://www.delgine.com/

OpenGL for being a graphics API that's not D3D

OpenAL for being a sound API that's not Microsoft

You for reading this far!


HISTORY
=======
v0.9  First and hopefully only release. 

LEGAL STUFF
===========
This software can be distributed by non-commercial means for
free as long as the entire package is unaltered and all files
included.

There is NO COMMERCIAL DISTRIBUTION of this package or any of
it's contents without prior permission from the copyright
owner.  This includes a fee for copying and distributing this
software.  This includes a on a cd, dvd or other distribution
methods.
