Shuttle Escape (Matt Giwer, Eric Brandon)

Shuttle Escape - Banner Imnage

Title – Shuttle Escape
System –
Commodore 64
Author – 
Matt Giwer, C64 port by Eric Brandon
Publication
– COMPUTE!, Issue 41, October 1983
Page Scans1 2 3 4 5 6 7
Preserved by – eboy71
Recommended EmulatorVICE

Shuttle Escape - Matt Giwer, Eric Brandon - Screenshot 1   Shuttle Escape - Matt Giwer, Eric Brandon - Screenshot 2

Download ROM

Loading the Game –

  • Mount the disk image (Compute 041 Shuttle Escape.d64) in your emulator. In VICE, this is done by selecting File → Attach Disk Image
  • Load the app by typing LOAD”SHUTTLE ESCAPE”,8
  • Once loaded, type RUN to start

Game Instructions

  • This game requires a joystick in port 2
  • After waiting through the initialization (about 2 minutes),the game begins and you find your space shuttle at the left hand side of the screen.
  • Your goal is to move to the right side of the screen, moving through the gaps in the maze and avoiding the obstacles.
  • Your fuel decreases over time and when you hit an obstacle.
  • Pressing the fire button on your joystick speeds up the movement of the maze at the cost of increased fuel usage.
  • Once you reach the right side of the screen, your ship will re-appear on the left and you are awarded additional fuel. Keep going and reach that high score!

Article Text (written for the Atari version)

Can you maneuver through “Moving Maze” while fighting time and avoiding the relentless pursuit of the Rover? Impossible? Try it and see. Written for the Atari with joystick, versions are included for the unexpanded VIC (joystick optional) and the 64 with joystick.

During a stop for refueling on an out-of-the-way planet, you meet a mysterious old man who offers you the key to a fantastic treasure buried deep within a mountain. Many have tried to get to it, but all have been stopped by the unspeakable Rover of the Maze. The old man has the master control to a moving maze which guards the treasure. With his dying gasp he puts it in your hand. It looks like an antique Atari joystick. “Push the button,” he says, “and you will control the maze.” Never being one to pass up an adventure, you start off toward the mountain.

When you get there you find yourself on one side of a slowly moving maze. Every once in a while the dark red Rover passes your way. If you push the button on the joystick, the maze speeds up; if you release the button, the maze slows down. Armed with that secret you enter the maze. To get the treasure you must move as far as you can to the right side of the screen.

Game Movement

“Moving Maze” uses Player/Missile Graphics with string manipulation. The heart of the game is the technique in lines 2210 and 2217. This routine scrolls the dimensioned PM$ RAM that is devoted to Players 1, 2, and 3. In this game the vertical yellow lines that form the maze are these players. The speed is controlled by lines 2400 and 2410, where the scrolling is increased or decreased with each pass through the loop.

You move vertically and horizontally with a joystick. The difference in the two motions is that you can move horizontally only one increment at a time. This is controlled by setting and unsetting the flag (Fl) in lines 2300, 2301, and 2305, and is necessary due to the speed with which the program executes and the lack of sensitivity of the Atari joystick. Without this flag, it is too easy to move two steps at once and crash into a wall. Hitting a maze wall costs you one life and sends you back to the start. If the Rover runs over you, it costs you two lives (but sometimes you will be lucky and lose only one and not be sent back to the beginning). You have five lives to lose. Your final score will be 300 points, less one point per second it takes you to get through, plus 100 points for each life you have left when you finish.

The maximum score is 800 points, but it is impossible to achieve. A good score is 750.

Obstacles

The first difficulty is maneuvering through the walls of the maze, which are set up in the subroutine at the 5000 lines. Note that in line 55 the PM$ was not cleared to all blanks but was set to 146. This turned on bits 1, 4, and 7, which are those corresponding to 2, 16, and 128, respectively. Thus their sum, 146, is put into all of the string characters. In lines 5000 through 5040 I set some of these lines to other combinations of 2, 16, and 128, specifically, 18, 130, and 144. This sets up a random series of openings in the lines. However, since this is random, there may never be an opening in some walls, so lines 5050, 5060, and 5070 create such openings. Line 5073 puts blanks into the Missile and Player 0 pages, and lines at 5080 read in the shapes for Player 0 and the Rover which are the combination of the four missiles. Player 0 has two shapes, the normal playing shape and the explosion shape.

