COMPETITION ENTRY #12: INVADERS
Let me take you on a journey back through time, to the Wild West. But I don't mean California in 1884 with cowboys-'n'-injuns, I mean the QL Forum's Wild West - 1984. Specifically, the first half of 1984, when the earliest adopters of Sir Clive's sparkly new business machine excitedly ripped open the box with a scant disregard for how much it would be worth on eBay in 35 years (if only they knew!), plugged in the ROM dongle and started ploughing through the hand-corrected User Guide. And there must have been a race to see who could be the first to get a QL SuperBASIC listing published in a magazine; as far as I can see (combing through the QL entries on The Type Fantastic), the winner of that competition was... Dilwyn Jones! No wonder he took to the QL as much as he did. His listing, Sound Development, was published in the 5 July 1984 issue of Popular Computing Weekly. A week later, the first game emerged - Ian Logan's QL Snake. (I've typed it in and made it downloadable.)
Steve Poole's Invaders looks like it came from those same Wild West days - when the full potential of the QL was unknown, its graphics commands still needed considerable exploration, and the way of crowbarring UDGs into a machine that didn't specifically have them was yet to be developed. But not to worry: custom windows and character sizes, those were easily available, so throw them into the listing, build the game around the ROM character set and Clive's your uncle.
It isn't Space Invaders as we know it from the arcades, it's far more primitive than that. Your base - a circumflex - must shoot down a horde of capital Os with dashes for wings, with a stream of exclamation marks. You get a choice of game, depending on... the size of the text. No, really! The playing area will be the same size, but with the large characters of CSIZE 3 there will only be six invaders at the start to shoot down, and you'll even get cyan ink if you've started the QL in TV mode. CSIZE 0, which will only work in monitor mode, uses much smaller text and starts with 20 invaders. Incidentally, if a wing overlaps the body of another invader, the O will turn into an 8.
Victory is achieved by clearing the screen of all the invaders, which isn't easy as new ones are spawning all the time. Every direct hit - and it has to be a hit on the body - will use no ammo, every miss will consume one shot, and if the stream of exclamation marks tears through more than one invader, there'll be a bonus shot awarded for every extra invader hit over the first one. Run out of ammo and you'll lose, as you also will if an invader reaches the bottom of the screen. And in CSIZE 0, this will take ages - shoot any that aren't somewhere near the top, go away, make a mug of tea, come back, and the game will still be running.
The game in CSIZE 3 is faster than that of CSIZE 0, but if you have a registered QemuLator you can crank it up with a Gold Card, or right up to Full Speed for a challenging CSIZE 0 game that won't take all day. Or, you could load it on QPC2 instead (and I've added full loading instructions to the package). Alternatively, if you want the real May 1984 experience, keep QemuLator at regular speed, take Toolkit II off, and instead of loading it with the regular JS ROM, use the PM ROM instead (that's the one with the dongle). It'll still work. And if you find it's too hard to line up your shots, edit line 390 and change the variable "easy" to 1; the game will generously give you a grid of dots. But as everything is printed with OVER -1 (which, for those brought up on the Spectrum, is the QL's equivalent of OVER 1) so I find the screen gets a bit too crowded.
This, of course, isn't exactly the last word in programming excellence; Steve is an experienced programmer and probably bashed this together in a single afternoon - hence, I think it's a maximum of two Ricks for effort. It's two masks for attainment as well, as it's primitive to the point where it resembles a slightly more colourful ZX81 game, but that also means it should be possible for even the rawest of raw beginners at QL programming to examine the listing and follow what each procedure does. And if that can bring in some new raw beginners to the QL - even 37 years after the gun-slinging, saloon-crashing, gold-rushing Wild West, then that can only be a positive outcome.