P 004 – Last known programming projects

The Game nobody saw

Cosmic Aliens would go on to get more updates, and around 1990 I started work on another MS-DOS text based arcade game called “Garden Worm.” Garden Worm was a Centipede inspire game, but it was a “reverse Centipede” where you controlled the Centipede, and in many respects, another take on the popular “Snake” or “Snafu” type games.

Garden Worm allowed you to move your creature around a field of mushrooms, which were obstacles, you could not make contact with a mushroom, the walls around the screen, or yourself. Over time you would grow, and even get faster. There were pick-up items, look food/prizes for points, “S” would make you slower, “L” would make you longer, etc. You had to spend a fixed amount of time on the screen before moving on to the next, during this time you’d try to gather as many points and pickups as possible, without crashing into anything.

The basic strategy was to move around the playing field, gather points avoid crashing into anything, and every now and again, an “Evil Enemy Mutant” worm would appear, it was made up out of the obstacles, and would move around randomly, providing more things for you to avoid, it would sometime run at a “normal” speed, sometimes very quickly! Over time, more items would randomly appear on screen, along with more mushrooms, making the playing field harder to navigate over time.

Garden Worm was also being written using the Microsoft Quick BASIC compiler, and this is when I ran into a unique challenge. Cosmic Aliens was written at a time where there was “just one” type of PC, that ran at a stock clock rate of 4.77 MHz, and most of the logic and timing we based on the speed of the CPU cycles. I would set up a counter that would increment each time a game loop completed, and when that counter would reach a certain number, I would trigger a new event, and reset the counter.

Garden Worm was being written at a place I worked, and in the same cubicle are, I had an 8088 processor, an 80286, and an 80386, 3 generations, and speeds ranging from 4-16 MHz! The same “timing logic” based on game loop cycles was inconsistent across the different machines, I quickly learned that rather than using a “loop counter” to count cycles before triggering an event, I started to use the real-time clock of the computer, and counted actual time, which allowed for more balanced game play. This feature wasn’t in the original version of Cosmic Aliens, and I’m not sure if I ever added it.

Garden Worm was actively worked on, and, if memory serves, was more a personal favorite of mine. The playing fields would alternate between either a randomly generated field of mushrooms, or a pre-designed image I “drew” with the mushrooms, basically large pixel art playing fields, I think there were 10 in all, and it would alternate between the two types of screens, and cycle through all 10. It was a fun and playable game, also had intro screens, custom music, game over attract modes, etc.

Like most of my Color Computer games, it was only seen by myself, a few friends, family and co-workers, and never distributed, and would ultimately become lost in the sands of time.

My first and only commercial software product

In the early 90’s I worked for a Voice mail company called Voice-Tel. Voice-Tel ran a very cool voice messaging network, based on Unix computers, and we were networked across the country and even across other countries. The system was called a Centigram system, and what we offered with voice mail features in the early 90’s was everything you’d expect in modern email systems of today. The ability to send group messages, to forward, attach, cc, bcc, etc., but at a time when a globally accessible internet wasn’t something everyone was tapped into. For the time, it was bleeding edge stuff, I cut my chops on telecommunications and early PC networking there.

At the end of every month, a billing report was generated, this was printed on wide green-bar style paper, and put into a binder that was literally sometimes a few feet thick, and weighed a ton. This was used to know how to charge for excess usage, etc., and it was a tedious, manual process.

We connected to the Centigram system, via serial cables, and I was using a program like ProCom plus on DOS at the time to connect to it. I was able to figure out, that we could run the same report to the screen, instead of the printer, and capture that locally as an ASCII text file. This gave me the idea, to write a program to read through all the data, parse specific content, and then summarize it into single line items.

The logic needed to parse the information, and tabulate things, was quite clever! A single voice mailbox and all of it’s activity could span several pages of the report, so the logic had to identify when a new mailbox number would start, reset a bunch of counters, parse specific fields across several pages, tabulate them, and then come up with a 1 line summary of all the statistics.

The end result was taking a several hundred page report, and distilling it down to a single “CSV” text file, that was comma delimited, that could then be dragged into MS-Excel and turned into a much prettier report. I called the program “Stripper” because it stripped everything down to it’s simplest form.

