Vision BASIC Showcase

"LOGOS64" The Game

The story of LOGOS64

By Miles Dyck

LOGOS64 Game Play

The C64 was my childhood computer, but it was not the computer I learned to code with.  I was seven years old when my father bought a C64 for me and my older siblings and we used it mostly for games and some rudimentary word processing.  It wasn’t until I was in high school, around the same time the family C64 was retired, that I learned to code in BASIC on an Apple IIe and then PASCAL on a PC.  At university I specialized in the natural sciences and didn’t do any more coding until graduate school when I had to dust off my PASCAL skills for a numerical methods course and to write some custom programs for data analysis.

I rediscovered the C64 during the COVID lockdowns in 2021. The nostalgia for the old games and simpler times hit me hard.  Playing the old games on a real C64 was so much fun and brought back a lot of memories.  Some of those memories were about how intimidated I was by computer code before I took those courses in high school.  One of friends also had a C64 and he could make amazing programs.  He showed me assembly language one time and it completely baffled me.  Finally, well into my 40s, I saw coding in BASIC on the C64 as an opportunity to develop my programing skills to make something fun and be creative.

LOGOS64 Stat Screen

But where to start?

Gaming was where it all started for me.  I wanted to make an arcade-style game, but my BASIC skills were very rusty. The BASIC I had learned way back in high school didn’t include graphics or sound.  So, as a way to get my feet wet with BASIC again, I decided to code a game that didn’t require graphics or sound.  I had been playing Wordle (click here to visit the website) every morning for a while and one day it hit me that a Wordle clone was the way to get back to BASIC on the C64.  Thus, LOGOS64 was conceived.

At this point, I had heard of Vision BASIC, but I wanted to first learn BASIC V2.  I started by reading the C64 User’s Guide and Programming Reference Guide then started coding logos on a real C64.  My first solution to the “Wordle problem” was inefficient and clumsy.  Funny enough, it was a three-week period when I had COVID myself that I was able to get the first version working and posted it on GitHub (click here).

The next major step was the conversion to Vision BASIC.  With Dennis’ help with the code for the search procedure and loading the master word list directly to memory, the latest version of the game is much faster and playable (download here).  The next development steps will the adding some music and simple graphics.  Eventually, I will get on to developing an arcade-style game with Vision BASIC.

Editor Note: Marcio D. has written an excellent review of this game that you can read on the VisionBASIC.FUN website. Click HERE to check it out!

Vision BASIC Showcase

"Harold" The Game

The High-Tec Experiment

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?

Harold Title Screen

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.

Harold Game Play - Screen Two

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).