Tank Commander GBA

From GameBrew
Tank Commander
Tankcommander02.png
General
AuthorDonnie Russell
TypeShooter
Version1.3
LicenseFreeware
Last Updated2006/02/22
Links
Download
Website

Tank Commander is a homebrew game inspired by Robot Tank, a 1983 video game for the Atari 2600 similar in design to Atari's Battlezone arcade game.

This is not an accurate simulation of tank warfare as, it could be argued, Battlezone was (a modified version of that game was used in U.S. Army training). Real tanks do not operate even remotely as they do in this game.

User guide

Status Information

The top-left corner of the display shows your current score and the amount of damage to your tank. The bar grows shorter and changes color as your tank takes hits from enemy weapons.

Color and damage Level:

  • Green - None.
  • Yellow - Moderate.
  • Red - Severe.

The top-center area of the display is occupied by your radar console. Enemy tanks appear as white dots. Your tank is represented by the center of the circle. The farther away from the center the dot is the more distant the object. Dots in the top half of the circle represent objects in front of you.

Gameplay

When an incoming enemy tank is detected by your radar, it appears as a white dot on your radar console. Rotate your tank to bring the enemy tank into view.

When an enemy tank is within range of your weapon, the grey range finder will turn white. When tanks come into range, they begin firing upon you repeatedly.

Your tank's armor can withstand five impacts of the enemy's weapon, after which your tank will be immobilized, ending the game.

There are two types of enemy tanks:

  • Greenish-blue tanksa are the more numerous type and can be destroyed with a single hit.
  • Orange tanks are fewer but much more dangerous.
  • The latter have stronger armor, requiring two hits to destroy, and move faster than ordinary tanks. Regardless of type, destroyed

tanks are worth 250 points each.

Occasionally a destroyed enemy tank will leave behind a rotating purple square. Drive your tank over these symbols to repair one unit of damage to your tank.

Technical Notes

This game does not utilize any special graphics features of the GBA. Pixels are simply written and cleared from the display (bitmap mode 3) in real-time, fast enough to create the illusion of movement, and hopefully with little or no flicker.

FAQ

A. Why does it take so long to fire my weapon?

The loading time of weapons is an important part of the strategy of this game.

A shorter loading time would make this a completely different kind of game than it was intended to be.

A. Why does a tank that was behind me a moment ago suddenly appear in front of me?

The world "loops" east-west and north-south, something like moving across the surface of a tiny sphere.

Q. What is that in the background with dots flying out of it?

A volcano; there was one in Battlezone. The idea of making it erupt was suggested to Battlezone's principal programmer, Ed Rotberg, but he was busy with other aspects of the game and it wasn't added until the code was submitted by the programmer who suggested it.

Q. How do I evade enemy fire?

One way is to wait for the enemy tank to fire, then return fire and press the control pad left-down or right-down to dodge the shot.

Use caution, however, since another tank may be firing from another direction. Rocks can be used to block enemy fire. Enemy tanks can also destroy each other, but no points are awarded for it.

Controls

Start - Begin game

Left/Right - Rotate your tank counterclockwise/clockwise

Up/Down - Move forward/backwards

A - Fire (hold to fire repeatly)

Screenshots

tankcommander3.pngtankcommander4.png

Compatibility

Runs on emulator (not tested on hardware).

Changelog

1.3

  • fast.c:
    • Approximate division using lookup table added.
    • Approximate division now used for line clipping.
    • DrawLine() optimized slightly.
    • DrawString6x8() and DrawChar6x8() optimized.
    • New but unused DrawLine() algorithm.
    • VideoTable removed; X240 used instead.
    • New DrawArc() algorithm used for moon.
  • game.c:
    • Angle and distance calculations now use bios division; however, only approximate distance (which doesn't require division) is actually used in the

game.

    • Objects are now drawn in order of decreasing distance from view.
    • Tanks and obstacles now vary in color.
    • Moon added to horizon.
    • More realistic enemy tank explosions.
    • Changes to horizon and erupting volcano colors.
    • Combined and optimized horizon code.
    • Player's tank descends at beginning of game, facing a random direction.
    • Powerup for repairing player's tank added.
    • Orange supertanks, which require two hits to destroy, and are faster than regular tanks, were added.

1.2

  • game.c:
    • projection table added to eliminate division in vertex projection.

v1.1

  • build.bat:
    • O3 changed to -O2.
    • Funroll-all-loops added.
  • fast.c:
    • Clipping in DrawLine() moved to ClipLineX() and ClipLineY().
    • DrawCircle() added.
  • game.c:
    • DrawLine() now called with parameters.
    • circle added to DrawRadar().
    • TANK_MIN_SIGHT_ANGLE reduced.
    • TANK_MIN_RANGE reduced.
    • TANK_MAX_SPEED reduced.
    • PLAYER_FORWARD_SPEED increased.
  • if enemy tank is out of firing range, it slowly turns toward player while advancing.
  • When it is in firing range, it turns toward player with a speed dependent on the number of tanks destroyed divided by 8, then advances and fires.
  • High scores added.
  • Bug fixed: player was scoring when enemy tank destroyed other enemy tank.
  • PlayerScoreString only updated when PlayerScore changes.
  • Bug fixed: crosshairs were asymmetrical.

External links

Advertising: