The Viper (Compute's Gazette)
This is a fast, furious, hungry snake. It races about, devouring its favorite food-asterisks!. And the more it eats, the bigger it gets. Since snakes have a hard time growing wider, the Viper simply gets longer. Since the Viper has such sharp, venomous teeth, it must not in its haste accidentally run into its own lengthening body. To make things especially interesting, the Viper must maneuver through a maze with electric walls. One false move means certain doom.
The article for this game can be found on page 42 of Compute's Gazette Issue 2 (August 1983)
Why TAS This Game?
The continuation of TASing games from my all-time favorite magazine, Compute's Gazette. This makes my 46th TAS from this series. Additionally, a YouTuber responded to my publication of "Sky Diver". The statement was a response to someone asking "Why?". Basically..."It also sets up the competition that allows us to see what is possible in a game". So this is what I also agree with, with an extra of completing a "Compute's Gazette" library.
One other note. I was resistant to TASing this game, until I found that it had an "Machine Language" routine inserted into it to help the game run super fast. This suddendly made this game more appealing for me to tackle.
Previous Compute's Gazette submissions include (In order of submission):
Game Difficulty and Ending
The difficulty is set in two different settings. One...you must select the speed that your wish to operate at. The second one is having the choice of a maze to navigate through. By selecting the "Hard" maze, we can go for the most points possible, since the calculate for determining score is below:
No Maze:
(Number of Asterisks Eaten) X (1) X (Speed Selection)
Easy Maze:
(Number of Asterisks Eaten) X (2) X (Speed Selection)
Hard Maze:
(Number of Asterisks Eaten) X (5) X (Speed Selection)
In this run, I choose the "Hard" maze, since it helps me to get the most points in a quicker manner.
Effort In TASing
This game started off looking easy, and I quickly realized that it was quite difficult. In fact, the version that I'm submitting here was my best effort of many times through. I tried multiple run-throughs with different concepts and only one come through.
There was a few things I found out about this run:
- You cannot play this game on speed 20. I had to reduce it to 19, since 20 was impossible for a TAS to control. Its almost like it didn't have any throttling to allow control.
- You cannot get a continuing growing snake. There is a programming error where the snake's length breaks an 8 bit value and crashed the ML (Machine Language) routine being used to help make the game run super fast. So the maximum score that can be achieved is 11970.
- RNG is controlled by the B.A.S.I.C. written part of the game. This means that we will see each asterisk come up in an expected place; however, there is a way to control RNG in a small way. If you don't want an asterisk to show up in a place, you can put your snake in the pathway of it. In this case, the BASIC routine will just go to the next location...which is not directly controllable by any RNG manipulation.
- After the snake length address hits 127, it will continuing growing in length. The length is not really increasing, but is a programming error in how to keep the length the same. Increasing the value past that point, it will break away and leave the original snake on the screen. It starts over with a 2 block length and you get to do it all over again...until it hits 256. This value breaks the ML routine, keeping the score from increasing.
Here is a version that proves that you cannot go any further, after the last asterisk is collected in this submission. https://tasvideos.org/UserFiles/Info/638370934146385855
Human Comparison
Special Thanks
Thanks to DrD2k9 for the talk over the way this game responded. For each surprising thing it threw at me, we had a discussion over it. Basically, he has the same problem as I do...I hate not figuring out why something happened.
DrD2k9: Claiming for judging.
DrD2k9: It could be argued that this run doesn't meet the definition for Maximum Score as it's still possible to eat one more star (thus theoretically further increasing the score), but doing so does crash the run. In this game, the score is not displayed during gameplay; it is only shown after the game has ended (via death of the snake). So a decision has to be made between accepting this submission as presented (containing an actual ending with the score displayed) or requiring one more star to crash the run as a type of kill-screen ending (which unfortunately prevents displaying the final score). Between the two options, I feel that actually displaying the final score is important and thus the better option.
Because it's theoretically possible to reach the final edible star or the crash/kill screen faster on a difficulty with less obstacles, I feel there could still be an any% branch/goal option for this game.
Accepting as a Maximum Score branch/goal.
Note to publisher: The magazine calls this game "The Viper" but the title screen in-game only says "Viper." I'm not sure what the policy is for naming the game when there's this type of discrepancy.
EZGames69: Processing...