|
June 10th 2004 Wow, is it nearly a year since I started Booty! Another date another game started. Always fancied doing this one, but every time I tried to do the teddy graphics, it looked pants. By some miracle, I was bored at work and decided to have yet another go at the graphics – they came out better than before, so I persevered and ended up with something that looked almost usable! The game allows you to control a Teddy Bear trying to get back to his nursery. To do this he has to travel through a number of toyboxes. The original Spectrum game claimed 100 toyboxes, each adding a new toy-nastie to avoid. Only time will tell if this claim is true.
To get out of each toy box Ted must collect blocks to make some stairs so he can climb out. Also in the toy box are various toys, all of which kill ted if they touch him. Ted can fight back though, by throwing things at them or freezing them with help from the Jack-In-The-Box. If all the toys are destroyed, a nasty lump of indestructable plasticine is let loose! So, on with the remake... I animated the movement, increased the frames from 2 to 9, so it should look a bit better. After a lot of tweaking, I finally had the teddy complete. Next was to start the code and see how he looked on screen. A few hours later and teddy was running about on screen, looking very alone, but quite effective. In the original, the blocks kind of ‘auto-positioned’ in the right place if dropped close by, this could be done easily, but the hard part is the stacking order. Again, in the original if you had all the blocks in place but in the wring order, you simply stood over them and continually pressed the pickup and drop key. The blocks would then magically re-arrange themselves into the correct order. I may bypass this and have either a rule saying blocks must be dropped in order (ie all yellow ones first, then red ones.. until the steps are built) or have them dropped in any order. So, next up was the blocks. Get them drawn and try to work on the pickup and drop routines. June 18th 2004 The original game had a strange and quaint way of picking up objects. I suppose to save memory, the block or object was just attached to the main teddy sprite and followed it around the screen instead of actually showing the bear holding something. I think the new game needs to fix this and so I set about drawing the not-moving teddy holding a block. I shoved this into the game and wrote some code that allows him to pick up blocks. Then changed the sprite image to show this, and removed the block from screen. Ted can now pick up and put down a block – wow! Next I have to draw all the animations for him running (in all directions) holding a block. This can then be switched at the point the block is collected. I have played the original to level 5 so far, and as each level increases, so does the number of nasties to avoid. So far we have 3 soldiers, a train that when crashes into the steps, scatters any stacked blocks about, and two spinning tops. There are also various things to pick up and throw, like boots and a ball. But first I need to get the pickup and drop anims in.
July 1st 2004 Been on holiday, so not a lot done... Spent some time doing the anims for when Ted is carrying the blocks. I will also have to do ones for when he carries the boots, ball and peashooter! Argh!! In the meantime I added the new anims of him carrying blocks into the code and wrote a switching routine. This works really well at the moment apart from a few keyboard scanning routines – sometimes it’s a bit hit and miss. I drew up some nice text for the score bar and added a fully working score, lives and box number panel. It’s all looking rather splendid, although still no backdrop to play in. I will get this in next as I need some kind of guidelines for where things can move and where blocks need to be dropped to form the steps. I re-drew the teddy bears face (side views) to make it look more cute, then had to transpose it to all the animation frames. August 8th 2004 Finally added the toybox background and limited the movement of the teddy so that it stayed within the box. Completed all the blocks and wrote the code to randomly place them within the box. I dug out some awful midi tunes and then located the C64 sid music for the game. I converted it to wavs, then added some nice reverb and finally dumped each tune out to MP3. They sound pretty good, but there will be an option to switch it off in case it starts to send you insane! I will add a sceenshot next update - but the sun is out and there's a cold beer in the fridge :-) August 26th 2004 I re-coded the pickup and drop routine and now it seems to work fine, not loosing any blocks as yet, but the pickup key is a bit on the fast side. You can pickup and drop at the same time, and sometimes end up pressing the key a few times until the block is correctly picked up. I will try to fix this later. I drew a nice soldier and added him to the game. He now struts up and down the left hand side of the screen, pointing his gun at Ted. No collision detection yet, but it does look nice. Next on the agenda is the actual placing of blocks to form the steps to get out. I knocked out some testing code that completely failed, so I started again. This time it worked and the blocks are built into steps as they are placed there. There is still a small bug that I haven’t managed to track down yet, but time will show it better. With this stage complete, it means that the first level (box) can be completed. So now I have to complete all the other things like the other objects, the peashooter shooting, the jack-in-the-box and of course the killer plasticine! Not to mention the collision detection !! I added the ball, and along with it the routines to pick it up, drop it and throw it. This was a bit hit and miss, and still has a few problems. Its very problematic with the collection and throwing routines, but I will have to do a lot of tweaking. There is still a problem with dropping blocks in the right place. Every now and again one does not drop properly, but its variable gets set. This means it is not counted as a step (10 needed for next level) but can’t be picked up again ! I think some serious debugging is on order soon, before the game gets too complete and full of code. Best to get what I have working before moving on. As promised, here is a screen shot (50% reduced).
September 9th 2004 Doh! I continued to play the original to see what things get added as the levels go on – I can’t see how there are 100 levels in the game, because it pretty crowded as it is on level 10 with 3 soldiers, a train, two spinning tops, two dolls, an aeroplane and something I can’t quiet figure out! Only time will tell and of course the infinite lives poke ;-) I added the dummy (pacifier if you’re American) and the bottle. These are two of the three objects that can be collected for points. I may reduce the number of boots from 2 to one. A bit more playing of the original, and I discover that when Ted collects the rattle, dummy and bottle nothing much happens. No score, no extra features! I wonder why this was and so went in search of the answer. As far as I could tell, the only difference collecting the items made, was that the jack-in-the-box lasted longer when it froze the toy movement, but this could have been an illusion! Its not a bad plan, so I may implement it if I can’t find any other use for the items. Having no luck with the answer, I added the collection routine which gives Ted 10 points and displayed the collected item in the score bar. I then had doubts about the image used for the beach ball. I tried a few other ideas, and then had to insert the new ball into all the other animations of Ted. It now looks much better. I also modified the Ted sprite a little bit to help fill him out and make him look more round and solid. I still have a wild flicker problem that I will have to figure out later, as much of the game is complete now. I just have to add music, and the collision routines. Of course I have to add the other toy sprites, but all the code is there, just a matter of pasting it and changing the sprite name.
September 24th 2004 Decided to try and tackle the flicker problem. I have decided to aim to complete a level fully. This means implementing collision, death, the jack-in-the-box and every aspect of the game. Then I can move on and add what ever is required for the next level.
So, I began work on the Jack-in-the-box. Having drawn him, I then have to add him to the game along with various timers and collision checks. I then added a timer so that he only pops up for a few seconds. Next I added checks to all the current toy movements so that they all stop if the jack is out of his box, and re start again when he’s back inside. Now that’s working fine it’s onto the next stage - destroying the toys.. October 9th 2004 I discarded the boot in favour of a new weapon in toy box – a little surprise for you! I added the plasticine image in readiness for when all toys all destroyed. I added the last usable item – the pea shooter – and along with it the pick up and drop, and the firing system. So Ted can now pick up the pea shooter and fire peas around the screen. Now it’s time to destroy the first toy – the guard. Because he’s the only toy in the box, when he gets splattered the plasticine should appear and move about randomly, and basically get in the way of Ted collecting blocks. I added the code for the collision detection for the guard and all throwable objects. This worked a treat and the guard vanished to be replaced by a small (as per original) explosion. I then added a toy counter, which when it reaches zero, the plasticine is activated. I added a few lines of code to make it randomly move about, and watched as it meandered about the toy box happily. This about wraps it up for the first level apart from the collision with Ted. This will go in next, and then it’s just a matter of adding all the other toys. I must admit, that having 100 levels seems a bit over the top. I mean, no one can survive with more than 20 objects anyway – the screen area is just too small. I will keep adding toys until its impossible play – then call it finished ! October 23rd 2004 Hurrah! I must remember to copy ALL game files across before I let the old machine go. Now that would be a complete disaster if I lost all my source and image data. I backed it up to CD and Pendrive just in case. A few days pass….. Finally got my work system up and running smoothly and got the dev kit back in place, complete with source and images – ready to continue… Death of Ted. I added a check for number of lives, and put in an end game message if it reaches zero. What I need to do now is to add a small bit of code to reset all the variables so the game can begin again. I can just add this to the intro section without too much hassle. I adjusted the code for the plasticine and then decided in a fit of madness, to try and fix this annoying pickup/drop bug that’s been around since I started this game. I sat down with a string cup of tea and worked my way through he code – adding counters, and checks, double-checks and loops – eventually and finally the pick/drop routine works how it should. Phew, no more keyboard bashing in frustration when you can’t pick up that ball in time, and end up getting killed. I added the collision check between Ted and the plasticine, making level 1 fully complete apart from sound. Its now time to start adding the extra toys/levels. November 11th 2004: Boom! Before I moved on to the next level I tweaked the code and added a game reset function that basically resets all the game variables ready for a new game to start. I added some checks for various key presses to smooth things out a little, and am now happy that level is complete. On to the next one.. I added more code to set the new level variables, and using the graphics I had already done, the game lays up to level 4 before running out of new toys to add. I have yet to add the collisions for the new toys, both into Ted and being destroyed by the weapons. Next it’s back to PSP for some more toys. Interesting… So, that mean less work for me, unless of course I add a few of my own ;-) Bouncy bouncy… I added this code and things worked great until it came time to pick up the ball again, then for no reason, 2 balls appeared. One on the ground and one in Teds hands. I went through the code and found nothing that drew the ball under the conditions set. I added some debug info and ran the checks again – still 2 balls on screen. I went through the code looking for bits that draw the ball – all correct with no misplaced routines. This is weird, and very annoying. It’s something simple yet bloody hard to track down. I’m guessing its just some bad logic somewhere. The ball is drawn on the ground until Ted picks it up. It is then removed from screen and the Ted sprite is replaced by the one with him holding the ball. He can then put it down again and the reverse happens. This all works fine. If Ted throws the ball, the ball sprite is drawn on screen, Ted is switched to him holding nothing and the ball movement is plotted. The ball reaches the end of its travel and stops. When Ted tries to pick it up again, the Ted sprite is switched but the ball is still visible on screen!!! Argh!!! During my checks I also found another bug – one of the toys, when thrown to the right can not be picked up again. This is now fixed and so its on with the ball bug search. Found it! Anyway - here's a pic of how its looking at the moment (reduced of course!) ... more soon...
November 25th 2004: With the ball problem sorted out it was toy time again. I drew a nice animated train and added it to the game. This little beast sits at the top of the toy box and randomly sets off across the screen. When it hits the place where your bricks are stacked, it scatters them back around the toy box. I put in a random pause and waited… the train trundled across the screen and stopped. I then added a check for position, and removed the sprite and replaced it with an explosi I drew a doll and animated it. Imported it into the main code and ran the animation. Bloody aweful. I got another image and tried again, this time it was much better. I played the original up to level 19 and still only 12 toys on screen. I guess that’s it – after all, it is only 16k game. Created the sprites for the other doll and the other half doll half top thing and added the Created the tank sprite and added that to the main code. This one has a different movement pattern to the rest of the sprites. It moves horizontally across the screen at varying speeds, so I had to create the movement for that too. Now I have all the sprites/toys that the original had, the question is, do I add some mor Anyway – now that all the graphics are done I will have to concentrate on the code and get all the collisions working.... but didn't ! Decided I wasn’t keen on doing the coding so I set about adding some sound effects. I found a couple on the internet and modified them to fit the game. Slipped them in and did a few tests. I have sound effects for most things now, picking up, dropping, throwing, stacking and shooting the pea! I think I will get the game to the same stage as the original and then make a decision as to what to do next. Either release it or add more toys. So I’d better get on and do the bits of coding then. I will also have to add an options/info screen for people who haven’t played the original and to be able to switch off the music. Also will have to add some hidden extras like all my other games.
December 3rd 2004: I added the final two sprites (two planes) of the original and put in the code to make them randomly change direction. I then added them to the code that decides which toys to add for which level. I made a start on the collision code, and now half of the toys can be destroyed by the ball – a lot to go yet though. I tweaked the block-step-building code so it works better and blocks don’t get left out. Had a long crack at it and finally got all the collision code done, so now the game is playable in the real sense. So, for the ‘original’ version it was play-test time. Bug1: Ted dies for no reason on far left – fixed. To do: After playing the game for a bit I became more and more aware of how bad the running animation was of Ted. I took the plunge and re-animated his run, which turns out really well – but I then had to change the other running animations as well. (hold the ball, holding the blocks and holding the peashooter) I drew, animated and added a new toy. I placed it in the game but as yet there is no collision check. More play-testing: Bug6: Ted sometimes runs past his anim cycle when dying and causes an error – fixed Added another toy.. More play testing and bug fixing. Also added another toy, so that’s 5 more than the original. When you get to the level though it becomes very hard to survive. Careful use of the ball and jack-in-the-box is essential. In the original, there was a limited amount of times per level, that the jack-in-the-box could be used – I have added this feature also hehe ! Here is a reduced screeny of level 8.
February 23rd 2005: Sorry about the long delay... Now we are back - almost.... this is the dev diary up to the Feb 23rd... some of it was done before that but I can't remember which bits, so I decided to stuff it all in one lump. Bug10: Toys can be destroyed when paused (jack-in-the-box open) – fixed Added a last level and highest score indicator (only if you get past level 1) Finally added the music. Bug15: Ted sometimes over-ran his frame count (different) – fixed. I added a rating system, so after each game you will be given a rating based on the toy box number you managed to reach. More info about this in the special feature. Added the cursor control along side the normal QAOP controls. Game complete (hopefully) – more play testing. Bug16: Teds lives were checked for 0 instead of less than 1, this caused probs under some circumstances. fixed Collated all images (8mb of them!) and compressed then down to 800k ! Phew - very nearly there now.... Beta 1 now being tested... Here's the intro pic... (reduced of course)
March 1st 2005: Release time sonn...
Sent the game to Dion for testing. Bug 21: Plastacine fails to appear after level 16 - fixed ...and probably more we forgot about... But now its done.... ready to release.... Hope you enjoy it... |