Gorillas
Gorillas |
---|
Also known as: GORILLA.BAS This game has unused code. |
Gorillas (also known as GORILLA.BAS), a King Kong-inspired artillery game where you lob explosive bananas at your enemy. What better way to showcase that hip new QBASIC programming language from Microsoft?
Contents
Unused Skyline Slope
When generating the city skylines, the game chooses a number to determine the "slope" (basic shape) of the buildings. Half the time, this is "^" shaped, with a "mountain" between the players that bananas must be thrown over. The others choices are "slope up" / "slope down" (buildings rise steadily to the left, or right) and "inverted V" (a bowl: buildings heights are lowest in the center).
However, due to a bug in a later SELECT ... CASE statement, the inverted V never actually has any height changes - it behaves, instead, as a flat and very tall skyline.
Incorrect (Original) V Slope | Fixed V Slope |
---|---|
Incorrect Banana Rotation
The routine for drawing the banana takes a "rotation" argument. According to the comments, the rotation should be as follows:
' r - rotation position (0-3). ( \_/ ) /-\
However, the actual order in this sub is wrong, leading the banana to flip around wildly instead of spinning. The difference between the bugged and intended animations is illustrated here:
Incorrect (Original) Rotation | Fixed Rotation |
---|---|
Hit Sun With Banana
An off-by-one error exists when comparing banana Y position to SunHt ("Sun Height") in PlotShot: this allows a carefully aimed banana to strike the bottom-most pixel of the sun and explode, instead of triggering the sun's open mouthed face image.
Automatic Self-Destruct
The subroutine PlotShot includes code that checks if the player entered velocity < 2, and if so, it resets the initial banana position to hit the gorilla that threw it. The comment for this section reads "Shot too slow - hit self". However, this position is overwritten later by the regular movement routine, which means that the check has no actual effect.
The result is that, in game, it is sometimes possible to "drop" the banana with 0 velocity, yet the wind will safely blow it away rather than automatically destroying the gorilla who threw it.
IF Velocity < 2 THEN 'Shot too slow - hit self x# = StartX y# = StartY pointval = OBJECTCOLOR END IF
Red Explosion Square
When a player is hit by a banana, the explosion animation includes a large red off-center square that seems to be bugged - either in placement or in shape. It's not clear what this is supposed to be.
This is easy to miss for a different reason: Most of the game (but not all of it) uses a calculated machine speed to introduce delays for various animations... but not all of it, some of which still uses a FOR ... NEXT busy loop designed for a much older / slower machine. The gorilla death explosion plays too fast on faster computers, so this is usually not noticeable as it happens far too quickly to be seen.
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with unused code
Games > Games by developer > Games developed by Microsoft
Games > Games by platform > DOS games
Games > Games by publisher > Games published by Microsoft
Games > Games by release date > Games released in 1991
Games > Games by release date > Games released in June
Games > Games by release date > Games released in June > Games released on June 11