interview with steve harter, creator of crossroads and crossroads ii

A while back published my review of the obscure-ish C=64 classics Crossroads and Crossroads II... but somehow I neglected to mention the games author, Steve Harter. Recently I found a different tribute page by a gal named dessgeega... (her site is also the source of yesterday's Starfox 2 link) later correspondance she mentioned that Steve Harter had written her about her site. It turns out Steve was amenable to an e-mail conversation with me, and agreed to let me edit into the interview format below. (Anything that doesn't seem to flow, that's due to my faults as an interview editor...)
How old were you when you wrote Crossroads? Did you do anything else for the C=64, or any other of those systems?

I was 17 at the time when I developed CR1. I also did a couple more "magazine" games unrelated to Crossroads for the C64. They basically helped my pay for college (in computer science of course).

Really?? How well did those magazines pay?

I said "helped pay" ;) For CR2 it was like $5,000 including upfront and royalties but back in the 80s that went a long way...

I kick myself though for not trying to make Crossroads a bit better and getting a cartridge publisher -- I assume the royalties would have been much better.

Could be! Though I never thought of the C=64 as being much of a cartridge machine. And, in retrospect, I think Crossroads was retro even then or maybe... arcade-y, relative to that era's trend of longer games with bigger and more involved worlds.

I wonder if I worked on the cartridge version if I would have tried to do a big world too... something with a story line or an arena playoff theme perhaps with a real ending (not just a game over) --

How well was the game received?

I got a few fan letters forwarded from Compute -- for one kid I gave him a workaround so he could have more than 9 shields because he was upset that the other characters could have more than 9 (he was right).

As a gamer, I'm mostly interested in multiplayer games through the ages, and Crossroads has a fantastic Co-op or Compete factor. Plus I've noticed that most any game that does a good job of throwing a swarm of enemies at you tends to catch my attention. I've always said that Crossroads was special for making you feel like just one more monster type among other monsters....

I really enjoy playing games with other (human) players -- all of the four games I created for the C64 were two-player simultaneous that basically limited the game to an overhead view (before split screen became feasible)

I've always admired how skillfully Crossroads uses the C=64's character graphics, especially with having characters move in half-character steps, other character-based games weren't so fine-grained... Did your ideas about the possibilities of character-based graphics drive the design of the game, or vice-versa?

The idea of a lot of characters moving around the screen with AI interested me such as Robotron and Wizard of Wor. But making a Robotron-style game perform for the c64 would have been impossible due to all of the pixel blits and collision detection needed since there could only be 8 sprites. So I started tinkering with a Wizard of Wor style game that could use characters instead of pixel blits or sprites and thus thought of using one- and two-character transition animation.

Did you come up with all the monsters and names on your own?

I created all everything in the game on my own (characters, sounds, etc) but Compute named the characters and did the magazine artwork.

Do you recall how the monster allies/enemies rules worked? Were some especially bitter rivals? How did the AI work in general?

Well the yellow, red and blue were friends, light tan guy and horse thing were friends, two grey soldiers were friends, I think the rest were enemies. Nothing in the AI for being more bitter over one enemy vs. another

The core AI aspects of CR are based on how far he can see, if he runs or chases other enemies and who the friends are. I wish I could have done more here, such as worms that would take up more than one character block. I also wish I would have made one change to the game: for an "eating" character I wish I would have given him an extra shield every time he took one from someone. It would have completely changed the game.

That snake I idea sounds awesome... but those eating lemonsharks were tough already!

How did you manage to keep the players moving at a constant speed, even as the monsters were slogged down?

For the constant speed of the two players and their bullets, I basically set a "heartbeat" variable in the interrupt loop (every 1\60th sec) that the main (infinite) loop checked after every non-player character was displayed. The player's bullets move at full speed so if you look at the player's bullets every 1\60th of a second they move one half of a character. There is also an algorithm used to speed up the other characters over time based upon another heartbeat variable.