The next difficulty is avoiding the Rover, who sweeps the corridors of the maze. Its movement is not totally random, however. In the routine at 5200, the range of the random variable for the Rover depends upon your location in the maze. If you are outside, all corridors are equally likely. However, the farther you get into the maze, the less “choice” the Rover has. When you are in the last corridor, the Rover roams only the last two corridors. Thus, the closer you get to exiting the maze, the more likely the Rover is to attack you in that corridor. Since the Rover (the computer) knows where you are, it can attack you more frequently when you are closest to winning. The Rover is not a typical adversary.

Colliding with the maze wall is handled in the 5100 lines. This routine writes in the explosion shape, provides an audio effect, decreases the lives, does some housekeeping, and then puts the player back to the beginning with the original shape. The 5400 lines handle being run over by the Rover.

Other Game Features

The routine at line 5700 handles the timing and scoring for the game. Line 5700 calculates the number of seconds since the internal clock in registers 18, 19, and 20 was reset. When the game first comes on, it has measured the time since the GRAPHICS 0 call in line 30018, which resets them automatically. These are reset within the game in line 5790. Register 20 is read first and reset last since it changes the fastest. This method also gives the most accurate time measurement.

Line 5710 determines the score, and the second statement in that line requires that you complete the maze to get any score at all. Therefore, winning requires completing the maze and moving your player to the right. The rest of the lines are resets for a new game.

Finally, the data for the player, the Rover, and the explosion are in lines 10000-10020.

The string manipulation technique in this game uses scrolling to good advantage. It permits the user to control the speed of the motion and to employ it in the game as an additional control variable. This adds complexity and requires more than a little getting used to in order to play the game well.

The technique also permits a very compact game. The program requires a bit over 5K and, when running, well under lOK. Further, I made no use of the unused 2K in PM$ but rather DIMensioned another array B$ for convenience. As to the power of this technique, it would be difficult to find another game using full P/M graphics in single-line resolution with as much motion and challenge that uses so little RAM. This is why I urge you to examine and master the technique.

C64 Notes

Written by Eric Brandon, Programming Assistant for COMPUTE!

The Commodore 64 version of “Moving Maze” has been renamed “Shuttle Escape,” since it has a space shuttle theme.

Shuttle Escape plays much like the other versions. The main difference is that a quantity called FUEL has been added to the game. You begin with 2000 fuel units w hich you lose at the rate of 60 units each second whether the shuttle is moving or not. If you touch a wall or one of the roving droids, you lose 100 units each 1/60 second. When you have run out of fuel, the game is over. Fortunately, you can refill your tanks by reaching the right-hand side of the screen.

If you want to stop the game for a moment, just hold down the SHIFT key. If you want to stop the game for a longer period of time, use SHIFT LOCK.

You can speed up the movement of the walls by holding down the fire button on the joystick. This won’t make gaps appear any sooner, but it will speed up any gaps that are already there. The penalty is that while the fire button is down, your fuel disappears twice as fast.

Programming Shuttle Escape revealed some interesting problems. The first is that sparkle – little specks of snow – appears on the screen. Usually this causes no difficulty, but when you try to use the VIC-II’s spritebackground collision detection register, it turns out that sprites can collide with sparkle!

What this meant to Shuttle Escape was that occasionally, for no apparent reason, the shuttle would “collide” and you would lose 100 fuel units. Since moving the character set eliminates sparkle, it was relocated to $3000.

Another quirk of the 64 is that the VIC-II chip can look at only 16K of memory at a time. When you turn on your machine, it is looking at the first 16K block from $0000$3FFF. It was decided to leave it there for simplicity. This meant that the sprite data, the relocated character set, and the entire BASIC program all had fo be squeezed into 16K. Because of this memory limitation, when the machine language creates a character set at $3000, it destroys the DATA statements in the program. Fortunately, the DATA statements are no longer needed since they have already been POKEd into memory.

Because running the program will destroy it, be sure that when you type it in, you SAVE it before you try to RUN.

Editor’s Notes:

  • In COMPUTE!, the game is listed as “Moving Maze”, which was originally written for Atari 8-bit computers. But the C64 port has been significantly altered, and it was given a new title.
  • The original author, Matt Giwer, also wrote Blockhead, another game that was published in COMPUTE! Interestingly, Blockhead was also significantly altered for its C64 port.

Watch Shuttle Escape get typed-in and played

About eboy71

eboy71, or Bryon as he's known IRL, grew up in the 80's, bathed in that warm monitor glow from his Commodore 64. He enjoys preserving programs from the computer magazines of his youth, especially COMPUTE!, and still manages to get in a game of Impossible Mission from time to time.

Leave a Reply

Your email address will not be published. Required fields are marked *