Jimmy Huey The Programmer Behind Galactic Blitz, Sidewinder, And Swarm! by John Blackford, Assistant Features Editor July 1983, COMPUTE!s Gazette
A good game programmer can squeeze arcade-quality action even from a computer with very limited memory, such as the VIC-20. Quality game programmers are hard to come by and are in increasing demand by software producers. Each month, "Inside View" will highlight some of the best programmers in the field.
Programmer Jimmy Huey is an old-timer at 22 years of age. The other two programmers who work with him at Dragonfly, a small software development firm, are 17 and 18. One of them is still in high school. Often the top people in professional game programming are quite young.
Huey got his start in junior high school in Los Angeles around 1974. "That was a long time ago," he notes. "Back then we didn't have any of those Apples or Commodores. All we had were 100-baud teletypes connected to a Hewlett Packard computer used by the school administration. he could use it for about an hour a day. Only about two or three people in the whole school were interested in computers then.
"We didn't have any games to speak of - at least no graphics - because the only output from the teletypes was paper." The paper spewed out in a continuous roll, just as it used to from wire-service teletypes in the newsrooms of big-city newspapers.
Huey has finished four games for the VIC-20 in the year since he started programming seriously. The four - and all other games produced by Dragonfly to date - are marketed by Tronix Publishing, Inc.
The games are fast-paced, machine language program. Very smooth, arcade-like action. Three of them - sidewinder, Galactic Blilz, and Swarm! - are available on cassette, while the fourth (scorpion) is sold as a plug-in cartridge. Galactic Blitz and swarm! require no memory expansion, While Sidewinder needs an 8k expansion module. sidewinder features horizontal scrolling and several types of aliens, including one that appears suddenly on the screen and homes in rapidly on your rocket-equipped helicopter.
The trick to beating the game, according to Huey, is to keep moving fast. "The game has a time limit," he advises. "If you spend too much time in one place, the aliens will get you. Go forward as far as possible, then flip back and fire."
The first game Huey wrote for the VIC-20 was Galactic Blilz. It features bomb-dropping aliens that swoop around the screen in changing patterns. The aliens consist of a special four-character set that Huey designed. Huey had just acquired the VIC and wanted to do some machine language programming when he started Blitz, but he didn't have a full-featured assembler (software that makes it easier to write a machine language program). ALL he had was Commodore's mini-assembler, VICMON, which doesn't use labels (for variables) or move blocks of code very easily. Still he created the en tire game with it, using only cassette tape as storage medium.
"I would test a subroutine, then record it on cassette, adding it to the main program, " he explains. "Then I'd test the main program. I built up the whole thing little by little.
"Working with the mini-assembler, I wasn't sure how much memory I had left. You only Have about 3.5K of usable RAM. [The VIC-20 comes with 5K, but some is used for internal housekeeping functions of the computer. ] Of course, I knew how many subroutines I'd need, so I allocated a certain number of bytes for each one. "
But what would happen if he found out later that a subroutine needed more space than he had allocated? That could cause problems. "You can yet kind of lost when you start moving blocks of code, because the jump routines will go to the wrong places. You have to make a lot of changes to make it work. "
To avoid such trouble, he left code between the subroutines that was essentially free space - it wasn't part of the program, but it didn't interfere with the program, either. Using that method, if he later found that a subroutine required more memory than he'd allowed, he could type over the dummy code, replacing it with the extra part of the subroutine.
"First I did the ship, then the shooting routines for it. " Next came the star field that forms the background for Galactic Blitz, then the aliens, and finally, the bombs that the aliens drop. "Aafter the main program was finished, I started filling up the spaces made by the dummy code with some of the sound routines. "
Since there is no space to spare in the unexpanded VIC, Huey wasn't entirely sure there would be enough memory for the program until it was done - but it ran without difficulty, a testament to both the potential of a modest computer without costly peripherals and to its programmer.