A documentary on the effort to produce an original arcade-style game for the Tandy Color Computer platform.

Tuesday, July 8, 2014

Gameplay Improvements

Well, July continues apace...I guess it is time for another update on Fahrfall's progress. Things are looking up! After getting my feet wet with some low hanging fruit, I moved-on to some slightly more difficult features. For the most part, these are inspired by the past couple of years of playtesting at public events...

Pick Up The Pace

I think that Fahrfall's biggest weakness in the past has been its constant, somewhat...slow...pace. The most common question I get after someone has tried Fahrfall for a while is "does it get any faster?" I think that the steady pace actually leads to a lot of games ending due to the player losing mental focus...

The reason that Fahrfall has had a steady pace is because the timing of the platform movements has been driven by decrementing a counter until it hits zero. The value of that counter was fairly small, so any adjustment of it caused big changes in the speed. Therefore, changing the speed of the game during play was too jarring to seem reasonable.

In order to change that, I reimplemented the platform movement timer to increment by a variable value. The movement happens when that timer count overflows. Since it takes a reasonably big value to overflow a counter in a small number of increments, that value can be adjusted a lot more easily for a wider range of possible movement speeds. This technique allows me to make small increases in the platform movement speed as each new platform is introduced, causing the game to gradually speed-up over time!

As the game speeds-up, playing gets a bit more difficult. It doesn't seem fair to still award the same number of points per unit of play when the game runs a lot faster! So, I used the same "overflow timer" technique to modify the timing for the scorekeeping. Now the scoring becomes visibly faster as the game progresses until it tops-out at a blinding pace! :-)Change Of Scenery

I always wanted the platforms to change as a game of Fahrfall progressed, but I had trouble determining what algorithm should drive that change. I did modify the alpha releases to change the platforms from one solid color to the next every 64 platforms or so, but that was still a bit boring and a good player would have little trouble "wrapping" the color cycle.

The mechansm for changing the platform colors and patterns was built into Fahrfall long ago, with each platform's data structure holding pairs of graphics data representing the tops and bottoms of a platform section. The new algorithm implemented an 8-bit LFSR where 3 bits chose one color, 3 bits chose another color, and the last 2 bits chose a pattern. Patterns include solid parallel lines, segmented lines in alternating colors, a "checker board" pattern, and a fourth pattern that throws-in some black blocks to look a bit "twisted". Any of the first three patterns might also look like a solid color if both color choices match.

With the new color/pattern algorithm in place, I made Fahrfall choose a new platform color/pattern every 32 platforms. This gives a nice (albeit minor) reward to the succeeding player and helps the player to keep track of the game's progress.

Can You Hear Me?

One thing that I have always wanted to have in Fahrfall is in-game music. Very few games for the CoCo have in-game music, and even the sound effects tend to stop the action while the sound is played. The CoCo audio hardware completely depends on the CPU to do the heavy lifting either of feeding audio samples to the DAC or of flipping the 1-bit "beeper" output. Realizing these facts had convinced me to put in-game audio on the "nice to have" list for Fahrfall, but nothing more.

Still, the desire was there. Fahrfall is timed around the vertical sync output from the VDG, which is used to do most of the graphics work while no image is displayed. There is some work done during the active display, but there are a lot of cycles still free. I decided to experiment with playing tones _only_ during that free CPU time. The segmented audio wave that resulted sounded a lot rougher than a constant pure tone, but it was good enough to make me explore some possibilities...

One option that I am considering is to play some sort of sound effect to add to the game's ambiance. I was able to put together a little sample of one idea after some experimentation yesterday. I like it, but I'll probably do something a bit different in the final version. Nevertheless, I thought you might enjoy a taste of my thumping beat. :-)

Several people seem a bit apprehensive over that beat! I think they might get used to it, but it doesn't really matter. Like I said, I'll probably do something at least a bit different in the final version. Still, I do like how that audio makes me feel when I play Fahrfall -- it is like playing Fahrfall at a rave!

Anyway, this is getting a bit long...I'll keep working on some audio options and I may have another gameplay item up my sleeve. Plus, there is still the "arts & crafts" aspect of this project to explore...I guess you'll just have to stay tuned! :-)