Crazy Climber, Part 3: Sprites of All Sizes and Flips

Gameplay from the 1980 arcade game, Crazy Climber.  He is shown being carried off by the helicopter.

In my previous entry on Crazy Climber, I discussed the scrolling background and game objects that were drawn from the tilemap.  Here, I'll look at some of the objects that are rendered with sprites, as well as some of the techniques use that the developers use to animate the game objects.

Climber

The climber is not one sprite, but rather four different sprites stitched together.  By separating the limbs, the developers avoid having to store a bitmap for every possible state of animation.  Here are the 16 climber sprite bitmaps (each 16x16) that are stored internally:

The sprites used to create the climber in the 1980 arcade game, Crazy Climber.

Each of these represents a possible form for the climber's arm or leg.  You'll notice that only the right side of the climber is represented here -- the left side can be constructed from these same tiles by way of a horizontal flip.  Sprite-flipping is a capability that existed in many early arcade games, and the developers of Crazy Climber, made extensive use of it, as you'll see.

During gameplay, each side of the climber can be in one of two possible states, which I'll call "normal" and "spread", each of which accounts for half of the sprites shown above.  The normal state is when the climber's limbs are close to his body.  This state is used in the game when his arms are holding the same column of windows that his body is in front of:

Animation of the climber from the 1980 arcade game, Crazy Climber.  He is shown being animated in the normal configuration.

The spread state is used when the climber is reaching for a window in an adjoining column.  You straddle two columns while in the spread state.

Animation of the climber from the 1980 arcade game, Crazy Climber.  He is shown being animated in the spread configuration.

It's possible for half of the climber's body to be in the normal state and the other half in the spread state, but in all of the gameplay video I studied, the arm and leg on a given side were always in the same state.

The hardware only draws up to eight sprites on the screen at a time, so allocating four full sprites to the climber would have been a significant limitation.  We saw in the previous entry that the faces in the window were all drawn in the tilemap, and now we see another possible reason why.

Falling Objects

In order to achieve smooth motion in falling objects, the game typically renders them as sprites.  Some of these objects are animated as well.

Plants

The first falling objects you'll encounter are the plants dropped by the faces in the windows.


The plants only have a single bitmap in ROM, so how are they animating them?  With an alternating horizontal flip.  Here are some examples, with the flip slowed down for demonstration purposes.

Animation of the plants from the 1980 arcade game, Crazy Climber.  The plants flip back and forth as they're dropped, using hardware sprite flipping.

In the second level, the people in the windows start dropping bottles, buckets, and cans, all of which are animated in the same way.

Dumbbells

Unlike the plants, the girders and dumbbells execute full rotations as they descend.  This is a common problem in video game graphics, so it's worth a little extra explanation.  As I mentioned above, the sprite hardware in Crazy Climber includes the ability to flip the bitmaps.  As such if they want to draw a full rotation for an object, they only need to store the bitmaps for a single quadrant; that is, between 0° and 90°.  The remaining 270° of rotation can be achieved with horizontal and vertical flips.

For example, here's an alien from the 1980 arcade game, Moon Cresta.

Animation of one of the aliens from the 1980 arcade game, Moon Cresta.  The alien is shown rotating, and the image demonstrates how sprite flipping allows game designers to animate a spinning effect.

The game has seven bitmaps stored for the alien, with rotations between 0° and 90°.  By flipping these maps, they could fill out the remaining rotations states, as shown.  Without sprite flipping, you would need 24 different bitmaps to achieve the same effect.

In Crazy Climber, the dumbbells are stored with only four rotation angles (relative to vertical): 0°, 30°, 60°, and 90°.  However, unlike in the alien shown above, the dumbbells have a crude shading effect.   This changes the rotation problem significantly because you want different parts of the objects shaded depending on which part is pointing towards the light source; that is, you're no longer animating a fixed image in rotation.   This would normally require you to store more sprites, but because of the dumbbell's symmetry, the developers could make use of the ones they already had.  In fact, the full rotation is animated with only six different images (counting flips).

Animation of the dumbbell from the 1980 arcade game, Crazy Climber.  It demonstrates how rotation is animated with just four images and two image flips.

They had to avoid vertical flips because that would move the shaded part of the sprite to the top, implying the sun was below the falling dumbbell.

The effect doesn't work completely -- the shading in the horizontal and vertical dumbbell sprites implies that the sun is up and to the right, while the flipped ones make it seem to be up and to the left.  However, the dumbbells rotate quickly enough that this isn't noticeable during gameplay.

The Ape

It really wouldn't be a proper fictional skyscraper without a giant ape to troll its residents, so Crazy Climber makes sure to include a Kong-alike in the first level.  I would call him Crazy Kong, except, random factoid:  a Donkey Kong clone called Crazy Kong would be released in 1981 using a modified version of the Crazy Climber hardware.  So the name is taken, but the description still fits, as the bug-eyed, spastic simian is certainly showing signs of mental instability.

Anyway, the Kong-alike is not treated like the other game objects because it's built from a combination of the tilemap and sprites.  The main body of the ape is included in the tilemap with the rest of the tower, but his arms, eyes, and nose are all animated with sprites:

Animation from the 1980 arcade game, Crazy Climber, showing the ape knocking the climber off the tower.  On the side is the ape body, eyes, and arm in animation.

Again, sprite flipping is used to draw his right arm.  Why were the arms done with sprites?  Probably because the sprites can be drawn on top of the tilemap, and therefore the tower windows.  This wouldn't have applied to the eyes/nose, however -- perhaps they were animated with sprites to allow the use of more colors than were permitted with the hardware's 4-color tiles.

The ape also reveals an interesting quirk in the Crazy Climber hardware.  Look closely at the image of both the ape and the climber:

Composite image from the 1980 arcade game, Crazy Climber, demonstrating a horizontal offset between the sprites and the tilemap.  It shows both the climber and an ape.

Notice how the ape's eyes are offset a little in their sockets and his left arm seems to be hanging off the joint.  Meanwhile, the climber is always seen hugging the right side of the window panes.  As it turns out, the sprites are all drawn 1 pixel to the right of their nominal position on the tilemap.  While you might be inclined to chalk this up to an emulation issue, the comments in the MAME source code suggest that it has been confirmed on multiple original circuit boards.

The Big Sprite

Perhaps the most interesting part of the Crazy Climber graphics is the "big sprite".  The big sprite is like a cross between a tilemap and a typical sprite, in that it's composed of 8 pixel x 8 pixel tiles, but can be overlaid on the screen in much the same way as an ordinary sprite. 

The hardware includes 256 bytes of dedicated RAM for the big sprite, which can be as large as 128 pixels across.  In practice, however, the big sprite RAM is used to hold multiple states of animation, as in the case of the egg-dropping bird:

Animation from the 1980 arcade game, Crazy Climber, showing the climber having eggs dropped on him.  On the side is the bird sprite animation.

A single frame of the bird is only 32x32 pixels, but all six stages of the animation are stored in the big sprite RAM simultaneously.

The helicopter is also animated with the big sprite, but is too big to be stored in every state of animation in the big sprite RAM. 

Animation from the 1980 arcade game, Crazy Climber, showing a helicopter carrying the climber away.  On the side is the helicopter sprite animation.

Internally, only the rotors are stored in every stage of animation, while the helicopter body, which doesn't change, is only stored once.

Other game objects that make use of the big sprite are a balloon (not animated), the Nichibutsu sign at the base of the tower, and the introductory splash screen.  For a more technical breakdown of the Crazy Climber hardware, especially the big sprite, see the dedicated page on Computer Archaeology.

Comments

Popular Posts