P018 – Back in the saddle

Even though I had unofficially abandoned the project, I had never planned on not finishing the initial version, or moving on to other version. Another project “Ka*BOMB” sprung up in this down time, which has also been somewhat neglected, and also needs to be finished, and I’ve really wanted to put this project to bed and bring it to some sense of closure.

A few gentle “nags” in the #CosmicAliens discord channel had reminded me of two years of silence, and, on a whim, I broke out the virtual floppy disk image, scanned through the various copies of the game with the varying degrees of assembly additions, and arrived the decision to revert back to the first version that included assembly additions, which were pretty minor, strip those out, use that version as a base, then move forward.

Why didn’t I do that two years ago?? I guess I had to get over all my own emotional baggage before I could think clearly, but it was actually pretty quick and easy to see where I needed to move back to, to move forward. I was up to around version 0.25 and moved back to version 0.22, which only has the fast PCLS and PCOPY commands.

Since the PCOPY was the single most speed boost, and it sped up the fact I had to deal with two screens, and I was removing it, I decided to just not use PCOPY or page flipping at all. Just use a single screen, and deal with “whatever blinks”.

To my surprise it really wasn’t that bad, the “blinky effect” is really minimal. I don’t erase anything that isn’t moving, and it only happens as it moves, so nothing “blinks in place”, there’s just a brief blink from where something was to where it ends up. Not terrible at all, and actually sped the game up quite a bit.

Once I removed all the background video processing capability, I was left facing issues that existed that were previous masked with PCLS and PCOPY commands.

I found certain text blocks were being written more than once in a routine, which was fixed and sped up, and I became painfully aware of “a bug” that’s been in the game from day one, that was much better masked when I was using the “Behind the scenes” way of producing the visuals before they were presented.

This “bug” deals with the processing of destroying one alien, and how the game computes how to reshuffle the remaining aliens. There are two problems with the process

  1. A fairly consistent “ghost image” of an alien is placed on the screen that you can clearly see, but this alien isn’t “alive” it doesn’t move anymore, but you could waste time trying to shoot it, which, by the way, you won’t get points for, because it’s not really there.
  2. The reshuffle “logic” is slightly flawed because the alien you just killed should leave a vacant space on the screen, but, it’s replaced with one of the subsequent aliens that ends up in the same location, which is a bit confusing

I’ve spent extensive hours and days, with much more frustration trying to fix this, even attempting a re-write, and I’ve ultimately decided I’m just going to have to live with this, because I need to “finish” this version of the game.

In about a week’s time I made significant process getting back into the groove of understanding my code again, play testing, tweaking and making improvements.

One feature I really liked in the TCA release that wasn’t mine, was the direction the aliens traveled in, they always started high on the screen and then moved down towards the player. My current CoCo version had them moving in a random rotation fashion, so they could literally just rotate around the screen doing noting but creating target practice for the players.

I changed the alien logic to not decided on one of 8 different directions, but just 3 options, move left, not at all, or right, but always move down each cycle. This creates much more menacing and challenging aliens for the player. The aliens themselves are a crash hazard along with the dropping bomb.

Along the way, I also discovered the version I was working with had one small flaw, that being, if an alien crashed in the a player, you lost a life, but the alien didn’t it was still in play. You could easily get killed out of all 3 lives by the last alien, which ends up being the fastest and never complete the first wave. Not fair, not fun. That was fixed. If an alien crashes into you, you lose a life, but so does that alien. Balance achieved.

Not having the PCOPY routine anymore also revealed some minor issues with the font render routine, because all font was automatically removed the next time a PCOPY took place, so I never had to worry about it. Now I did, and that’s been mostly fixed.

In the tweaking of the top line display, I added a feature to let you know if you were at the high score during game play. Usually your score read “P1 #####” and that was in a bright color, if you got the high score, it changed to “HI #####” and was in red, to better visually inform you.

I’m not happy with the aforementioned “bug” but I can’t waste another two years trying to fix something so minor. I have no problems with people doing what they want with the program once it’s been officially released, but I need to finish it, best as I can, on my own, and soon, that that’s going to have to remain as is.

Final thoughts and steps

I have, for the most part recreated as much as the original version as possible in this CoCo version. I have the main aliens party where you shoot aliens, and dodge them and their bombs. I have the asteroid shower, where you dodge asteroids and shoot UFOs for points, and I have a UFO “bonus round” where you can shoot UFOs with no interruptions for bonus points. So the core game play modes and elements are all here. I was hoping to had one more thing, some type of “Lunar Lander” concept, but again, too much time has been wasted, and I want this version to be done. This isn’t the end of the project, just the end of Phase I. There are many more versions to make, BASIC09, Assembly, you name it, so I need to move forward.

I’m going to make a few changes to the maximum height you can move up to on the bonus round. Right now you can move pretty high up on the screen to get very close to the UFOs, which makes getting those bonus points a little too easy, so I’ll balance that out.

The last thing I’m going to do, before I consider this version done, and Phase I complete, is write in a little CoCo 3 detection, and added some palette color hacks and a true double speed, test that, and release it to the world as “done”. So, by August 31st, roughly 2 years since I rage quit the project, I hope to have the first version done and released.

Leave a Reply