Vision BASIC Showcase
"Harold" The Game
Okay, so about thirty years ago (from the date of this post), I was making my second attempt at a purely machine language game for my Commodore 64. My first attempt was a VERY simple top-view racing game that I titled "The High-Tec Experiment" (I guess the "tec" part of the game had to do with the fact that the car could zip past all of the other cars at a very high rate of speed). My brother helped out with both of my ML games by designing the sprite shapes for them. I, unfortunately, made the mistake of using a machine-language monitor to do all of my coding (I made the monitor myself, and it was fairly limited). I had used this monitor to make the first game, and I also used it to create a word processor that I needed for a high school term paper (money didn't grow on trees back then, so if I needed an app, I usually created it myself). The problem with using a monitor (mine anyhow) is that I couldn't easily insert new code between existing lines of code when I needed to add something into the mix. This factor – and perhaps some others – caused me to give up on the project.
So about a decade later, I started working on the humble beginnings of what would eventually become today's Vision BASIC. I had a pretty good chunk of the compiler finished, but I was starting to run out of memory. Also, adult life just got very busy, and so yet another project of mine ended up being shelved. I've come to realize that hefty roadblocks tend to discourage me from finishing things more easily than the small ones. Anyhow, jump forward another decade (plus a few years maybe) and I was back behind the "wheel" of my C64 computer, driving myself to finish this project. I realized that if I was going to make some decent stuff with my C64 going forward, I was going to need a better toolbox!
So now we reach today, and the Vision BASIC compiler (finally finished!) can whip up pretty much anything I want it to. I'm finally unrestrained in almost every way – hallelujah! If only I had an example to show the public what this compiler is capable of... Hmm... Well, there's this old Pac Man style game that I never finished – you know, the one I was talking about briefly at the beginning of this post? I needed this game to prove that you don't need pure machine language to create a decent game with Vision BASIC. But could it be done?
When revisiting my old game, I noticed that the enemy characters were crawling all over the maze at the full speed of machine language – it was kinda neat, but definitely too fast to be playable. Despite giving up on it, I had accomplished quite a bit. Anyhow, to move forward I had to extract the existing sprite shapes and maze data from the game file and figure out how the custom character set was created, but then I pretty much had to start over from scratch when it came to the coding part. Even with compiled BASIC, you still need to focus on efficiency, so I chose to have each sprite take turns making "decisions". For each cycle of game play, only one of the eight sprites gets to "decide" what to do next while the rest move a single pixel forward in a predetermined direction. In this fashion, all eight sprites can be active and achieve decent speeds. Skipping past all the other technical details, in the end I had created a game I could be proud of.
The real power of Vision BASIC is that it allows you to change some BASIC code here and there into pure machine language, and in this fashion you can ramp up the speed even further. So I did this with my "Harold" game and created a version that included some machine language upgrades. This smoothed out the sprite movements overall and increased the speed just a bit.
You might be wondering what this game is all about – is it a Pac Man clone? Well, not quite. Sure, you're a "fraidy cat" who happens to be scared of mice, so the mice chase you around a maze just like the ghosts do in Pac Man. And your goal is to clear the screen of cat food "pellets" so that you can advance to the next screen. And when you run into the catnip pouches placed here and there, this emboldens the cat for a brief time so that he can devour the mice who are chasing him (he takes on a "wild cat" form). So these elements are certainly similar.
But I didn't want to merely make a Pac Man clone – why create something that has already been done, right? So, Harold gets to go through green sections of the walls, and the mice get to pass through the white sections. Okay, that's a start! Also, there are sometimes mouse traps on the screen that can kill the mice, and if you collect an "MT" on the screen, you can lay down mousetraps wherever you want until you run out. And if you pick up a pile of hairballs, you can launch them at the mice with a press of the button. This only stuns them for a moment, but it's certainly helpful (if you have both traps and hairballs in your arsenal, the hairballs must be used up first before you can lay your traps). There may also appear a yellow paw print on the screen that will give you an extra life – that's helpful!
Okay, so what else? Well, the bouncy objects (like the fruit in Mrs. Pac Man) can certainly be eaten, but you'll want to focus on them even more because they lay new cat food pellets wherever they go (and you can't leave the screen as long as there are pellets remaining). Instead of fruit you might see a bird, a fish, a scratching post, a food dish, and a cat litter box! Once eaten, they will be replaced with a white mouse. And another thing that I thought would make the game more interesting is a two-player mode! The goal here is to work together to clear the screen, though a higher score for one player can be used to indicate who the winner is (or the "winner" could be the person who lasts the longest without dying). Either way works. The one main difference with two-player mode is that there will never be a white mouse, so the bouncy objects will reappear time and time again to fill up the screen with fresh kibble, aggravating the situation. Take that spare moment before it reappears to clear all of the pellets so that you can move on to the next screen!
Anyhow, if you'd like to try out the game – to see for yourself what Vision BASIC can do – just download the D64 file by clicking HERE!As with all of my free software offerings, there are no warranties implied and no user support, but feel free to share them with your friends. Please consider a donation to help offset the costs of running and maintaining this website (clicking the donate button will launch a new tab or window to the PayPal website).