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. 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 -lalleg", unless you want to rename the executable (for example sheepwin.exe). 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 will be corrected in future versions of Allegro. 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