The intention and motivation of creating this, was to provide a useful tool for the company I worked for, I was not hired or utilized as a programmer for this company, I was there doing customer service, tech support, and would eventually become the director of operations, but my job wasn’t to make software, this was a pet project to help make our life easier.

My boss, saw this as an amazing opportunity to market and distribute the software to all the franchise owner around the country, and started promoting the product before it was even completely finished. The first version of this was an in-house product, not meant to be pretty or user friendly, but I found myself now having to make this into a commercial product, literally against my will, because it was my boss’s idea to do this, and he was thinking he was going to be generous by offering my a “commission” on the sales of this product. This blew my mind, somehow, the thing I made, wasn’t mine, and if I was lucky, I may get a fraction of some money somebody else was going to make! It was selling for $100-$120 per copy, several updates were released with an update surcharge, and, at least 2 dozen copies were sold, so “several thousand dollars” were generated on this program. I learned a lot about intellectual property rights after that, even though I don’t think most of the initial development even took place on company time or computers, somehow, I lost rights to my own creation, I was confused and wounded, and at some point, was able to make peace with the fact and my boss, and we agreed only a slightly more generous profit split over time.

Screen Shot from the Stripper instruction manual

After I made peace with being extorted for my creation, I would go on to continue to add a ton of value added features to the program, during the initial release, and for all subsequent updates, I’d created, maintained and updated the user manual, and release notes for updates, and also had to create all the packages we mailed out for sales and updates, it became a “thing” for quite some time, and it actually was fun and rewarding to come up with new ideas and features, including developing my own “pop up window” routines that I could call at any time, and have something like 3-4 layers of pop-ups what would “restore” the previous page behind them, again, all written in QBASIC, compiled to run as an MS-DOS application. To see the last version of the documentation, click on the link to the right to download the Stripper Manual

This was still a mostly DOS and Windows 3.11 time, when the program was developed, even when Windows 95 would become a somewhat common operating system, the program remained an MS-DOS based program. Much like I somehow “found” or “obtained” a copy of QBASIC in the late 80’s I also “obtained” a copy of Visual BASIC 2.0 for Windows 3.X around the time of the Stripper project, and self-taught myself enough on how to use the software to get a running, and working version of Stripper set up as a Windows based GUI application, however, the one feature I wanted, that I couldn’t figure out, at the time, was a real-time “scrolling” in a text window as the report was being processed. I could fill the window, but couldn’t figure out how to make it scroll, it wasn’t a deal breaker, but the windows version was going to take too much time and energy to try and learn a new way to develop, so it remained the DOS application.

Last recollection of seeing and using my QBASIC source code

At least until the very late 1990’s I still had all of my original QBASIC source code for Cosmic Aliens, Garden Worm, Stripper, and a few other demos and projects I worked on. One of those projects was a platform game I originally wrote for the CoCo and had a very smooth and fast, high color, hi-rest EGA version working, and was quite pleased with!

I recall getting a phone call from my friend and co-worker from Voice-Tel roughly 1999, perhaps early 2000, asking me if I could do some updates to Stripper for them. I had the software, and was looking at it, to see what I could do. I recall transferring all of my source code files to ZIP disks, which were the neat thing at the time, a “hard floppy” about the size of a 3.5″ floppy disk, but that could hold a whopping 100 MB of data!

I had those files on ZIP disks as late as 2001, but during a move, those disks were lost and never to be found.

During this time, I had also dusted off Cosmic Aliens, and started going back to add some of the features I planned to do way back when. The last thing I remember doing was adding a “star field” routine that had constantly scrolling stars in the background. Using just a “period” as the star, and having 3 shades from dark grey, grey, to bright white, I had a very cool parallax effect where a screen full of stars falling down at varying speeds was always scrolling behind everything in the background.

The Star Routine was smart enough to not place the star on the screen if there was already an object in it’s location, so they’d always be behind everything. I’m pretty sure I’d had to have adjusted the internal timing at this time, too, because we were now running on Pentium III computers nearing the 1 GHz speed limit, Windows 98, Windows NT, and Windows 2000 were all now current operating systems, but I still played with my QBASIC and DOS era games until the turn of the 21st century.