Part 18: FredMSloniker - The ViperIt appears I have a worthy opponent in Thread MVP! Guess I better step it up.
Let's Play The Viper!
August 1983, Issue 2, Volume 1, Number 2
Before I get into this game, I'd like to note something about the previous game. Remember how I said it looks like they didn't test the conversion at all? Well, it turns out they didn't. Rather, what they printed was an in-progress conversion, which they used by mistake. They did get around to publishing the full changelist in issue #4, but by then it was too little, too late. Still, if ManxomeBromide wants it for the collection, I can supply it.
Anyway. Issue #2 presents two games: 'Cylon Zap', a turret-based shooting game, and 'The Viper', another snake game. I decided to cover the latter for a few reasons: it was less typing, 'Cylon Zap' didn't look that interesting, I should probably cover a snake game eventually, and the original VIC-20 version was written by a father-and-son team.
The gameplay is a fairly standard Snake affair: move around the maze, eat things, get longer when you do, stave off the inevitable collision with yourself or the maze walls. It does have one unusual feature, namely the ability to move diagonally, which means you can cross your own path if you're careful.
This time around, the conversion to the Commodore 64 was handled competently, with the core gameplay engine rewritten in machine language to speed things up and full joystick support added (the VIC-20 version played with the joystick, but required you to choose a speed and maze type with the keyboard). Most importantly, it had almost no bugs, and its only bug was one I only encountered because I changed the code.
Speaking of which, the original program used a joystick plugged into port one. I always found port two more convenient back in the day, though; for some reason, joystick movements affected the keyboard, and while port two didn't do anything too horrible, bumping a stick in port one could spew characters onto your screen. The program was already set up with a variable you could change to choose the stick you wanted to use, but (and this is the bug) the value was hard-coded in several places in the program, including in the machine-language main loop. I replaced hard-coded numbers with the variable, added a POKE to change the value in the machine-language bit, and added a few lines to correctly display whether port one or two was being used by the game. (It occurs to me on typing this that I could have, instead, had the player press fire at the beginning of the game and use that port.)
Other than that, though, I present the game as it appeared in the magazine. It's simple but enjoyable.
What's Good: As I said, it's simple but enjoyable. And after last month, it gets credit simply for not being broken.
What's Bad: It is, perhaps, too simple. The only source of increased difficulty during a game is increased length, and with the Commodore 64's increased screen real estate, you're more likely to screw up and hit a wall than to be boxed in for quite a while. And speaking of difficulty, the highest difficulty is literally unplayably fast, as the snake moves faster than the screen can update.
It'd be nice to have the score displayed while playing.
Also, BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP BEEP
Weird/hilarious ads: I don't think any of the ads in this issue can top the cover: