Richard's C64 game projects:
Time for the flight of your life

The Up in The Air Team

Richard Bayliss - Programming, compiling, disk/tape mastering, sound effects
  Richard Bayliss / Andrew Fisher - Music
Wayne Womersley - Graphics and game project head gaffer

PAGE 1 / PAGE 2 / PAGE 3 / PAGE 4
/ PAGE 5
/ Page 6

Project Cancelled

6th August 2009 – Get wood, build up a panel. (Wayne)

Okay, following on from the last diary. Richard had this bonzer idea, “Wayne, why not do the status panel in a wood style”. Ha, ha. Easy to ask for. Another ball game, making it happen. Anyway a couple of hours later after drawing on my graphic editor and I had something half way decent. The trouble is while it looked woody it also looked (to me at least! ) very flat. So I decided to round it off and make it look like a log shape. (This sounds like what I want – Richard). When I spoke to Andrew Fisher about this I could hear him frown down the phone (I am SO perceptive sometimes), truth be told typing this out it sounds bonkers but it looks nice as the status panel so I don't care!!!

Truth told not much work has been going on within the game apart from the status panel, I have however been working on the order of attack waves again(!) and hopefully now we should have a finished order. Just been on Gmail today and Richard has put some suggestions to me. I personally want each level to have a specific set of enemies to kill/avoid as well as a quota of balloons to collect. And then of course there will be end of level enemies and the pick ups.

I Have finally bitten the bullet and made a decision about the pick ups today. As you know most shoot em ups have extra weapons, the player progresses through the game and new weapons become available to them. I have decided that the player must play two game levels, before facing off against a big baddie. When you kill it Parachutes containing extra weapons will drop from the sky, you will be allowed to collect one parachute and this will allow you access to a new and more powerful weapon.  Cool, am glad that's over. I've had the graphics drawn for yonks and couldn't work out how to implement the into the game!

Also I got home at the weekend and Andrew very kindly downloaded some public domain games and UP IN THE AIR previews for me to look at. Hopefully at some point soon you guys may be able to play a one level version of the game (Hopefully from the TND Web site with one of my nice TND intros bolted to it – Ah the tradition. Hahahaha - Richard) Richard is working VERY HARD to produce another quality production on the C64 - What a Hero!

Erm, I have to ask, I have number of games in various stages of development, does anyone want to see them finished by me and Richard? Games include CAMELS IN SPACE 2( a sequel to Richard's original camels game but more reminiscent of Jeff Minter's Mutant Camel Games ), HONEY BEE (A massive update of Richard's Balloonacy games but starring a Bee!), BOUNCY CARS think( Up In The Air or Sub Hunter with Cars!), WIZARDS AND WARLOCKS 1 and 2 (Check out a mini preview on richards website, search for The Sorceror ).  Right well thats me done, Ive also sent more game statistics and comments on the latest UP IN THE AIR preview, catch ya soon dudes! (Aaaaargh! Wayne, stop, stop, stop! Are you trying to kill me? Hahahaha).

Richard's Bit

I was discussing to Wayne via email about the level ideas for the game, as I did not want the project to be too much the same as what many of my game projects used to be like. So I came up with some ideas to make the game more interesting – although I am still working on tweaking the very first level. Ha,ha,ha. Wayne returned an email with response about some of the level ideas. But I also had another email, which was the latest email from Wayne. It was something I have finally been looking for. :o)

Wayne read my plan and he has updated my plan; the enemy type, the colour scheme for the enemy and also the enemy speed for the first level. I am happy with this, and will progress more with the project this week. Plenty of time, no pressure. Well, real life is more important :o)

It seems that Wayne would like to see me release a playable preview of the first level, as soon as it is finished. Well, that should be no problem, but this time I will only want to limit the number of playable previews, as we don't wish to give too much away. Plus it also gives me the opportunity to bolt one of my splendid TND intros on to the preview (It's my way of stamping the software label on to the productions, so people know where they got it from originally). I must remember to delete a load of game sprites before releasing a preview of the game. That will be done by use of the Action Replay cartridge :o)

You may have remembered (or maybe not) that Wayne suggested that it would be cool if JSL/Covenant does a logo for the title screen. I thought that JSL probably would not have time to do a logo – although there is no rush. Well, I sent a private message to ask about the logo and JSL responded that he can do a logo for the title screen of the game, but he will not be doing a loading picture for the game. Fair enough. I didn't ask for a loading picture anyway :o) Wayne got back to me and said that he might want to do the loading picture for the game. If Wayne's picture looks like something from the 1980's era. I will come up with a suitable tape loader scheme for the picture. Hahahahah! (Cue sour grapes loader joke). I actually like this paper plane loader picture :o)


Relax, this wont be the actual loading pic. I was just mucking about and I just could not resist. :o)

10th September 2009 - Colourful thinking (Wayne)

I was going to go for dinner but decided to stay at the library and type in all the boring colour details for Richard (boring but essential - without the right colour schemes, the game will look rubbish! ). Have now sent him the first 9 Levels of colour information-BRILLIANT! Just 11 more Levels of colour information to go, am hoping Richard starts sorting out the scroll routine for random clouds soon (That wont be until after all of the level enemies have been dealt with, so it will take a long while) this should look amazing!

Something a bit different

Been at Carol's this morning, well the attic is all painted up, me and her dad assembled the bed this morning so it looks like andrew is not sleeping on the floor when he sleeps over on sunday after the retro reunited do!  Incidentally this Sunday is the retro reunited do, So I intend taking the one level demo that richard has done and pimping it round to all the hungry commodore enthusiasts. I had breakfast but havent had dinner yet and its 2.47pm so am currently starving hungry!  Hopefully Sunday I may get a Spectrum plus 2, its suddenly dawned on me I have been collecting retro machines this year, earlier at the BYTE BACK get together in MARCH (?) I got a SNES and last week I got a GAMECUBE for 5 quid! Bargain!  Not done any work on the game recently due to been round at my girlfriends, Also not having regular access to the computer is bl##dy frustrating, Carols house seems to have been a beast of burden this year, We do have a carpet for the attic so thats a good thing, am hoping once complete that the attic will be my game creation/playing room!  Am sending some more details on to Richard today and hopefully he will be able to do a bit more work on the game!  (Yes, I got that Wayne :o))

(Richard's bit)

Making things easier - Planning (Richard)
Well, I have to think of ways to make this project easier if I am going to have to randomize the enemy types. Thankfully I have found a way to solve this kind of problem (Well, hopefully). When I use byte tables, I never thought that it would be possible to use labelled constant values to make those tables. I thought I should give something a try. I written a very small test program, which will use labelled values, and inside the byte table. It looks something like this:

;Test program

             !to "coltest.prg",cbm

red = $02 ;colour red
green = $05 ;colour green

             * = $0810
             lda table+0
             sta $d020
             lda table+1
             sta $d021

table         !byte red,green

I assembled the code, expecting errors to appear, but I got no errors. Then afterwards I loaded WinVice and autostarted the assembled coltest.prg file, entered SYS2064 and got a result which looks like the picture below. Fantastic this worked nicely. I'm pretty pleased with the result, and now making labels of enemy types (specially for the randomizer routine) will make life much easier. No more byte number values to confuse me :o)

This means that I can make !byte tables a whole much easier to use and understand. As I can use label values for the type of enemies I will want and then use those for the data table. It can also be handy for things like behaviour pointers in the game.

;Name the enemy type and make it a value (This will make things)
;much easier when it comes to reading what the enemy type is.

_HangGlider_ = $01
_Bird_ = $02

<>.CheckType       lda ObjectType
                 cmp #_HangGlider_
                 bne .NotHangGlider
                 jmp SetHangGliderParams
.NotHangGlider   cmp #_WhiteBird_
                 bne .NotWhiteBird
                 jmp SetBirdParams
;The random object type of table

EnemyTable        !byte _HangGlider_,_Bird_,_Bird_,_HangGlider_,_Bird_
                  !byte _HangGlider_,_HangGlider_,_Bird_,_Bird_,_HangGlider_
                  !byte _Bird_,_Bird_,_HangGlider_,HangGlider_,_Bird,_HangGlider_

There is something I will have to be careful about, if I decide to use this kind of method. I must make sure the characters have been typed in correctly, so that the tables don't mess up or that I don't get any error messages during compiling the data. So now, I have created labelled values for the object types in the game. What I will need to do next is randomize the enemy types, check what the enemy types are and then alter the behaviour (movement) of the enemy types. Then generate a 1 level preview for you to download and enjoy (From this page) :o) Man I'm learning fast :o)

11th September 2009 - Logo from JSL (Richard)
I have recieved an email from JSL, which contains the Up in the Air logo. I loaded it up into WinVice and took a look at it. I just love it. The colours and the shading, look really nice. One of my plans for this project was to have something like a blue background for the front end, but JSL had used black background. Ah well, that doesn't really matter as I can use a blue background and black a raster split with the logo fitted in there. That would make things much better that way. I do hope that Andrew and Wayne likes this logo. Well done to JSL for some of his time working on this logo. - I will be back on to the game programming tomorrow morning. Wahey! - It's Friday and it's beer time. Whoooooooh! :o).

September 13th – Retro Reunited - (Wayne)

Retro Reunited - While me & Carol only attended the event on the Sunday, we really enjoyed it. Carol found one of those "plug & play" units set up with PHOENIX & SPACE INVADERS, and she spent a large chunk of time on that (Good for her, I say!) I nosed around the room playing different consoles and computers. Points of interest for me were the Commodore Zone (it was great meeting the guys again) and playing TMR's "GR9" game - BRILL! I did show a few people the demo of Up in the Air, and it did seem to be well received. Allan in particular asked when it was coming out, and I said "when it's ready".

My two regrets are not playing the arcade cabinet of Battle Zone and not getting a Spectrum 128K.

Talking to Andrew after the event, he made some suggestions regarding the game - it sounds like level 3's graphics are not going to cut it for the finished game, me being the stubborn pig that I am I want to see what the level looks like up and running. I am really proud of level 3, I put a lot of care and love into it - hence I'm very reluctant to let it go. If need be then I guess it will have to go.

September 16th 2009 - Wayne's wooden board.

Well, I received an email from Wayne and Andrew with another disk with the finalized graphics for the game. I browsed the diary and there were some strange filenames. Here's the screen shot below. Heheheheheheh! :o)

Now what are those files? Log? I must take a look at that. I loaded the file up and LOG, was the status panel for the game's design.  It looks okay, but there is a little mistake with the status bar. Looks like I am having to update this myself, to the panel which was used for the latest demo version of the game, which I showed Wayne and Andrew.

I also come across some other filenames, which included: charset, screen, mobs (What's mobs?), final log! and UFO. I took a look at each file to see what they were. Mobs was the entire sprite data for the game, created with Firebird Graphics editor. Char was for Char, Final Log was for the updated status panel. This time using my score panel style. And UFO? Well, that is a space level.

As well as the disk, Wayne sent me his list of what types of enemies are to be used for each level. I'll be getting through those after I am happy that the first level is actually finished. There has also been a change of plan for the gliders. Wayne doesn't want those hang gliders used in the game until level 3. So that means, levels 1 and level 2 are going to be basically simple, and level 3 is where it gets harder.

18th September 2009 - Stamping on the front

Well, not much done today, but more work will be done tomorrow and Sunday as I will have plenty of time for it over the weekend. First of all, I altered the code slightly, where instead of using data tables and !scr prompts to insert the new scoreboard into the game, I stripped the data from the status bar, stored it on disk, and then imported it into the game code as a binary. I also had to modify the source and the IRQ raster split positions, and colours so that the result looked like the screen below. It worked out nicely.

As well as update the game code and data, I decided to update the front end slightly. I took a temporary charset and imported it into the game title screen code, and fixed the raster flickering business. Oops, I forgot to mention that last Saturday I was working on the title screen. Heh, oh well. :o)

19th September 2009 - Introducing our feathered friends (Richard)

Well, I did remember to do some more with this game project. As Wayne pointed out to me, level 1's enemies should be birds. So I altered the animation type to set it to animate the enemy birds, rather than the gliders. Secondly, the birds were moving up and down just like the hang gliders. I wasn't very happy with this part, so I updated the settings so that the enemy birds just go a straight line. So I zeroed all of the Y-Movements in the enemy Y-movement data tables. It looks much better now.

Another task which I had to do was alter the enemy colours for the explosions. So that they use yellow instead of their standard colour. So when a brown or black bird is hit, the enemy will explode in yellow. Just one more trick to go for the birds, before we have something of a level for the players to look at. That is to write an enemy speed for this current level and then call a randomiser routine to update the enemy speed for any time an enemy has been repositioned at any time - after it is off screen. I originally had problems with this randomiser as nothing had happened. I realised what the problem was. It seems that I made the routine read more than the number of bytes read from the .Level1EnemyXSpeed table. Silly move. I fixed this problem. All is going well. What's my next job? Hmm, well the balloon keeps appearing on screen too often, which just makes the first level too easy. So I'll have to make a timer so that the balloon will not appear too often on screen.

My next task was to add the level complete and "Well Done" sequence, using the sprites which Wayne suggested. First of all, like with Sub Hunter, the player will fly off the screen, but afterwards a jet flys on to the screen to show the well done text. As soon as the jet flies off screen, the next level should start (When that has been programmed that is HAHAHAHAH!).

20th September 2009 - Music Maestro (Richard)

I fancied a little change to programming, so I went straight on to my real Commodore 64. I booted up the EMS V7.03 and worked on a temporary title and in game music specially for the game preview that I'll be releasing. It's an air fair ground style of tune for in game, and a disco style sound for the front end. I finished the tune, saved it on to a disk, and then stored it on to a tape, so that I could transfer the data from the tape to PC with Audio Tap. Sadly that failed, due to the high specification hardware + software I use in Vista. Could the C64 tape signal sounds be incompatible with the sound card and software I use?

21st September 2009 - Major bug fix, and Well Done screen (Richard)

I still seem to have no luck transferring my music to PC. Ah well, I'll have to leave it for now. Anyway I have been busy yet again finishing off the Well Done sequence. I programmed a little routine, which would move the player's plane across out of the screen (like with the Sub leaving in Sub Hunter) and then I had to slot in several sprites together to form the jet pulling the Well Done flag. For now, I put the sprites in the middle of the screen before I moved on to putting the sprites off screen and move across from the right hand side of the screen and leave at the left of the screen. Then I added the animation to the sprites that were used.

I gave the game preview another play test. I noticed something wrong in the game. There appears to be a glitch for where the birds were shot by the player, the enemy Y-position randomiser routine had gone mad and put all enemies in the same Y-position. I realised what the problem was. Seems that the enemy shot was actually calling the Y-Position randomiser routine when it should not have done in the first place. So I deleted the unnecessary routine and now the randomiser works perfectly. I might have to reconsider certain position areas for the enemies, as the player can cheat on the first level. If the player is at the very top of the screen it is invincible from the enemy birds. I'm going to have to stop that from happening, by altering the randomiser tables. We nearly have a playable preview ready for you all to try out from this page, but I still have more work to do before I release it. Plus Andrew and Wayne would need to see it all first. :o)

24th September 2009 - Not much (Wayne)

Well to be honest I haven't done very much at all, I have been mostly playing SNES games and dossing about playing the C64 Games. Whenever I go round to my girlfriend, I seem to end up on her ATARI 2600 - An old but gold console. We managed to pick up some really cool games at RETRO REUNITED. Just been looking at the UP IN THE AIR DIARY. It looks like Richard has been incredibly busy. This fills me with much happiness. It gives me pain to say this but I have an announcement. After a discussion with Andrew Fisher last week we have decided to scrap the Crash Course project, this is a game I drew the graphics for, its a 20 screen top down racing game where you move your car round screen and pick up objects.

Me and Andrew had a discussion regarding CRASH COURSE and we realistically didn't think we could justify turning it into a commercial game. Yes, you drive round and pick things up, but that's it, there's no substance. It is a shame cos I was quite pleased with my graphics. CRASH COURSE is now history. The whole thing came about cos I was dating someone back in 2005 and I bought her a Namco Plug In And Play Joystick and it had Rallly X on it. I thought “I wonder if you could do that on the C64”. I sat down and drew a few levels and then the more I drew the more my imagination ran riot and the game evolved graphically and erm that's it! If your on GTW reading this then a Big hello to you-YOU'RE FABULOUS!

