SHEEP - Post-Release Information
================================

NOTE: This file was written well after the end of the competition,
and should not be considered part of the entry when judging.
However, it does draw attention to some aspects of the program
which may be hidden, so it should facilitate judging.


Changes from the SpeedHack release
----------------------------------

- Added this file
- New website listed in readme.txt
- Corrected menu alignment when 1000 stars are selected
- Bounce sound effects made twice as loud

...and most importantly...

- Arron added a level called 'sheep' - be sure to play it!


Compilation
-----------

Do not bother using the makefile! The makefile was created by
RHIDE, and it is not very good. One of these days I shall learn
how to write makefiles properly.

On DJGPP you can compile the program like this:

gcc -O2 -ffast-math -fomit-frame-pointer -funroll-loops
                                        *.c -o sheep.exe -lalleg

That should all be on one line.

The parameters may vary on other platforms - in general you can
keep -O2, but you may have to remove some of the others. You
should not need to change "*.c -o sheep.exe", unless you want to
rename the executable (for example sheepwin.exe). Linux users
have to replace "-lalleg" with "`allegro-config --libs`" (type
the apostrophes using the key next to 1).

There is a problem compiling on Linux, because the function
stricmp() does not exist. Allegro defines its own version of the
function, but an oversight in Allegro makes it impossible to take
the function's address. This has been corrected for Allegro WIP
3.9.36 onwards. In the meantime, change 'stricmp' to 'strcasecmp'
on line 117 of levmenu.c to make it work.


SpeedHack Requirements
----------------------

This game is supposedly in the style of Jeff Minter (just in case
you didn't realise that). If you don't know who Jeff Minter is,
go to http://www.magicnet.net/~yak .

- Particle engine

OK, I took that literally. I decided I had to create some particle
physics. Hence the bubbles bouncing around. Then I decided that a
single particle system wasn't enough, and I went on to implement
two more - the pixelshatter effect when bubbles pop and animals
explode (they actually use the same code, but don't tell anyone :-),
and the starfield in the background (which uses quaternions to give
the impression that the level is moving and spinning out of control
in space).

- High Score Table (as applicable)

Again, I was not happy with just one high score table. I have
separate high score tables for the different levels. See if you can
gain top position in all of them!

- Donkeys are cool. Rosemary lloves donkeys. Add a donkey somewhere
- in your production!

Some of the bubbles contain donkeys. I also put some sheep in to
curry favour with Arron, and the cows and pigs are just for variety.

- As advertising seems to be everywhere on the Internet with banner
- ads and spam, then I thought that the SpeedHack should be no
- exception. Please add an advert for a spoof or imaginary product
- somewhere in your program. Extra kudos is awarded for clever and
- subtle implementations.

Check the default high score table. Note that "tobacco" should
probably have been "tar" or something.

- Act of Dog

My Act of Dog attemts to explain why I did not use an Act of Dog in
my production. But I've just implemented an Act of Dog, so I've now
implemented all the requirements, and I don't need this Act of Dog.
Now that I don't have an Act of Dog, I'll have to write an Act of Dog
to explain why I don't need the Act of Dog.

Arron, next time, you'd better say "The Act of Dog is designed as a
get-out clause for not implementing one or more of the **ABOVE**
requirements" :-)

- Other techniques (underhand or otherwise) will have varying levels
- of success.

Arron, since you like sheep, you'll have to award me extra kudos :-)


Re-used Source and Data Source
------------------------------

input.c was taken from one of my other projects and adapted.
editplay.c contains an adapted version of an array from exkeys.c,
one of Allegro's example programs. All other code was written by
me, specially for this competition.

I drew the pictures and generated the optimised palette in
Paint Shop Pro. I used Cool Edit 96 for the sound, and all the
animal noises are all my own (that's one of the advantages of not
being human).

The 'pop' when a bubble pops, and the 'bang' when an animal
explodes, are taken from Rock 'n' Spin. The 'pop' was originally
created by me, and the 'bang' came from a firework display I
recorded originally for LineWars.

There, now I have two more adverts in my game :-)

The 'inflation' sound (which may not be obvious until you hack
the datafile), and the 'splat' sound mixed in with the explosion,
were also created by me, specially for this competition.


Menus
-----

Be sure to explore them fully! There are many nice options hidden
in the menus, and I inferred from some people's comments that they
had not found them. In addition, a couple of people have had
trouble removing players from the game.

Here is a full description of the menus and how they work.


Play Game
---------

Well it's obvious what that does. Don't forget to allocate players
first.


Allocate Players
----------------

Use this menu to tell the computer who is playing and set options
for each player. There are four entries. To enable or disable a
player, use the Left and Right Arrow Keys. To edit options for a
player, select the player and press Enter or Space.

When playing, the screen will be divided in such a way that whoever
is listed first will appear on the left of the screen, and whoever
is listed last will appear on the right. You should bear this in
mind when deciding who is entered in which position. There is no
real advantage in any particular number - once you have entered
your name and chosen a colour, that is your identity.


Edit Player
-----------

This is the menu that comes up when you select a player and press
Enter or Space.

When "Name:" is white (as it is by default), you can type your name
in. Your name will then appear at the top of your part of the screen
while you are playing, and this is the name that goes into the high
score table if you qualify.


Change Colour
-------------

This can be a bit confusing, but the following instructions should
help. The words "Change Colour" will be highlighted in white. Then
you can use the arrow keys to change your colour. The words
"THIS IS YOUR COLOUR" will then change colour accordingly.

During the game, other players will see you as a blob of your chosen
colour. If you qualify, your name in the high score table will appear
in this colour.


Set keys
--------

You can select the words "Set keys", but you cannot select the
individual keys where they are listed below. When you have selected
"Set keys", press Enter or Space and follow the instructions. Do not
worry if a different key's name is displayed afterwards - during the
game, the computer will still respond to the key you pressed.


Back to the main menu
---------------------

Options
-------

These are general options for controlling the game, as opposed to
individual players. They are explained in the original readme file.
One further point: although it is possible to change the colour depth,
there is little to be gained. I recommend always using 8 bpp for the
sake of speed.


View High Scores
----------------

Shows you the high score table for the current level. Note that this
table belongs to a particular level. To view high scores for another
level, use the 'Change Level' option.


Change Level
------------

This menu lists all the levels on the hard disk. Choose a level using
the Up and Down Arrow Keys. If you find the game really hard, and you
keep falling off, try 'safe'. If you want a challenge, try 'grid'. Be
sure to try them all though!

The current level is stated at the top of the main menu, and at the
top of the high score table.

The original readme file explains how to create your own levels.


Exit Game
---------

The standard 'nuke' feature. If you choose this, your computer will
explode and the sky will turn green.

Ben Davis - ben@vjpoole.freeserve.co.uk
