Gnu Blat 2000

I’ve finally got a version of my MZ-700 game – Gnu Blat 2000 – working. While it’s playable, it’s not really finished, but as we’re now a few days past the end of April I thought I’d document and release what I have.

The concept is simple – you drive the car (modelled very loosely on my own Caterham 7, known as Gnu) around the countryside while avoiding obstacles. The faster you go, the more points you win, but you also run out of fuel more quickly (8 gallons is a full tank, just like the real thing).

You can refuel at the Hero Duck filling station and repair your car at the Enormous Elephant garage. There’s a very popular Dachshund Diner, but you really don’t want to go in there. (Thanks to Gail, Jane and Limes for the suggestions that I’ve willfully mangled to fit in with the game concept).

Driving past the Hero Duck filling station with only 3 gallons of fuel left … risky!

As always with software, there’s a long ‘to-do’ list of things to finish and improve. For example:

  • Better (some!) use of colour. I wanted to write the game on the real 1980s hardware rather than use an emulator, but my modern-ish LCD screen doesn’t cope well with the colour output from the computer. However, using black and white output gave me a nice crisp image that I could work with.
  • The points / speed / fuel / damage display is functional but boring. I intend to improve this – red/yellow/green blocks for fuel and damage, rather than numbers, for example.
  • The ‘countryside’ is experimental but is simple enough to replace / change / extend as it’s stored using DATA statements. I quite like some of it – but other parts are definitely sub-optimal and ugly. I could spend hours playing with the MZ-700’s block graphics to improve it …
  • I’m currently using a PRINT statement to move the track along. I got the idea from an MZ-80K game (Mad Max) published in a 1980s computer magazine. I don’t like this method very much for all kinds of reasons, but it was simple to get working. The logic is all encapsulated into a single subroutine. I wanted to experiment with different methods of display and movement (e.g. POKE statements and/or machine code) – but I ran out of time in April!
  • There are a couple of minor bugs left in the car movement subroutine, but not enough to spoil the game. But I need to track these down.
  • Some fine tuning of the method that accelerates and brakes the car and the frequency / placement of the random ‘lesser cars’ that appear as obstacles is still needed.
  • I appear to have broken the ‘high score table’! Probably an easy fix as it worked earlier during the game’s development … Fixed version committed to github repostory on 3rd June 2021.

Anyway I’ve had fun writing it – and best of all, my supporters have raised over £350 for Lymphoma Action in the process. That makes the project a success even if some things are not quite how I’d like it – so thank you!

If you would like to play the game, there’s a .wav and .mzf file (suitable for an emulator, like EmuZ-700) in my MZ-700 github repository. The code is relatively well-structured and documented if anyone would like to attempt improving it …