Yeah I know Commodore did Radar Rat Race which is essentially Rally X but I had forgotten this at the time, my mind sometimes wanders. Hopefully this is the only game that doesn't get released, I hate wasting time on projects that don't get done. AAARGH!, so frustrating. There's also some artwork my friend CRAIG LIGHTOWLER did for the game front cover, hopefully we can dig that out for you too After the dust settles on UP IN THE AIR I really would love to complete WIZARDS AND WARLOCKS, Craig (with suggestions from me!) has done the artwork for the game front cover and its really nice. Anyway I am getting off the subject of UP IN THE AIR, Talking of Artwork I LUUUUURVE the logo JSL has done for the title screen, very nice!  I look forward to seeing it all put together in the finished game! Am sending Richard a small list of additions for the game, hopefully he wont go too crazy with me! :->

Richard's Bit

Well it is a shame about Crash Course. I might have some files of this game project to pass to Games That Weren't if they are still stored on one or two of my CD-ROMS - but I cannot guarantee that. I do have the letters which Wayne sent to Andrew to pass to me and also two disks with the beginning remains of the Crash Course project - but transferring those could be a problem at the moment. I will need to convert my XE1541 cable in to an XM1541 cable for use with the CBM4WIN GUI. - That's if it will work on Vista 64-bit.

27th September 2009 - Richard gets racked off with 1541 problems and a cold (Richard)

Well, unfortunately nothing has been done over this weekend. I have had a terrible weekend and I am surprised that I am still writing this diary entry. Especially when nothing has been done. I said I will do some more work of the UITA project this weekend, but unfortunately this has not happened. Unfortunately Saturday, I had visitors, I was also trying to fix my cousin's laptop BSOD problem - but no luck, due to power failure.Today I have been busy tearing my hair out, trying to get the XM1541 cable and CBM4WIN software to work.I have been spending a long time trying my hardest to solve the problems - no luck whatsoever. Finally another problem hit me - I'm not very well. Caught another blasted chesty cough/cold/bronchitis. Does not help when you suffer from asthma. Damn. I hate it when that happens.

28th September 2009 - Table updates and also an expansion (Richard)

Ah yes, feeling much better today and my mood is fine. This afternoon I have decided to do some more to the project. Looks like we nearly have a playable preview ready soon. Probably in a week or so. Wayne has sent me an email that he does not want me to show any more of the level screens in the diary, and wants other level screens to be a mystery for the readers. Ah well, fair enough, but I find pictures speak louder than words. Hahahaha! Ooh the suspense is killing me :o). Oh all right, back to the project then :oP

First of all, Wayne sent me an email asking me to expand the jet sprites for the Well Done scheme. He said the Well Done flag does not need to be expanded. Fair enough. All I had to do was poke the value of #$03 to $D015 so that only two sprites that appear on screen are expanded. Thankfully only the jet sprites appeared. Brilliant.

Now for the next important part in the game's code and that is getting a better Y-Position table. This is so that the enemy sprites will not appear on the same Y-POS line as each other, when they are off screen. This actually saves me time programming a routine, which I did with Sub Hunter, where I compared a sprite Y position to see if another sprite was using the same line. So I updated the table values for the random enemy positions. Then I tested them. Before I test the new table, I will want to disable the collision and also the game time for now. I do a test run to see if the random Y-position for the enemies are accurate enough and also test whether or not the enemies will appear on the same line as each other at any part of the game.

After a test of the Y-position randomiser routine. It seems to be working fine, but unfortunately the balloon sprites seem to be overlapped by the birds. I even saw something amusing and pretty naughty. Hahahaha. Yes, after a short while during the game randomiser routine, I saw something which looked as if a bird was having ... ooh, too much information HAHAHAHAHA! Now I test with collision switched on to see if the randomiser works as well as it did without collision. Seems to work fine. but yet again I think I should do the same subroutine as I did for Sub Hunter, to check for the enemy start position and see if it matches any other enemy position. After a bit of fun blasting the birds, it was time for me to land the plane and work on to the Get Ready screen (the same way as the game over screen), but I'll do that some other time. Maybe tomorrow :o)

Ooh, some good news. I have finally managed to get the XM1541 cable working with the graphic user interface plugin to the CBM4WIN program in Vista. That's cool, but I can't seem to do a whole disk copy using it. Oh well. Copying single files doesn't really matter for this. I have successfully converted the new music and have imported it into the game source code. Title music sounds very cheerful and the in game music sounds sort of like the type of music you would probably hear in the fair ground. Very mellow slow and quite amusing. Of course this might not be a permanent tune, as Wayne suggested to me that Andrew should have a go at doing the music for the game. I can send him the presets of the current tune used in this game if he does not mind. The tunes were composed using EMS V7.03. :o)

SEPTEMBER 29th 2009 – UITA level plans (Wayne)

From now on UP IN THE AIR will be referred to as UITA, this is because I am too lazy to type the full name in EVERY time (chortle!)

OK this Diary from me is really behind schedule, because I do not get regular PC access It has been two weeks since I last came and typed anything, something I forgot to mention last time-I must apologise to Andrew and Richard, I never told them I wanted an order of attack waves for the game.

Example -

Level 1 - Birds

Level 2 - Birds

Bonus Level - Big Bird ( No not the Sesame Street one you loon ! )

