John Kotlarik

Joust Memoirs

The designing of the arcade game Joust was one of the best experiences of my career, mostly because of the opportunity to work with three incredibly talented people on the team, Bill Pfutz, Tim
Murphy, and Python Anghelo.

The majority of my work was with Tim on sounds and Python on screen graphics and animation. Bill was the “system integrator” putting it all together, and history shows what a superb job he did.I did not have very much involvement with John Newcomer or Jan Hendricks.

Let’s start with the sounds. We had limited hardware resources with a small 8 bit processor ( either a 6800 or 6802 I think) with very little ram, 1 or 2k and rom around 16k, and an 8 bit digital to analog converter. Williams also had an add on speech board which held about 48k of telephone quality speech, but for various reasons, both artistic and cost, we chose not to use it. I had written a 4 channel polyphonic sound program which allowed “tight loop” generation of triangle, sawtooth, ramp and (small table lookup) sine waves of varying amplitude and frequency using scripts that was used on some previous games, but was always looking for new and better approaches. Computer Music Journal was a new magazine which had just begun publication, and had an article on using Walsh functions with square waves rather than Fourier functions with sine waves for generating sounds, and I discussed this with Tim, who was also studying math at the University of Chicago at the time. At first he thought I was pulling his leg, but when I brought the magazine in, read the article, and did some research, he became very excited and did amazing things for the game sounds.

I was really never much of a gear head, but did have a little recording studio in my basement, with an old Teak 3340 tape deck. I rented Hitchcock’s The Birds VCR, and recorded wing flapping sound and skid stps from Roadrunner cartoons on tv at high speed (30 inches/second) then played them back at very slow speeds, watching the wave shapes change on an oscilloscope to better understand how these sounds were structured. I decided both were two part sounds, and thought we could write software to let the game play determine when the second part of the sound cut off the beginning, so the sounds were never exactly the same, and not get boring after extended play. Both sounds began with a dropping pitch element, and ended with a “tail” which rose in pitch. For the wing flap sound, the length of time from switch close to open of the fly button determined when the tail interrupted the start, and for the skid stop, it was the initial velocity of the player’s bird when it landed on the cliffs, so that when a cutoff velocity was reached as the bird slowed down, the tail of the skid stop kicked in. In essence, the players were making their own sounds, though I’m sure very few noticed, as the changes were subtle unless you were listening for them. Tim coded these and other sounds up algorithmically using Walsh series and some other tricks, Bill put in the hooks in the game software, and that’s how Joust sounds came to be!

Now for the graphics. At the persistent urging of Python, and the approval of Ken Fedesna, our boss, I wrote the Picasso program. Prior to that I believe others were using graph paper and then translating color and position info into a software data table, which was then cross-assembled on VAX before being downloaded/burned into the bank-switched memory of the Motorola 6809 processor in our game hardware before finally being viewable. Any screen art changes required repeating the entire process over and over.

The Picasso program allowed the artist to use joystick cursor positioning, button color selection, and 1:1, 4:1 or 9:1 pixel scaling, since seeing a single pixel on the screen was ver difficult. Once an image was finalized, it was uploaded to a file on the VAX where it could easily be included in the next software build. Multiple frame sequencing with frame count time delays came next, allowing the artist to experiment with animation development without programmer assistance until the animation was ready to be added to the game. I recall Python researching bird anatomy and physiology texts to nail the wing movement of the screen images, and going through many iterations of walking, flying and skid stopping sequences before being satisfied..

I’m not sure who did the remainder of the play field art, such as the floating islands and the flames, or whether the Picasso program was used to create them. I do know the program was used to develop screen images for numerous other games. Kristine Donofrio was tasked with adding new features and improvements to the artists arsenal.

I was honored to have been a support member of the team that developed Joust, one of the greatest and most innovative video games of its time!

John Kotlarik

Written aboard Sailing Vessel Kalena Kolika in the summer of 2013