Oh, so the speedup isn't just a byproduct of a fully loaded processor? I was thinking about Lore Sjoeberg's Book of Ratings quote about Space Invaders:
As you killed off the low-res interplanetary menace, the remaining would-be conquerors, fueled by revenge and freed-up CPU cycles, would steadily increase in speed, until one last Invader would be zipping across your screen like a Yorkie on crystal meth.
I always thought that applied to CR as well...

It does increase in speed if characters are killed too fast, but eventually will slow down if you don't keep killing more of them too fast. I don't remember the algorithm off the top of my head, but it adjusts a tiny bit faster\slower every few seconds to try to find the best fit for the current level and how long you have been playing the current level. The first level starts out painfully slow for the little players, and I think by level 16 or so it is running at full speed even with a few enemies.

Such attention to detail!

What about those cool explosions? Are those sprites, or direct pixel drawing, or what?

The explosions\implosions are sprites. I now wish I wouldn't have displayed the score at the end though -- too korny. To save magazine space, the sprites are randomly created during bootstrapping so are different every time you run the game. I think there are four sets of explosions generated so they also vary for a single game session too.

Did that mean there were only 8 explosions possible at once?

Yes, they just cycle through

Did you do line of site for monsters? I was thinking that limited vision, besides being more realistic, also would mean less computation.

Yes I think the blue fleas could only see like 4-5 spaces which definitely cut down on the computation

I remember trying to pick up assembly programming on the C=64 but it totally kicked my pre-adolescent butt... I finally manged to make my own game for the Atari 2600 in ASM, and even though it's known to be a tough platform, in some ways the stripped-down environment might be easier to get a handle on...

I would dread coding the 2600, I agree that it would be harder IMO to write a playable game on the 2600 than the C64. The C64's support for customizable character set, SID, sprites, smooth scrolling and memory size just made it an awesome game machine at the time. I learned ASM because BASIC was just too slow for anything. Two books I couldn't have lived without were "mapping the 64" and a 6510 assembly language reference (I still have these). I actually used Compute's crappy free LADS assembler because I was too poor to buy one (thus the reason why I got into cheap paper magazine games).

Other tidbits about the game:
1) In CR2 the dog at level 20 becoming stronger and aggressive
2) I put my initials in one of the mazes in CR2, as did Randy T. did for the sample maze in the Maze Editor he wrote for CR2
3) There is also a rare bug that causes a hidden wall to be added, but I didn't try too hard to fix that since I thought it was an interesting effect
4) CR1 doesn't have my name in the game because Compute blanked it out before publishing. The CR2 version I sent Compute did not have my name scroll by, but if someone typed in the program from the magazine or if the game detected the loader for those who bought the disk then my name was shown. The check for the typed-in program worked because Compute always put 0's in the last few fill bytes of the last line of program but they were normally 255's in memory. So I basically got my name there without them knowing about it.

That's really clever, I love it! About that loyal dog... would it ever turn on you if you shot it? (Or am I just thinking of Nethack?)

No it doesn't turn on you... It would have been funny though. It's been a while since I've gotten to level 20+ though...

What do you think of the Crossroads fansites, and the interest in retro gaming in general?

Just a couple years ago I installed a C64 emulator with the CR2 ROM and got teary eyed (it was probably 10 years prior to that the last time I fired up my C64 and played it). I also got teary eyed the first time I got MAME working and played some old classics. So I definitely understand this retro gaming thing. Today I enjoy playing CR2 via emulator with my 7-year old son -- it's funny but he can beat me at Mario Kart but doesn't have a chance against me in CR2.

Have you seen XRoads, a port of the game to X-Windows?

I never tried try the XRoads port but would like to. I gotta get started on the port to a modern console ;-) I think it would be cool though to create the retro port plus a newer, online version of the game where each character could be a real person.

Well, thanks very much for your time and insightful answers!

Thank you, it's been fun talking about this
Dessgeega's tribute page has a video of the gameplay, and my review has the's worth checking out, this game didn't receive nearly enough attention.