Level 3 - Basket balloons etc. This way it will look as if you are encountering more difficult and hostile enemies. (I thought this was meant to be for level 4 Wayne. Level 3's gliders - Richard)

Andrew and Richard were thinking things just attacked you any old how, I did explain this to Andrew when me and Carol visited him at SKEGNESS but I just wanted to publicly apologise- There you go, job done! :->

Holy Moly! Am absolutely knackered, had a really late session last night again-4am. What was I doing until that time I hear you ask? Basically I ported the graphics from UITA over to SEUCK (shoot em up construction kit) now instead of writing confusing Gmails to Andrew and Richard ( can you move sprite a 4 pixels left them four pixels up ! ) I can actually create my own attack waves then send them on to Richard through Andrew (thank you!) and then Richard can actually see what I am doing for each level.

I did about 3 Levels which doesn't sound much but it took ages first working out where sprites are in SEUCK memory (thank you ACTION REPLAY CARTRIDGE! ) and then setting everything up with the correct parameters-geez boring but as always essential. I may do future games like this ( if Richard would like to work with me after this of course ! ).

Also on Sunday I created 8 New level, am REALLY pleased with them, I've actually drawn some new graphics in the character set which I knew was going to happen, I just didn't know what was going to be drawn.

Due to intense curiosity ( and nagging :-> ) from my pals at work I have decided to pester erm ask Richard if he will stick a YouTube preview of UITA on the website ( pretty please Richard ? ) This is a demo only and not how the complete game will look- SO THERE! (It is done :o) - Richard)

There's still lots to do but I do feel a demo will give people something to look at flat screen shots do not do the game justice... Also this week I have posted all the new stuff off to Andrew so hopefully Post permitting he will have it and be able to Email the stuff over to Richard.

29th September 2009 - Get Ready for the flight of your life (Richard)

Yesterday, we were last left off with the randomiser routine table updates. I was pretty happy with the result but feel that there should be an extra routine which detects whether or not an enemy has been positioned on the same line as each other. This is so that the balloon will not overlap with the enemies. I can deal with this issue some time later on this week or over the weekend.

Today I have decided to do a little GET READY sequence. I added some labels/variables for the get ready routine. So that inside the game loop if GetReadyOn = 1 then skip in game code and call .DoGetReady. The get ready part is similar to the game over part, but with an exception. What happens is that first the get ready sprite will come from the right - to the middle of the screen. The player will then have to press the fire button on their joystick and the cloud with 'ready' moves back off screen to the right. Then the game will start. Before I was able to let this happen, I had to split the get ready sequence into two different parts. The first part is where the get ready cloud comes on to the screen, and the second part is where the after pressing fire the cloud moves back off screen and starts the game. The result looked pretty good.

The other thing that I have done is added a 2 page switch over routine for the title screen, so that it will show the credits. Then after a while, the title screen switches to the high score table display routine. I also added a nice colour flash routine over the text, to make the presentation more nice. I might add some cloud sprites flying behind the text sometime later on during the project.

1st October 2009 - A bit more colour and boss tune (Richard).

Now that I am happy with the first level complete, I thought I add some jingles to the work tune. So I loaded up the EMS music editor and then added some jingles for  Level Complete and Game Over. I also did a tune for the boss stage as well. I didn't want any bad boods to the tunes, even for the boss stage. So I did a cheerful disco tune for the boss stage. This could be temporary though. I imported the new version of the music into the game source and noticed an error. Seems that part of the music jumps to the wrong place, so I updated the music file, repacked it and got it running correctly again.

Now that I was happy with the tunes. I added a JSR statement to play the correct tune number depending on what is happening in the game. I tested the game and music was fine. Now what shall I do next? Well, level 1 is finished, so it is time for me to do something else. This time colour management. Wayne gave me a list of colour schemes for levels 1 to 9, I might repeat those colour schemes for later levels, until Wayne comes up with the level colour types. I created a colour data table which will read the colours for the various items, like cloud colours, background colour, multicolour1 and multicolour2. I also added a sub routine that will check for the colour scheme. This will only take effect after a level is complete. I tested the routine, and it seems to have worked fine.

Now it is on to setting up level 2's perameters. Well, I needed to add something new for this and every second level. Which is basically the end of level boss stage. I created some settings that will make the music change after the last balloon has been collected, so that the boss comes on. I tested the program, and it worked. No boss yet, but I have not added it yet, I will do some other time.

2nd October 2009 - Level 2 set up (Richard)

Okay, so today it is a quiet Friday and I have decided to do some more on this project. Seems to me that level 1 is completely finished, so now. I shall work on level 2. Well, I started working on level 2 yesterday afternoon, but I did not get round to updating the game settings for the second level. So this is something I have been doing today. First of all I added some more frames to the animator routine, so that I get two different birds for the second stage. One of which is a really small bird, and another which is a bigger bird. To make things slightly more interesting, I added an extra feature. The bigger birds will be slightly tougher to shoot because they will require 2 hits, while the smaller birds can easily be defeated by one hit. I also added a subroutine inside the collision register. Depending on the enemy, if it is hit, a number or lives for the enemy is subtracted by 1. If the enemy life counter is zero the enemy will explode and a new one will be spawned off screen with all lives back together. After a play test, this level looks okay, but I have a colour problem with $D025.  So I simply added a colour per level and pointed it directly to the sprite multicolour routine. Quite easy. It looks nice too.

I also decided to capture screens for each level, which Wayne done and then crunch those with the Exomizer. Well, crunching seemed successful, but I have more of an advantage, because if I need to move the crunched level data around to somewhere else I can, providing that I do remember the last byte from each packed level file. Very handy. Anyway, I tested the decruncher source and got a positive result, except for level 5's graphics were messed up, so I had to alter the screen bug. Very easy.

Now I inserted the decruncher source into the game source, including the level data and I linked the graphics to the levels that are set. Clouds for level 1 and mountains for level 2. I stored the low and high byte values of the end address to the decruncher's read low/high bytes. Then I added a JSR statement which will call the decruncher to decrunch the chosen level screen to a valid address where I had spare memory. ($2400-$2c00 for the decrunched game level screen and colour data). After I tested level 2 (by playing and completing level 1 again), I ended up with some issue which made the level look a mess. Basically the raster position for the last IRQ interrupt was in the incorrect place. So I updated the IRQ setting. Also there was a colour char bug inside the mountain scroll. What a mess. I fixed it, by simply adding a routine to level 2 that will overwrite the colour data with the correct colour. Another problem which I came across was the colour of the birds. Because the clouds are white, the birds were white as well. I was not impressed with white birds, so I have changed the colour of the birds to black. Looks much better now.

