The journey is over!
It's been a long 3 year journey which began in June 2013 and completed in November 2016.
It wasn't all spent on Pop*Star Pilot though. There where numerous distractions that delayed development during that time.
In 2014, I was diagnosed with cancer which required urgent removal. After winning that battle, 2015 saw several CoCo related projects divert my attention. Here is a list of those side projects:
(1) I created my entry into the 4K Programming Competition. Here, I recreated the game Space Invaders entirely in Standard Color Basic with only 4K of RAM as found on the original Color Computers in 1980. Unfortunately, this competition stalled with no outcome but my game was completed and you may read all about it here: CLICK HERE
(2) Next, I decided to revisit my first commercial grade game released in 1984 for the Color Computer, Neutroid II. I took the original source and applied several improvements as well as making it fully compatible with the Color Computer 3. Neutroid 2.015 was released as a free download. Read all about this project here: CLICK HERE
(3) Then John Kowalski presented me with another of his impossible but possible ideas. A High Resolution Interface driver created completely in software that operated as good as and faster than the original hardware based High Resolution Joystick Interface. Read all about that project here: CLICK HERE
(4) And lastly, I approached Robert Gault to help me develop the 225 Line BASIC patch to fully utilize 320/640 x 225 scanlines from BASIC. Read all about that here: CLICK HERE
Challenges that spawned an idea
Before even deciding on a concrete idea for the game, I had set myself certain technical goals that I wanted to achieve.
I had seen split screen smooth scrolling on C64's, Atari's, Commodore Amiga's and various arcade systems and I really wanted a game to show it also being done on the CoCo3. John Kowalski had shown this possible on his Moon Demo, an unfinished version of the arcade game Moon Patrol.
I also wanted to recreate some of the scanline effects I'd seen on some other systems.
Other computers had these features built in to the hardware design but the CoCo had to work harder to achieve these things by using more complicated code and interrupts.
I also set certain design specifications such as utilizing the highest vertical resolution of 225 scanlines, smooth latency-free movement of the player's object, professional 2D pixel art graphics, and a fast game pace which left the player with little time to relax and take in the scenery.
As I gradually implemented these functions, an original game idea began to take shape and Pop*Star Pilot was born.
So how would I summarise the project? Did I accomplish what I had set out to achieve?
No game is perfect. Every game has room for improvement but I'm personally happy with the end result and have achieved what I set out to do.
I feel the game looks and plays well. The graphics are nicely presented, sharp and well drawn. The colors are varied and well balanced and the Title Page has a nice Amiga'like dual bitplane effect that makes it stand out from most 8-bit systems.
Key and joystick responses happen instantly with no lag and the scrolling is super smooth and jerk free.
The pace of the game is what I had envisioned from the outset. Once you pass the easy scenic first zone, you are immediately thrust into the hectic and nerve wracking Zone 2 where you barely have time to take your eyes off the encroaching landscape ahead.
Zone 3 gives you a bit more time to relax but not for too long since there are some tricky areas that need to be negotiated accurately as well as extra lives and tokens to be collected. The raster engine code was used to good effect in this zone for the rising tide and lightning effects.
Zone 4 again utilised the raster engine to provide a nice and sometimes disorienting effect of parralax in the background.
Finally, there is the challenge of collecting enough tokens along the way to allow you entry into the final Zone 5. This requirement separates the men from the boys just nicely.
I like the temptation of greed that encourages players to take risks and the way the game forces the player to plan ahead in order to survive what is essentially an 80 screen endurance race.
The game is not impossible to complete but I certainly feel wide awake and alert after a game in which I do. I can't do it every game but if I ever need to sharpen my mind, Pop*Star Pilot will do the trick!
Room for improvement
There are 2 sides to every coin and there are a few areas that I would have liked to improve on.
One thing I must highlight though is that the available speed on the CoCo3 is a slow 1.79Mhz and that there is a limit of how much can be done within every screen frame.
Also, the lack of any hardware features such as sprites, multiple bitplanes, blitters, scanline co-processors or even a dedicated sound chip means that a lot more work and coding is required to accomplish these things.
Pop*Star Pilot manages to provide these in a very clean way that the player does not see or sometimes appreciate the magic happening under the hood.
Another issue I had to contend with is the limited program buffer space. I had used it all up and the only solution was to split the whole program into 2 separate modules, but I dreaded having to go that route so late in the development cycle.
I was also weary that I had to finish the project soon before I got burned out and lost interest.
What I'm trying to convey is that one can't dwell on every detail and risk the game never being finished. I've had to draw a line on when something was good enough in order to continue progressing forward.
Here are a few things that didn't eventuate in the final game:
(1) I wanted a better plane explosion effect but there were too many complications due to the 1 byte scrolling technique and dual buffer operation that made anything I tried look like a glitch. Originally, the plane was to fall to the ground with black smoke billowing from the engine. It just didn't look right and would have required a more complex routine to pull it off properly. Low remaining source code buffer space was a problem here.
(2) More sound effects. To keep the interrupt driven sound routine from consuming too many CPU cycles, I had all sound samples occupy 1 x 8K MMU block and kept it mapped in the 6809's address space at all times. This avoided moving sound banks around during interrupt requests which may have slowed things down too much. With only 8K allocated, I still managed to have an adequate number of sounds such as the constant drone of the plane's engine, gun shots, explosions, warp effect and balloon pop sound. All were digital samples and sounded quite realistic.
(3) I would have liked to have had an extra ground object that fired up into the sky toward you as an extra obstacle to dodge. Again, source code buffer was running out.
(4) There is at least 1 bug left. After you lose a plane and it rolls off the screen to be replaced by the next one, on rare occassions this new plane explodes off screen before it gets a chance to enter the field of play. I thought I had fixed it and to this day I have yet to see it happen again but it has been reported to me that it raised its ugly head.
(5) I would have liked the warp effect to take me to a different part of the landscape rather than just top-to-bottom or bottom-to-top. This would have allowed me to lengthen the game by repeating sections but this raised many other complications and I just got lazy and decided to go for the easy solution.
Split the Code
I have worked out a few better ways to organise my development files and I will definately split my program code into 2 modules to make better use of source code buffer space. This was never a problem in the past when my programs were shorter.
I know that using a PC/MAC for development would give me a bigger buffer, faster compiles and better editing tools but what's the retro in that? I guess you can't teach some old dogs new tricks. :)
Distribution by CD worked out quite well but next time I will revert to e-mailing a DSK file so that people can have the game immediatly with the actual physical media and game packaging posted to arrive later.
The physical media and packaging adds a collectible element to the product and as in this case, something that could be placed under the Christmas tree... although I suspect that no one was going to wait for Christmas. :)
Song of the month
To close off this final chapter of the Pop*Star Pilot blog, it would be fitting to finish on this month's song of the month.
Something light, fun and Australian. Click on the link below and enjoy!
Copyright 2013 by Nickolas Marentes