FRIDAY:

2130:	Collected rules as they were posted. Already quite late, so I can't do any work on it now, but I spent a while thinking through ideas and eventually came up with something that seems workable.
		Also organised in my head a list of what to implement first, and what to leave until last and implement only if time permits. (It probably won't).
		

SATURDAY:

1250:	Would prefer to have started earlier, but I had to visit a shopping centre to pick up a CD. Borrowed some basic code structure from a game I'm already writing, gutting out that which must be rewritten for this game.

1259:	Code compiles. Doesn't actually DO anything yet, but it's as well to start from a working piece of code. Time to start implementing stuff, starting with the player's craft. It's going to be based on basic Newtonian motion, with momentum in two dimensions, with the player applying thrust up, left and right, and gravity doing the down thing (as it is wont to do).

1346:	The player's craft is now flying about like there's no tommorow. It can bounce off the sides of the screen, losing some velocity as it does so. Quite convincing, actually -- maybe I should follow this up with a tennis game. :-P
		Currently, the craft is simply a little green square -- haven't had time to draw graphics yet, but it'll do for the moment.
		Off to lunch.
		
1415:	Back from lunch. Tweaked the player values and fixed a bug which made the player "stick" to the walls.
		
1435:	Beginning to implement the enemy craft. Data structures have been set up, and the rest of the code has been tidied up a bit. The functions exist but aren't called yet, and don't do anything. Time to fill in the gaps...

1515:	Ships should be flying every which way now. Something's not working. (AARGH!) Debugging.

1523:	Fixed -- I'd forgotten to convert the fixed point coordinates to intergers, so it was trying to draw them at coordinates over 2^16 -- far outside the boundries of the screen! Fixed now, but that rectfill() line is getting REALLY ugly!

1538:	Ships are moving, but I'm not entirely satisfied with their movement paths. Must look into it later on.

1554:	Trying to fix the ship movement -- Just spent ten minutes trying to figure out why itofix(.1) wasn't doing anything. Are we new to using Allegro's fixed point numbers, perhaps? :-P

1608:	Ships finally flying around nicely. Now sick of coding for the time being, I'll pull up ASE and start drawing some graphics -- just a couple of sprites for the player and the two types of ship.

1655:	Drawn four frames of nice graphics for each of the three ships.

1706: 	Grappled with Grabber, created GFX.DAT.

1740:	The sprites are now integrated into the game, running through their animations as the ships fly.

1814:	Having played with the game a bit, I've decided that given the difficult nature of controlling the craft and the very active flight paths of the other ships, they will not fire bullets around -- simply avoiding the flight paths of the ships should be hard enough.

1849:	Been off doing other things for a while. Stopping for Tea, and Doctor Who's on a bit later...

2050: 	Back at work implementing a random background image.

2205: 	Background code is doing something REALLY stupid. AARGH! 

2215: 	A few glitches fixed -- the main problem was a side effect of the background pattern I'd kludged up. One parallax scroller working beautifully. Finishing for the night.

2221: 	Just noticed the background was scrolling the wrong way. Fixed. REALLY finishing for the night. Tommorow, collision detection. (FUN! Ahem...)


SUNDAY:

1133:	Beginning to code some random background drawing. (What I wrote yesterday takes the image and scrolls it across the screen, this code actually draws the bitmap to be scrolled.) *Adds bg_init() to the list of really really ugly blocks of code that should be cleaned up if I had nothing to do for the rest of the weekend but clean up ugly functions.*

1147:	Background code works like a charm.

1156:	Going off to do other things...

1530:	Beginning work on the game proper for today. Setting up five different levels with different backgrounds in my scroller.

1601:	There are now five distinct level backdrops. They are: Fields, Desert, Ocean, Wasteland, City.

1633:	Added a black outline to all the sprites to make them easier to see against the backdrop. This increases the size of the sprites, and GFX.DAT is now 5kb. (Much more of this and I'll be out of HDD space :-P ). Now TECHNICALLY the sprites are 17 colour, since they use colour 0 for transparent, and 16 as black, but since colour 0 is never drawn, it is effectively only a 16 colour display.

1640:	Time to start working on collision detection. Hopefully, since the sprites are almost rectangular, I'll be able to get away with a simple rectangle intersection check.

1648:	Devised the system on paper thinking it would be very complex and difficult -- had an alogorithm written in 10 seconds flat. Hopefully it works well enough.

1708:	Figured out why the collision detection function wasn't working -- nothing was calling it!

1712:	Having fixed that, the code still doesn't work -- Something's wrong here.

1935:	FIXED -- Apart from attempting to add an integer to a fix (and this ending up with 10(fixed) + 50(int) = 10 (or possibly 11)), not much was wrong. Just another example of how really small things in C (and other languages) can find new and inventive ways to bite you upon the bum.

1942:	Implementing a special animation to end the level.

2018:	It is now possible to progress through the levels.

2028:	Added some code to make the player appear 'dead' once hit -- he stops responding to keypresses and simply bounces around under his own momentum. General tweaks.

2052:	Since adding code to draw explosions when the ships crash into each other, they have stopped crashing as much -- Murphy's Law strikes again. They ran four or five passes before any hit! The explosion code itself is somewhat rushed. There can only be one explosion on screen at once, when I really should have used a linked list, and it's tucked away in several different files when it SHOULD be in a file of it's own. At the moment I couldn't be bothered fixing these up -- it works well enough as is and complicating matters would only result in more debugging.

2108:	Played the game for a while. It's almost complete (and very hard). All that's left to implement now is the title screen, the ending and the map (which will consist of a set of pre-drawn bitmaps, one before each level). I've also implemented a cheat code (define CHEAT in game.c) so that the whole of the game can be seen by those judging it for Speedhack without having to spend hours trying to finish it. Finishing for tonight.

2117:	Slowed the framerate down a bit to make it a bit easier (60->50)

2129:	Added the 'be nice to Windows users' bit, which stretches the image to 640x480 as Allegro in Windows (apparently) won't do anything less. Would like to have made the stretch blit command work to size screen->w * screen->h, but this doesn't work for some stupid reason, so I'm just hard coding 640x400 for now. This mode slows down the code to buggery, but it's the only way of doing full screen in Windows (I think). REALLY finishing for the night.

2136:	Fixed a little bug in the fade out transition. REALLY REALLY finished...


MONDAY:

1417:	Home from School, back to work on the game. I've decided the easiest way to do the map is to draw it on paper and scan it. Each image (with more of the map shown) will be shown before the level starts.

1535:	Now drawn and grabbed a number of hand drawn (scribbled) maps and a title screen.

1557:	Displaying the map graphic causes a GPF later on for some reason. Trying to figure out why.

1634:	FIXED! Wierdest error yet! While the image was being displayed, "frames_to_run" was being incremented, so when the game proper started, it attempted to run several seconds of cycles before drawing any graphics, and due to the way the code was structured, attempted to draw frames that didn't exist. The game is now finished, apart from the ending and some testing.

1653:	Wrote the inspirational ending text. Writing the ending code.