All I will need to do before level 2 is finished is create a new random speed table for the enemy birds, which uses mixed slow and fast speeds, and then add the first end of level boss, but I won't do this today. I have done enough for one day. Maybe tomorrow or Sunday I can do it. :o)

3rd October 2009 - Level2 boss added and level 3 set up and CRASH! (Richard)

Quite a lot of work has been done today, to get level 2 working. I still have not created the level 2 enemy speed settings table, but I can do that some other time. I got the enemy boss on to the screen, and set the enemy boss's number of lives to 40. I have also updated the code so that the enemy boss does not die if the player gets hit by it. Instead, the boss increases the player's damage quickly. Therefore it is dangerous for the player to even touch the boss. I also made the big boss shoot something as well. Once the lives are zero, the boss will explode constantly while the player flies out of the screen. I'm pretty happy with this one so far.

Now that level 2's finished (except for a new speed table for the game), I started work on programming level 3. Well, I don't really have to program much for this level, but unfortunately I came across a problem. After decrunching level 3's screen and colour data, there was a mess with the colour. So I had to make some changes to the parallax scroll routine so that not only will it scroll the screen data, but the colour data as well. Then I set up the settings for the gliders. Unlike level 1 and level 2, these characters will not just move across the screen, but they will be moving upwards and downwards through a timer. This worked okay, but when I was playing the game from where I last started from, I came across an error. The whole game had frozen for some reason. It seems that the code somewhere has an RTS instead of a JMP .GAMELOOP. I will need to have a major browse through the whole code, to see if I can fix that problem tomorrow. I am very happy with the result of level 2 though :o). Onward and upwards :o)

4th October 2009 - Crash bug fixed and level 3 done (I think) (Richard)

Well, I have finally solved the problem with the game crashing. It seems that the SYNC routine for the game was incorrect, so after a while it crashed the game, by going out of sync. I updated the SYNC routine and now it is working much better. My next step is to sort of level 3's enemy movements because it looked like a real mess. Especially when the enemies are off screen and appear on screen from out of nowhere. This is where the .Enemy(no)Switch trigger comes in. Any time a glider is off screen at Y position #$00, and the trigger is switched on. The enemy cannot bypass a higher or lower Y position than 0.Works nicely now.

I have noticed that the wrapping of the background data seems to be incorrect, as a char for each scroll is missing. So I shall now add some store routines and then place them to a newer location afterwards. As soon as I added those for the colour and screen routines, they all worked great. No parts of the level graphics were cut. I'm very happy with it now. I'm determined to pass Andrew and Wayne this preview of the 3 levels. :o) Hold on. I can't do that yet because I have some random speed tables to create for level 2 and 3 first. Okay, now they are all done. Just a proper play test now. There seems to be a silly problem with level 3. One of the gliders still seem to appear from nowhere. I realised what my problem was. I forgot to default the reset X position for enemy 5. Now for another test. Enemy speed could do with updating. So I made the gliders move at 2 different speeds for the X direction. This has been done to make the game more interesting. It seems to work out nicely. All I have to do now is just alter each colour of the gliders to pink and purple (as requested by Wayne) and the level is roughly ready. Now I shall send my progress of work over to Wayne and Andrew to check out. .

8th October  2009 – 2 New Levels (Wayne)

In the early hours of this morning I have knocked up 2 new levels and have also tweaked the graphics for the character set again, Got news the other day that Richard has done a preview so hopefully I will be able to play that shortly... I have about 8 Levels to do before I have done all the level graphics and I plan to use SEUCK to create more attack waves, I really feel more pieces for the puzzle that will be UITA are coming together. Big shouts going out to Sharon, David and the kids, All my friends and the TESCO POSSE you know who you are! Sorted respect dude! :-)

14th October 2009 - Ooh my head hurts (Richard)
Finally I got round to taking a look at Wayne's latest graphics and also Wayne's SEUCK examples for the game. It seems that I have a lot of work to do here. My head hurts, thinking about having to update level 2's guardian movements and also the example movements, which Wayne has showed me. But it will be done :). I had a major break with this project over the past 7 days or so, working on my Jeffy remake using Blitz Basic (Ahem!).  I am hoping to spring back to this game some time over the weekend or next week. I saw more of Wayne's level data files, and find that one of the levels was uneccessary. Just a plain screen and 2 clouds? That's not enough for the game is it? :o)). Wayne's newer graphics could probably be awkward to put into the code, with the exomizer due to memory issues. I might somehow find somewhere to put those level graphics though. There's got to be space somewhere in the memory.

15th October 2009 - Ouch my arm hurts (Wayne)

OUCH my arm hurts! As such After about three weeks of pain I decided today would be good to go to the doctors, I now have a 3.30 appointment today.  This is a funny time of year cos now all the good programs are coming out again. Fringe, Sanctuary, Stargate Universe, Sarah Jane Adventures and Defying Gravity are all on my list of things to watch when I get home from work. I havent been lazy with the game though, I have been working on some more levels, and I have been messing with the sprite editor to include a Level completion sequence with clouds (!). I swear not to add anymore sprite graphics, perhaps I had better send these off to Andrew before the postal service goes on strike! Meanwhile my girlfriend Carol has been off work after injuring her leg, they took the cast off the other week but she is still hobbling about with crutches, but she is hoping to go back to work soon!  Just waiting (impatiently) for the mighty Andrew Fisher to send me the demo Richard has done of the first three levels of this game.  Good news readers, I managed to find ANOTHER disk containing my game graphics for CAMELS IN SPACE 2, this brings the total number of disks containing graphics up to 7! Interesting Geek fact No 1 - U.I.T.A graphics are currently contained on 8 C64 disks, scary to think that Richard is going to compact all this onto 1 game disk.  Special mentions this time to MARKY B and JOHN  SUTCLIFFE. Hiya dudes!!!!!!

