Chapter 14 - June 6, 2014

Raster Bar Backdrops

I've been having a lot of fun with the Amiga-like copper bars or raster bars routine as it should properly be called. I created all sorts of pattens utilizing the Color Computer 3's full 64 color palette and experimented using two alternating raster palette tables which gives me a pseudo "4096" colors. I've even explored animated backdrops! All this with a small routine that uses very few additional CPU clock cycles on top of my main interrupt driven two channel sound routine. In the process, I've discovered advantages and disadvantages to using the many effects and have been able to work out what will best suite my application.

4096 color palette backdrops

In particular, I played with the dual raster palette "4096" color backdrops. These are composed by flipping between two 64 color palette raster tables. The resultant mix can create a theoretical mixed color range of 4096 colors... well... not quite.

The actual color mixing will depend on your monitor. With video frames being produced at 60 fields per second, each backdrop is displayed 30 frames per second in an alternating repeating sequence. Depending on the persistence of your monitor's screen, the quality of the color mix may vary.  Also, flicker becomes an issue. Some color combinations are too far apart in contrast and will create more flicker than others. On the other hand, some combinations produce almost no noticeable flicker at all.

Some time ago, I had created a simple M/L program which allowed me to experiment with this color mixing. It proved to be very useful in trialing the many different color combinations and creating suitable palette sets that create the various color gradiants I was looking for. I was creating all sorts of neat color blends and the screens were very Amiga like indeed... except for the flicker.

Flicker was a bigger problem than I had originally anticipated. Even color combinations that had only slight flicker would be very distracting during game play. In the end, I made the decision to choose gradiants with almost no flicker and this reduced the number of color combinations I could use. I may end up using this same routine for other special effects during game play that will display a larger rainbow of colors.

The other aspect was that the background shouldn't be too colorful because this would also prove a distraction. A too colorful backdrop would prove to be too overwhelming against the main foreground graphics. It is only meant to be a background after all.

In the end, I had to tone down my enthusiasm for colors and gradiants and compromise with something that looked nice, provided a few extra colors but didn't take the focus away from the foreground graphics that were still to come. I felt that in this application a more conservative approach was better.

I must note that I can switch to a single raster bar palette and run with the Color Computer 3 64 solid color palette that has no flicker but, 64 colors didn't produce all the color gradiants I wanted. The extra shades provide a bit more wow factor to the game and look fantastic once the final scrolling graphics are in place in the foreground.

I guess you can say that this may be the first 64 color game on the Color Computer!

Animated backdrops!

I then realized that I could easily create animated backdrops by simply changing the pointer to the raster bar table. I could point the raster routine to a completely new raster table and the entire backdrop would change instantly. I could even scroll the backdrop just by repositioning the table position variable. The entire backdrop appears as a seperate graphics plane behind the foreground that scrolls independantly and any color appearing in the background pokes through any gaps (color 0) in the foreground! I also could write to the raster table directly and the changes would happen immediately on screen!

I spent a lot of time experimenting and gaining an appreciation for the inventiveness of the original Amiga hardware design and it's copper list system. Many of the Amiga's special effects used in games and demos where attributed to this excellent design and I was excited to be able to partially emulate some of this on the Color Computer 3 using the GIME chip's flexible interrupt handling capability.

Back to work

After many combinations of effects, I finally settled on four designs that I will use in my game. Each design will be used in the four different stages of the game to symbolize a theme to each of the levels.

The first two backdrops are static but use the extended gradiant colors. The last two use the 64 solid Color Computer 3 colors on a single raster bar table but they are animated. Currently I still have the foreground scrolling landscape sliding across the screen as if the background wasn't there. I've taken screenshots of screens 1,2 and 4 with the scrolling landscape rolled offscreen so you can clearly see the raster backdrop. Screen 3 shows the landscape and I will describe why in the accompanying paragraph to that screen.

The top two screens had to be manually colored using a graphics editor because the color mixing does not work in the Color Computer 3 emulator and the screen capture therefore doesn't capture the image colors correctly.



Level 1

A gradiant background of yellow to white utilising the extended dual raster table palette. Only the non flickering combinations were chosen and this has restricted it to five yellow tones to give a bit of a sunset appearance.

Nothing too exciting, just a nice color tone which will complement the scrolling foreground nicely making it a nice game level to start with.


Level 2

A bit more adventurous. Same as level 1 with the a dual raster table but a few more gradiant levels sweeping from a sky blue to a green landscape horizon.

My color approximations here don't quite look as good as the real thing being mixed on my CM8 RGB monitor, but you get the idea.

Again, looks good with the smoothly scrolling foreground detail in front.


Level 3

An animated backdrop using a single raster table. It doesn't look too exciting in the static screenshot but will become more apparent when I release a video.

The bright blue area represents water and it is moving up and down to simulate an ocean wave. I have included the current scrolling landscape so as to make it easier to see how the water fits in.

The dark blue area represents the night sky which randomly flashes white to symbolise lightning. With the scrolling foreground, waves and lightning effects, it creates a journey through stormy weather.

Level 4

Another animated backdrop using a single raster table.

This one has four gradiant blue bars that will move up and down in the opposite direction to your player's plane sprite. When your plane moves up, the bars move down and when your plane moves down, the bars move up. The idea is to create a sort of parallax effect.

This level will change the scrolling landscape style for a more artificial environment composed of metallic framework scrolling smoothly from right to left.


 Big changes ahead!

That concludes the raster bars segment. I can always revisit the bars and make any changes and additions later as the game continues to take shape.

Next is a major change that will improve the whole look of the game significantly!

I will be ditching the current scrolling landscape routine and put in its place a new tile based system. The advantages of this system is that I will be able to vary the look of the landscape.

The current vector based routines have the advantage of being very fast but it means little room for diversity in the graphics design. I can change the color but the overall layout and design is fairly fixed.

A tile based system will allow me to design all different graphics to make each level look distinct. The negatives are that it will take up more CPU cycles to process and it may compromise my target of a 60 fields per second frame rate. I have a few ideas but I think that even if it falls to 30 frames per second, it will still be adequate. The markedly improved visuals will more than make up for it.



Copyright 2013 by Nickolas Marentes