A Game Development Blog by Nickolas Marentes for the Tandy Color Computer 3.

      This blog will primarily focus on the creative and technical design aspects I employ to create this game.
      Due to time constraints, I will not be delving into the actual coding details.


Chapter 03 - The Graphics Engine

In this chapter, I have started with the beginnings of the actual game code.

I have dragged across a few general subroutines from my Gunstar game such as the CoCo3 hardware setup, video mode configuration and interrupt handling as well as a few general purpose subroutines for reading the keyboard, printing text and save game to disk. I've also written the routines that will take the data created with my level editor and use it to reconstruct each level screen when needed.

I will also be using the FIRQ sound routine that provided the 2 channel digital sound effects from Gunstar that had been heavily optimized with help from
L Curtis Boyle.

I laid out the structure for the game engine with the goal to have it running in its most basic stage. This involved setting up the main game loop which manages the video double buffering and the setup for multiple video buffers which will be used for this highly anticipated new special effect.

I wanted to prove that the graphics engine from Gunstar could be tailored for this game using a higher resolution than it did there. This engine has a very high CPU overhead due to the amount of memory it has to copy. This overhead will hopefully pay me back by simplifying the display and management of all the game sprites and providing me a great deal of flexibility. It has also been expanded to handle multiple video buffers which... again... I will tease you about until after you watch the demo video below.

This game engine is a heavy burden on the CPU and that is why there is no scrolling of the display as there was with Gunstar.

The game needs a Hitachi 6309 for optimal speed but I was determined to allow it to also run on a standard 6809 CoCo3 with 512K RAM installed.

I have kept most of the code to be stock 6809, foregoing many of the wonderful extras that the 6309 CPU provides. The game auto detects the CPU type and activates 6309 native mode which alone provides about a 10% speedup over the stock 6809. I also use the 6309's block copy TFM command to speed up the memory transfers. If running on a 6809, it uses stack blasting instead to achieve a fast memory transfer. This will mean that on a 6809, the game will run 1 frame slower than when running with a 6309 but will still be playable and provide all of the features.

So, enough of the ranting. Let's see what this special effect is all about that I've been hyping up so much...


Tomatoes ready to launch!   CLICK on Video Preview.

That Special Effect

Hopefully, no tomatoes were wasted during the preview of this video.   :)

The game so far just sets up the game graphics (Level 9 shown in the video) and starts the main Game Loop. No sprites or overlays are created, only the bare level graphics as were created in the level editor.

I have the background animated. This background is only to create a graphic ambience to promote an industrial aesthetic for the game.

It uses 4 x 24K graphic pages in memory with the cogs drawn rotated 22 degrees apart. On each frame, the normal game graphics are overlaid on top and the game engine cycles through the frames to give the effect shown. I can create a different cog layout for each level but there is only so much you can create before they start to look the same so I will create 4 layouts and randomly assign them to a level.

The game will be played over this animated background with moving elevator platforms, operating machines and security robots patrolling. Hopefully, it will amount to a detailed and full display of moving graphics.

Also shown is the final design of the control panel area at the bottom of the screen which displays information such as number of credits accumulated, EMF bombs and Lives the player has. In particular is the bomb detonation countdown timer and the security status indicators for the 12 levels.

The game will feature 12 levels plus a foyer level with the main lift to all 12 levels and a final level at the top where the actual bomb is located. You will need to complete the 12 levels to be allowed access to this top level.



What's Next?

Everything is running as planned and my next task is to prepare the sound samples used for the game. The 2 channel sound routine is currently active and operating but because there are no samples to play, is remaining quiet.

Stay tuned for the next chapter where we make some noise.


Copyright 2021 by Nickolas Marentes