18th October 2009 - Setting up yet more tables (Richard)

Still 3 levels in the game. I have been taking a look at Wayne's latest SEUCK example, which showed the enemy movement types for the game project. Level 1 was fine, it did not need any movement adjustments whatsoever, but level 2 required some alterations. So for level 2, I created a set of data tables, depending on the behaviour of the enemy birds. I made it that the small enemy birds, that require only one hit, will move up and down as well as across the screen. Also the big birds, which require 2 hits to kill will only move straight. Before I could do this. I thought to myself that I should update the enemy Y position movement table routines. So I removed some unwanted routines (The clear enemy table routines, and set glider movement routines). Then I created a new loop which will read from the level data table and then store the data to the actual enemy control table. It was a bit of hard work getting those tables stored, as I had to repeat my routines a to store the low and high byte of the level enemy tables, to the actual enemy movement tables. Hard going. Especially when I have to use this series of routines for each level. Yuck.

22nd October 2009 – Ouch, my arm hurts – Episode 2 (Wayne)

Hiya gang. Well after going to the doctors, it turns out that I have carpol tunnel syndrome ( severe pain in my right arm, sort of a repetitive strain injury thing. This means I am effectively out of the game for a week or two while I rest my arm. It is extremely painful. I was just going to work and lifting at the minute, thank goodness my boss put me on light duties!

I did manage to do some graphics before this happened so if I can manage it I will try and send this to Andrew through the post... (Be warned that next week for 3 days, there's a planned strike – I even applied for a job with RM, but no reply). The most recent set of levels I sent Richard (well Andrew actually!) contain my latest and hopefully last version of the character set. These are a lovely Egyptian level (It is nice) and that is all I am prepared to say......

Got THE WILD BUNCH from Jon Wells yesterday, hoping to play it today, I can always use my left hand and press keys-easy-peasy!!!!! :o)

Richard's bit

Poor Wayne. I do hope you get better soon. I did receive Wayne's graphics some time about a couple of weeks ago and I forgot to check them out, as I was a bit carried away with Jeffy PC version. Anyway, later on last week, I saw the new graphics for the game and I laughed a bit when I saw the 2 clouds in the background and nothing else. I was wondering if it was a harmless prank which Wayne was doing to me. Wayne told me that it was only a general idea for the screen, cloud colour settings for the game. Thank goodness, it wasn't a prank. I have always been a victim of pranks :o)

Wayne has also mentioned about The Wild Bunch. I played this game on Tuesday afternoon, after coming home back from the local Job Centre plus and then checked it out. The cover layout was very smart, and I did the tape mastering for free (As always). The loader was to look something authentic, with Multi Colour lines. I based it on Visiload. A classic loader, which was originally used by Firebird (Before using Bleepload by Telecomsoft). Mastertronic £1.99 range (Labelled as Fast Loader well, it was a fast loader), Codies (Presented the loader really well. If there was no exclusive picture, we used to see advertisements of games that were also available from them), Dynamic Software (Loved their loading artwork) and a few others. The original loader started with a blank screen and stops the tape for a short second. Then loads up as multiple files with the multicolour lines. Then displays the picture while loading the rest of the data.

When I did this type of loader by adapting Martin Piper's IRQ tape loader source for The Wild Bunch. I made it look as authentic as possible, but with Jon's loading music. When I put the tape into my tape deck, it just felt like the good old days. Where you loaded a classic Firebird game, written in 1984/1985 and waited for the game to load – with colourful raster stripes around the screen's border. Lovely :o) BTW. It wasn't visiload I used to make the loader for TWB. :oP

23rd October 2009 – Big bird strikes back (Richard)

If you remember earlier on in this diary about the boss bird. There were still one or two problems with it. The bird's collision parameters are incorrect, because both X and Y axis of the sprites were expanded. Wayne also posted me an example made using SEUCK which contained the attack waves for the big bird sprite. It starts with the bird moving up and down, then after a delay, the bird is supposed to move left and right.

Now today, I got that bird to move left and right as well as up and down. I'm quite happy with it so far, but of course I will need to control the left and right logic parameters, by adding a counter which will control the boss's movements. The counter was just too quick and the movement of the bird was a bit too soon. So I changed the value of the delay counter to $64 instead of $32. It feels much better, but there is still something not right here. So I have decided to move the bird towards the player a bit further along the screen. The timer is still quick, so I changed it to $C8 to see what happens then. That is much better and to me just about right. We now have our first boss working nicely. Now it is time to fix the collision for the expanded sprites. So I added a new collision routine which was exclusive for the boss stages. The routine looks something like this

                    lda objpos+$00
                    sbc #$06
                    sta CollisionXY
                    adc #$0c
                    sta CollisionXY+1
                    lda objpos+$01
                    sbc #$0c
                    sta CollisionXY+2
                    adc #$14
                    sta CollisionXY+3
                    lda objpos+$02
                    sbc #$06*2
                    sta CollisionXY+4
                    adc #$0c*2
                    sta CollisionXY+5
                    lda objpos+$03
                    sbc #$0c*2
                    sta CollisionXY+6
                    adc #$18*2
                    sta CollisionXY+7
                    jmp .TestTheCollision

