>> Donkey <<

SPEEDHACK 2001 Entry
January 26 - January 29
http://www.ashutt.demon.co.uk/speedhack2001/
by
Elias Pschernig
elias@f2s.com

this is version 1.1
*Bugfixed version from Jan 31*
Following bugfixes are included since speedhack:
o gcc produced executables crashed on exit
o minor level enhancements (level 10 and 11)
o music on/off is properly saved now
o music volume is adjustable
o score isn't reset after each level anymore
o palette in keyboard options is fixed
o minor editor enhacements / fixes
o minor keyboard control changes
o i wrote the original text below at 4am, so i'm going to
  read through it now and correct some (probably many) 
  mistakes...


Future plans: everything someone mails to elias@f2s.com 
o more levels (available in 1-2 weeks at allegro.cc)
o remove the advertisement required by speedhack rules
o new items in the new levels
o monsters and robots (like in the original game)

If you find any bugs (even very minor ones) please mail me.
elias@f2s.com

You can also mail me if you want to use the source code and
need some comments on something - or if you want to tell me
how you liked the game.

___________________________________________________________
Introduction

This is my entry to the speedhack, it's inspired by an old
Amiga game i played years ago called 'Bombuzal'. Although
the speedhack is only one weekend, i think i coded over 30
hours on this - and i needed less than 1 hour for music
(donated by Toni Ylisirni), sound (only one, found it in
my windows directory by doing a search for .wav files on
my harddrive), external graphics (fonts, ripped from
windows, and the in-game bitmap, ripped from Arron Shutt).

See
http://www.allegro.cc/speedhack/progress.taf?id=45
for my progress report on speedhack - or a shortened
version at the end of this file (without screenshots).
___________________________________________________________
Compiling

Compile all the *.c files, and link with the Allegro
library.

For example, i'm using mingw, so i write:

gcc *.c -lalleg -O3 -Wall -mwindows -odonkey.exe
(-O3 for optimisation, and -Wall for warnings,
-mwindows is mingw specific and creates a no-console .exe)

___________________________________________________________
Playing

Just run the executable, wait until the menu has loaded,
then select 'New Game' in the menu, either by clicking with
the mouse cursor or by hitting the enter key.
This will start a new game for you. The goal of the game is
to remove all the bombs, by making them explode. To do so,
you can use the following keyboard commands to control the
Donkey:

default controls, can be change in menu

LEFT          move left-up
RIGHT         move right-down
UP            move right-up
DOWN          move left-down
RIGHT CONTROL light bomb (The donkey isn't clever enough to
              deactivate the bomb, but at least it can
              normally manage to make one step away so it
				  doesn't get killed)

You can now try finishing the first level. But of course,
this wouldn't be a puzzle game if it was that simple. If a
bomb explodes, it will kill you if you stand near it. Later
there will be different sized bombs, and they will have a
greater radius where they will kill you. And if another
bomb is lying near an exploding one, it will explode too.

I try to illustrate this here:

D means destroyed/chain reaction
K means killed/chain reaction

small bomb:

  K
K O K
  K

medium bomb:

    K
  K D K	
K D O D K
  K D K
    K

super bomb:

      D
    K D K
  K D D D K	
K D D O D D K
  K D D D K
    K D K
      D

The different types of ground might although be of interest:

grass     That's where a donkey likes to be.

ice		 Don't step on it until you have to, else you will
          be helpless sliding around

breaking  Although looking like solid stone, a donkey that
ground    heavy as this one can only walk safely over it
          once

metal     Solid, undestroyable steal. Even a super bomb can
ground    only do some scratches to it.

___________________________________________________________
Menu options

New Game: Start a new game

Continue Game: Continue in the level you most recently
					played

User Levels: Start a new game, using the user levels

Highscores: View the highscores

Name: put your name here to be displayed in highscores

Map Editor: Run the map editor.

Options: Options menu.
 
 Keyboard: Define the key controls. Select a key control
           with mouse or <return>, then press the desired
           key. It should be saved even when you exit the
           program.

 Music:    Adjust music volume, no volume=off.

Exit: Exit the program.

___________________________________________________________
Trouble Shooting

Display problems

You can use a command line option 'nopage' to disable
page-flipping. This should do nothing noticable on fast
computers and might decrease performance a bit on slow one,
maybe adding some display artefacts. In any case, it may
be possible to avoid flicker on some buggy VESA cards with
it.
Example usage with djgpp version: donkey.exe nopage

Anything else

please mail to elias@f2s.com

___________________________________________________________
History (from speedhack progress reports)
http://www.allegro.cc/speedhack/progress.taf?id=45

Sunday, January 28, 2001 (16:27:34)

I'm almost done ! The only thing still missing are some
levels. Now i even have a background music (thanks to Toni
Ylisirni) and (one) soundeffect. But by varying the
parameters of play_sample it sounds like i'm using more
samples :) I updated the menu system so it can save options
and keycodes now, and i added a highscore table. Maybe i
post a final screenshot here later, now i have to create
levels..


Saturday, January 27, 2001 (22:21:54)

The basic game code is done. Total coding time is about 24
hours by now i think :) As you can see i added some
particle effects for exploding bombs. The map editor can
now load and save maps, and the raytraced graphics are
reused to speed loading up a bit.


Saturday, January 27, 2001 (15:30:33)

My donkey is complete ! Now it can walk around. It took
longer than i had planned, i better hurry now with the game
code.


Saturday, January 27, 2001 (11:46:06)

I'm using far too much time for the donkey. It's finished
now (see screenshot), but i wouldn't have had to write a
raytracer if i don't animate it. I'm going to work on the
animation for about an hour from now, then i do the game -
i hope i can do a playable version until tomorrow. Tomorrow
i plan to add textures, particle effects, sound and menu
options. If there are any problems with the game i'll run
very short on time :) And i shouldn't forget about the ads,
have no idea for them yet..


Saturday, January 27, 2001 (01:39:12)

It's harder to make a donkey than i thought...see
screenshot :) I'll adjust the donkey a bit (colors,
perspective..), then i want to make the actual game. If i
have time, i'll add some particle effects, and some
textures...


Friday, January 26, 2001 (23:12:55)

My donkey-sphere-raytracer works, now i'm going to build
a donkey with it..


Friday, January 26, 2001 (21:26:40)

I made a map editor for my isometric map. But i still have
no solution for the donkey, because i don't know how to
render or draw it. I was digging up the code for my last
game, so i could convert the Allefant to a donkey. The
problem i have is, i need an isometric donkey..so i ended
up writing a sphere-renderer, but it's not working. I'll
try today to get it work, else i have to find another idea
tomorrow.


Friday, January 26, 2001 (17:07:08)

Now tow menu options work, exit and start :) I can now
display an isometric map, but i have no graphics yet. I'll
try to finish the basic game first. I need to add a moving
character (a donkey), and it has to remove bombs from the
map. When they explode, i will include some particles :)
The only thing i'm still missing are advertisements..
The picture shows my first draft on paper for the game :)


Friday, January 26, 2001 (13:48:49)

I did a web-search for puzzle games to get some idea for a
game, and i found a game i played 10 years ago on the Amiga
- i'll try to do a remake of it. My progress so far is a
menu with 2 options, and both of them exit the program :)
___________________________________________________________