Hi Jim. First, a little background about myself. When I was thirteen years old, a student in junior high school, I arrived at school one morning to find these large bulky machines in our classroom labelled "PET Computer".
In the days where an Atari 2600 or Colecovision was all we knew, these PETs were viewed with some mystery and intrigue. I found them somewhat intimidating with all of the keyboard characters and the mysterious reverse field key. Over the following semester with the help of a dedicated teacher we learned BASIC programming and the basics of the GOSUB, REM, PEEK/POKE and DIM statements.
In those days games were stored on cassette and we had to use the wall mounted clock to 'time' the cassette in order to fast forward the tape to xx number of seconds as per the times written on the tape case card. This meant rewinding the cassette each time we wanted a different game. I enjoyed breaking out of the games and looking through the lines of code in order to see how each game worked. At the time my father was a teacher at another elementary school and when school ended for the season we visited the school to play on the PETs as my father packed up the classroom for the year. A very kind principal observed these two young boys playing on the PET and asked us, "How would you boys like to take these home for the summer?". We were grinning from ear to ear. Many of the summer nights were spent in our basement programming games in BASIC.
In these days games arrived in the classroom strictly through hand-to-hand copying of tapes and in this month alone I've discovered games that I'd never seen before on the PET such as Defender and Frogger. It was a different era, one where friendships were made through going over to another students house to LOAD and SAVE games on tape. Today you can download a game located in an overseas country without ever leaving your bedroom.
A few games peeked my curiosity as they contained only one line of code, a SYS statement. I wondered where the rest of the code was and why I couldn't list it. These games seemed to be of better quality than the BASIC games, ran much faster and often imitated commercial arcade games.
One day in 1982, a game arrived in our classroom titled Slime! It was written in machine language and the player's mission was to fight off ever-growing green slime. The game was highly addictive and students were wondering if any other games existed written by this Jim Summers fellow who also happened to live in Ontario. You can imagine when Star Spores made its debut, we were gathered around in the classroom watching one another play. Each level was different and many kids were blown away by the creativity of it.
Fast forward 30 years to Christmas of 2012. My brother and I were reminiscing about the 'old 8-bit days' and he suggested I should write a game for the PET. At first I laughed it off, thinking that there could be no more than perhaps four people who'd ever see it. Through visiting forums and websites dedicated to the PET, I learned that it is still very much alive around the world. I dusted off the old compiler and set about coding a game in 6502. In my down time I looked through old messages and found people asking where they could find Slime and Star Spores. This brought me back to thinking about you, and remembered that my brother once mentioned contacting you to find out if you had the source code to Star Spores in order to try to port it over to the C64 (which also maintains a large fan base to this day).
I believe that the Commodore era was one of the greatest times for a teenager to experience. It allowed us to meet new people face to face not through an internet browser. It resulted in many nights of young teenagers in their basements hacking away at code. I look at the thousands of C64 games in existence and often wonder if the same nights I spent on my C64 if somewhere in Europe someone else was doing the same.
Q: So umm, what have you been up to for the last, oh, 30 years? :)
A: I wrote the games for the PET and C64 during my last years of high school. After I graduated in 1984, I went to the University of Waterloo for the computer science program. I finished my undergrad, then spent two more years getting a Master's degree, also at University of Waterloo. While I was doing my undergrad, I decided I liked Waterloo, and I have lived there ever since.
After I graduated in 1991, I worked for a University spin-off called Waterloo Scientific. The company manufactured test equipment for the semi-conductor industry, so I worked with lasers and X-rays for a while. I worked at that company for about 10 years, but eventually the company was sold and shut down, and all the jobs were transferred to Britain.
After that, I worked for another local Waterloo company named Sandvine, which makes network equipment that analyzes network traffic and can apply policies for handling traffic of different types. I was working there when there was a big debate over network neutrality, and it was interesting to have inside knowledge of what was considered an evil company.
I was laid off from my Sandvine job about 5 years ago, spent a while looking for another job, and ended up going back to the University of Waterloo again. I have been working on a PhD for the last 4 years, researching how to make video servers faster.
I have been married for about 15 years.
I didn't write any more games after I entered University; since I became a professional programmer, I stopped doing it as a hobby. But my jobs have involved embedded systems and hardware, which requires the same sort of efficient programming practices as needed for games.
Q: When the PET computer first arrived in schools, we were just beginning to learn BASIC. I was wondering when you learned 6502, was it on the PET or did you learn it from another platform? As an example, Space Invaders surely had to have been written by someone who had prior 6502 knowledge as it was one of the first PET games to be written shortly after the PET was introduced.
A: I learned 6502 by writing games on the PET. The first computer I used was an Ohio Scientific computer that also used a 6502. My father was a high school teacher and he would bring the computer home on the weekend. My brother and I begged for our own computer, and my parents gave us a PET for Christmas. I think it cost a rather shocking $1300, for the model with 16 KB of memory.
I wrote a few programs in BASIC first, of course. I wrote a program that would solve Rubik's cubes, I wrote a text-based stock trading game, and I wrote a version of the game "Breakout" in BASIC. I switched to assembly language after that. The Space Invaders game was my motivation; I wanted to write a game that good.
I learned 6502 from a technical reference that described the hardware and listed the commands. I didn't have any formal programming training at the time, I figured it all out on my own by trial and error.
Q: How were Star Spores and Slime written, in a machine code monitor or through an assembler?
I wrote 3 games for the PET. Astro-Rescue, Slime and Star Spores, in that order. All of them were written using a machine code monitor, which was a bit of a pain, but I didn't know any better. I used a piece of paper as my symbol table to write down the starting addresses of various routines and variables. I spaced my routines out in memory to leave room to add to the code; but when there wasn't enough room, I would jump to code at a new location and then back. Fortunately, there wasn't a huge amount of code for those games, or my primitive programming methodology wouldn't have worked.
I didn't find debugging and testing the games to be too hard with the monitor. I wired-up a reset switch, and I tried to keep the code working as I added new features and refined it.
My lack of knowledge of programming techniques was more of an obstacle than using a monitor. My first game, Astro-Rescue, was pretty primitive since I couldn't figure out how to get multiple things moving on the screen at once. In that game, when you fire the weapon, everything else stops moving. I refined my technique for Slime, where I basically reinvented the polling loop.
For Star Spores, I found an algorithm for drawing straight lines from a magazine article. It was an interesting experience to take programming classes after writing these games and find out the formal techniques that I had already figured out in practice.
It would have been really nice to have a symbolic assembler, not that I knew what they were at the time, and I probably couldn't have afforded to buy one. I would have loved to use a C compiler.
Q: One of the things that appealed to us about Slime and Star Spores were two options that were not often found in 6502 PET games. These were the option for one or two players and being able to enter your initials for a high score. These options created an atmosphere of competition between players. Star Spores in particular was like playing a completely different game on every level.
Could you tell us where the idea for Slime and Star Spores originated from? Where did you come up with the ideas for each of the Star Spores levels (example: shooting an alien on his descent will pause him, shooting him on his ascent will destroy him)? Were you an avid video game player ?
A: Slime was a game I designed. I think the main inspirations were Centipede, and maybe Robotron (I don't remember when that game came out). I liked games where things get really complicated, making it hard to think. When the growth in slime gets out of hand, a hundred spores stream out at you, and that annoying '*' chases after you, I think the game gets something like Robotron.
Star Spores was a copy of a game my friend, David Shadoff, wrote for the TRS-80. It is loosely based on Galaga, which has similar waves of different opponents. The style of the graphics, using quarter-character blocks, was common for TRS-80 games. Some of the opponents in those games were copies of my friend's, some I came up with myself.
At this point, I don't really remember my specific inspirations for all the characters, but I was a keen observer of arcade games at the time. I played my share of arcade games (but I tended to spend money on books, not games). I had an early video game system, the Fairchild Channel F, and I also had an Atari 2600, but I spent most of my time either playing or writing games on my computer. My school eventually got some Apple II computers, so I had a bunch of Apple games; and I was exposed to TRS-80 games from my friend. All of these were inspirations for writing games.
Q: In looking at Slime, there seems to be a certain level of quality that you were trying to achieve. I'm referring to things such as the slime effect on the title page and the transition effect between players where the screen fills up with green glob, an option for two players and the high score feature as I've already mentioned. You raised the bar for PET games that's for certain. What was your intention in creating these games, was it to release them commercially, for your own programming pleasure or to create something that would be an enjoyment for others to play?
I wrote the games mostly so I would have good games to play. I was also in sort of a competition with my friend to see who could write the better games. I tried to use the best programming practices of the time. I created fancy splash screens, high score lists, and allowed two players; just like the arcade games and commercial computer games of the time.
I never really considered selling the games. There wasn't much of a market for commercial programs on the PET, and I didn't try to contact any of the companies at the time. I found the games were more useful for trading. I gave me something to upload to a BBS so I could download other games in return. It is unfortunate that the PET wasn't very popular, but I was writing games mostly for myself.
I wrote my Commodore 64 game with the idea that it would be sold. I made an arrangement with the owner of a local computer store to lend me a C64 floppy drive for development purposes. Unfortunately, the deal didn't work out. I gave a copy of the game to my cousin, who then started giving away copies to others. When the owner of the store saw someone playing my game in his store, he promptly ended the arrangement and asked for the floppy drive back. I sometimes wonder how things would have worked out if I were a bit smarter about handing out a copy of the game; but C64 games at the time were already starting to be better than anything a single person could write.
I also wrote some software for the Apple II, which was my first paying job. I ported an educational game from the C64 to the Apple, and earned $200 for my efforts.
Q: Did you ever receive any correspondence by publishing your address in these games? I've always been amazed at how programs traveled from city to city solely via cassette tape. Our school teacher would receive new games by traveling out of town or through postal mail. Do you remember how you distributed your games?
A: I have been contacted by a handful of people over the years, so I am somewhat glad I put my name and address in the games. I'm a bit embarrassed to admit I didn't respond to the messages. I knew about the simulators out there, and thought about getting my games working again; but I never got around to it.
However, I was really pleased a year ago or so when I decided to do some research on the emulators again. I easily found my C64 game, but the PET games were more challenging to find. It seems kind of magical that my games have been ported, and excellent emulators have been written, all with no effort on my part. Open Source software is great, and I wonder if there is some way I indicate that my games are freely distributable.
That being said, I didn't find a copy of Star Spores online; just Astro-Rescue and Slime. I have Star Spores on a cassette, but my PET is dead after all these years, and I haven't made an effort to find out how to transfer software from cassette. I might have a copy on a C64 floppy, I need to do a bit of searching for that.
I didn't make any special effort to distribute my games. I just uploaded to BBS's and gave the occasional copy away. It's amazing how it got saved and transferred to the internet after 30 years!
[Ed: We were also unable to find a copy of Star Spores any where online and have requested a copy from another PET user]
Q: What did your friends think of you after these games were released? I would imagine you were probably the most popular kid in high school at the time?
A: Unfortunately, I got almost no fame from these games. None of my friends had a PET, and my school had Apple II computers, which had more impressive games. My school eventually got some PET computers, but my games were old news by then.
Q: Having created a few games of my own in machine language, I can tell you that I have never found them challenging to play. Knowing the logic behind how the enemy moves or when he will fire upon you seems to take away some of the challenge. I've always believed that the true test of writing a game is whether it can challenge the author. Were you challenged by your own games when playing them?
A: I was definitely challenged by my games, the main reason I wrote them was to play them. I do wonder how my high scores measure up though. I don't think anyone will beat my Astro-Rescue high score; it was a difficult game and I barely remember how to play it. Slime was my favourite game, and I hope my high score is competitive in that game. I probably had some advantages from having designed the games, but getting good at arcade-style action games is mostly about practice, and I got plenty of practice while testing them.
Q: Many programmers seem go from one platform to another. You eventually moved onto the Commodore 64 where you wrote a game titled Alien Brood which was the C64 version of PET Star Spores. Alien Brood was released in 1983, just a year after the C64 was introduced. You wasted no time in learning the internal workings of the C64. Could you give us some details on Alien Brood?
A: I didn't port the PET version of Star Spores to the C64, I wrote it again from scratch. I don't think I really had a choice, as I recall the memory layout of the C64 was different than the PET; and since I couldn't relocate my code or really change it much, a direct port wasn't an option. I used hardware sprites on the C64 for the haracters, and the quarter-character graphics was unnecessary for the C64. Also, the C64 had a sound chip, so my sound routines from the PET version weren't of much use either.
I only used 8 sprites for the C64 version; the space ship at the bottom and the missiles are done with regular graphics. I used the sprite collision detection to determine when the characters were hit. I didn't know about the tricks for using more than 8 sprites on the C64.
I used a machine language monitor to write the C64 games. I never owned a VIC 20, the hardware didn't impress me. I went from a PET to the C64. I also owned an Apple II clone at one point.
Part of the reason I could learn new platforms quickly was that you could actually get documentation about all the hardware in the computers. The technical reference for the C64 had complete details about all the hardware, so it was just a matter of deciding how to use the information. I had a great reference manual for the PET; it even included schematics. That lead to one of the biggest thrills I had with my PET. At the time, it was about $300 more for the 32 KB version of the PET, and Commodore was known to drill holes in the motherboard to prevent people from adding memory to the 16 KB model. When I examined my PET closely, I saw that all the memory slots were populated.
Checking the schematic I had, I determined that I could change a jumper to get 32 KB of memory. My friend and I cut a jumper, soldered in a new one, and my PET instantly had 32 KB for free! My mother still mentions she was shocked that I took a soldering iron to a very expensive computer.
Q: After releasing these three games you seemed to disappear from the game radar. Were there any other games that were released that we're overlooking? I'm told that you may also have written games for the Apple II.
A: Nope. My game writing career was over when I started University. Once fight games and first-person shooters came out, it seemed like way too much work to write a commercial-quality game.
Q: In attempting to find you, I spoke with your brother who reminded me of my own brother with whom I spent many nights programming. He sounded like he also knew a lot about machine language. Does the love of coding run in your family?
A: The love of coding doesn't really run in my family. My brother is more interested in the hardware, and didn't write significant programs. My sister went into accounting, and is now a CFO. My father was a teacher and my mother a nurse; but they are avid do-it-yourselfers, which is probably why I thought I could write my own games.
Q: Even though the PET was released in US and Canada it seems that a lot of software for the PET originated from Ontario, particularly Waterloo. Do you have any thoughts on why this was?
A: I don't know why there would be a Waterloo connection. I suspect that part of the Ontario popularity of the PET was due to the Toronto computer store (I think it was called Batteries Included?). I was interested to see there was a lab with SuperPets in it when I started at Waterloo, but unfortunately, I never took a class that used those machines. I'm guessing there were a few fans of the PET at University of Waterloo, which may be why software originated here.
Q: One of the things that has always bothered me over the years is Space Invaders. Someone went through a lot of effort to write that game, a clone of the real arcade game and yet never gave themselves any credit. There is no reference as to who wrote it. Was this you Jim and if not, do you know have any thoughts on where it might have originated?
A: I don't know who wrote Space Invaders; but it was really head and shoulders above the other PET games of the time. I'd love to know the story behind it as well.
Q: One of my idols on the C64 was Jim Butterfield. While I found some of his articles confusing at first, in later years I was able to appreciate just how much he knew about the 6502. Did you ever meet Jim, did you look up to him?
A: I never met Jim Butterfield, but I was impressed by what I read in the Computer magazines at the time. I was really impressed that Science Fiction writers like Orson Scott Card and Jerry Pournelle wrote technical articles about computing.
Q: It seems that it was only yesterday that magazines were publishing games sent in by other programmers that the reader could type in and play. I recall Compute and Compute's Gazette being must-have magazines as a teenager. Today I find that many youths engage in X-Box or Play Station but have no knowledge or desire to learn how to program. How do you feel knowing that almost 30 years after you wrote these games, that people are still requesting them and playing them? Do you think that the 8-bit machine is a dying breed? What would you say to someone interested in learning machine language for the Commodore machines?
A: Computers really are different now than 30 years ago. In the early days, computers seemed to be designed for programming, not for simply running programs. The games were also much simpler, so that it was possible for a lone teenager to equal the quality of professional games. Once the C64 and the better video game consoles came out; the production quality of games made it too daunting to try to equal.
That being said, there are many game development platforms out there; and huge numbers of Apps and Flash games. There are probably just as many kids inspired to program these days as there ever were; which is to say, not many. The beauty of the old 6502 systems is that they were simple. You didn't need device drivers; you just wrote to hardware registers. Also, machine languages were designed to be used by programmers, not compilers. But with the number of open source programming tools out there; and the wealth of information available from Google Searches, I think there are ways for people to write their own games if they want.
8-bit machines are clearly a dying breed; I don't think you can actually buy one any more. But I think it is worthwhile to learn any machine language, since I think even high-level programs can be written better if the programmer understands how the computer works. I consider the 6502 to be one of the original RISC computers, it certainly has a very small number of registers and operations. There is also an advantage from the simple memory-mapped support chips. Although students always want to use the latest and greatest processors and systems; I think you can learn machine language and computer hardware much better from a PET than a horrifically complicated multi-core x86 processor.
I don't know if there is a port yet; but an iPad and/or Android port of an 8-bit simulator might be a good tool for encouraging people to program for 8-bit machines. Some of the Apps on tablets seem to be closer in spirit to those old 8-bit games than typical modern PC games, where a lot more effort is applied to the graphics than the action in a game.
Q: And finally, do you have anything you'd like to close with....
A: I'd like to thank the community that has kept 8-bit software on life support. Without all the work writing emulators and transferring programs from obsolete storage devices, this software would die along with the hardware that ran it. In my case, the games were just a hobby of mine as a teenager, and I never put much effort into preserving them. But I think it is really great that through the efforts of others, my software lives; and I can show off my 30-year old game to my fellow students who weren't even alive when I wrote them.
[I would like to thank Mr. Summers for taking the time to do this interview. His PET games are still sought after by PET owners to this day. ]