24th October 2009 – Crash landing (Richard)

Just as I thought that things were going well, I received an email from Andrew about the preview I sent him earlier on this week. Unfortunately the game was not working properly on a real C64. The scrolling gets jerky at times. I spent most of today trying to fix this problem and also constantly testing the game and bug fixes on my C64. Unfortunately things have gone from bad to worse on the game programming side of things. After trying my best to fix those problems, I came up with more problems. One of which was unfortunately the return of the game code crashing outside the IRQ interrupt. It seems that there is a major issue with the IRQ raster interrupt routines, and also the game loop routine. At the moment it is not looking good. So I will have to find a solution to this problem before I can go further with this game.

25th October 2009 – Instant repair (Richard)
Not much done today, because I have been trying to fix the problem with the game crashing and jerky scrolling. I was a bit suspicious about the parallax scrolling, as I thought that there could be a glitch somewhere in the game code. How right I was as well. I tested the parallax scrolling to see what happened. It appeared that layer 3 was the main cause of this problem. The colour wrapping had screwed the synchronizing of data and therefore I removed the colour wrapping. I probably won't need it for layer 3 anyway. I converted the assembled game to my C64 and tested it. It works nicely now. My next stage will be to work on level 4. I'm quite looking forward to working on level 4's enemies. It should make things nice and more interesting in the game. Now how many hits should the enemy balloons have when on level 4 before destroyed? Two hits should turn out nicely. :o)

28th October 2009 - Demo fever (Wayne)
 Andrew very kindly sent me the latest demos of UITA, the most recent version is a three level demo, this is looking excellent, I have noticed one or two slight problems and have sent our master of coding a Gmail with one or two thoughts on how to improve things, but generally its looking good things move, you can shoot and kill things (always a good sign in a shoot em up) and everything is smooth. Mmmm if UITA was a choccy biscuit I would eat it up-YUM! Richard is belting along at a great pace now.  I am so proud of our game and Andrew Fishers contributions have been invaluable too!  Hopefully arm/hand pain permitting I should be going back to creating attack waves in the next two weeks. Its my Birthday next THURSDAY (yes the 5th November!) so I may not be on next week, am planning to totally rest and chill out next week.

30th October 2009 - Tweaks (Richard)
It seems that today was a bit of a tweaking session. Wayne suggested a few things to me, one of which was to get rid of the squiggly line. Well, it seems that the squiggly line, which I thought was water, was just a little border and wasn't meant for the game. So I added a simple routine that will clear that unwanted line for good. Wonderful :o)

Wayne has also asked me to change the player's death sequence - where the player will move forwards slowly while taking a crash landing and also add a lives counter to the game. I also added a routine that will take the number of lives off the player. At the moment the player has 4 lives (3 lives including 0). Then after the last life is lost, Game Over comes on screen. I have also made it that any time a life is lost, the Get Ready message will appear on the screen, just as before the game started. There's no level restart for the game if a life is lost. Well, the player would not really appreciate having to start the whole level again after he or she has done really well to collect balloons. That'd just be unfair.

I also got started on Level 4's programming, but it still needs tweaking. Unfortunately there was a major problem with level 4's background after decrunch. Okaty, the level's supposed to be a load of clouds. Unfortunately, there were some charset bugs inside the actual background as well. Seems that the latest charset used had cause this problem. Therefore I might have to go back to the Firebird graphic editor and load the updated character set and delete the bugged areas. I also set up level 4's enemy balloons, it still does not look right, but I can sort that problem out this weekend. I think enough has been done for today.

31st October 2009 - 99 Minus 94 balloons :) (Richard)
I got started with Level 4 yesterday and today, amazingly enough I have literally finished this level already - except for the boss stage, which will be worked on tomorrow. I took a look at the SEUCK example which Wayne did, and thought I could implement something pretty good with this preview. The SEUCK example showed too little movements for when a balloon goes up into the skies, so I decided to implement Wayne's idea and push it a little further. Instead of Up, pause, up, pause, etc. I altered the tables for where the balloons will go up, up, up then pause, up, up, up then pause and so on. This was working quite niceley apart from one or two slight glitches.

One of the yellow balloons would not move upwards and also the stopping limit was too low for this level. Therefore at one time, I had a load of balloons stopping at the same stopping position until they had left the very left of the screen. This was something I just did not want. So I created a brand spanking new table to set the enemy stop up direction positions according to the level which the player is at and I fitted the table calculation inside the level colour changing subroutine. I tested the game, and it seems to work how I wanted it to. I still need to fix the problem with the yellow balloon though. Before I can fix the balloon problem I will need to work out what enemy number is causing this problem. To solve this problem, I must change the colour of one of the yellow balloons, to test it. So I changed one of the colours of the enemies to white for the time being. It appears as if the white balloon did not move upwards. So I checked through the level settings code to see what the problems was. Just as I thought. When copying & pasting level 4's enemy movement parameters. I forgotten to replace one of them with the correct level table. So that is why there was no movement whatsoever!

Now for a bit of tweaking. Wayne suggested that I should speed the player's plane up slightly. So I updated the speed of the player. I also did a bit of on-screen tidying, by removing level 4's graphic data and putting in a new version, which is different but will have to do. This is because level 4 graphics which Wayne did, used an older charset and unfortunately with the latest charset it was just unrepairable to look good. So I used on of the newer cloud schemes which Wayne did. I also added a routine that will turn the screen off during decrunching level data. Maybe I will be ready for the second boss stage some time next week. This is because I'm off to a Halloween party tonight, and tomorrow I probably wont feel like doing anything.

Next page