HOW TO PLAY

Shoot and ram into enemy turrets to survive and reach as high a score as you can, ramming grants more points and slightly repairs the tank so try ramming turrets while you aim to command the stage and keep the tank in good condition.

SPECIFICATIONS

The original project specifications only required for it to be made in Unity and involve a 3D tank model in some way, so it was up to me to interpret how to design the game.

THEME

Getting the tank controller working was my first objective, I used a rigidbody component for movement and set the tank turret to follow the mouse position.

I realized the tank was sliding around a lot, but instead of fixing it, I leaned into it by building the game around this sliding mechanic.


Everything after was designed with an "elegant ice-skating show" theme, including the arena, lighting, music, and UI, with the engine sounds and explosions adding an interesting contrast to the clean and elegant presentation of the rest of the game.

GOAL

I made the decision to steer the game towards a score-attack design with constant waves of respawning enemy turrets. Points are awarded based on method of destruction; ramming grants double the points you get from shooting. To further incentivize ramming, the tank slightly repairs itself after successful ramming.

The player will fail very quickly if they attack carelessly, but they must approach because the tank's rate of fire is slow and insufficient to clear the arena at later stages of difficulty.


Being hit by a rocket deals 15% of the tank's health as damage and destroying a turret by ramming into it only restores 5%. I wanted to push the player to get close to the enemy without rewarding mindless aggression.

I considered reducing the damage taken from the front instead as another way to accomplish this, but it would also push the player to drive straight into turrets to face the rockets when they landed. I wanted the player to slide around and even drive in reverse when necessary so I ruled out this method.

DEVELOPMENT

I wrote an object-pooling script to instantiate turrets, projectiles, and explosions at startup to handle many dynamically-appearing objects without impacting run-time performance. 

The game saves the player's high scores in a local file using PlayerPrefs. The sound effect prefabs have a script attached to them that randomizes their pitch and volume slightly.

CREDITS

  • Programming, design and sound editing by me.
  • Crosshair texture by me.
  • Tank 3D Model by Isle of Assets.
  • SlimJim Font by J. Cohen Design.
  • Sci-Fi Turrets (cannon) by Vertex Studio.
  • Legacy Particle Pack by Unity Technologies.
  • Mozart Symphony No. 40 in G Minor, K. 550 IV. Allegro assai by Yehudi Menuhin and Sinfonia Varsovia.
  • Le grand cahier X. L'incendie by Pavel Lyubomudrov and Metamorphose String Orchestra.
  • Various sound effects by ZapSplat, Pixabay, SamualFrancisJohnson.
  • Better Unity WebGL Template by greggman.

Leave a comment

Log in with itch.io to leave a comment.