Robotank Arena

Customize. Fight. Remotely.


Project Duration: 4 weeks
Role: Programmer, 3D artist, and Game Designer
Team size: Solo
Platform: Windows

Download here: Link


A 1 vs. 1 game that can be played over Zoom during this hard social distancing time. Each player customizes their robot and fights in the arena - to knock the opponent out of the stage. Please see the marketing sheet below:

Player Input: 

P1: W, A, S, D to move, J, K to attack

P2: Arrow keys to move, Z, X to attack

Development Journey

My initial idea was a local 2-player robot battle game. The game is completely physics-based so sometimes the visual effect can be very unexpected. Since this is a personal project and I don't want to spend too much time to find free assets that can perfectly fit my game, I did all 3D models used in this game - with zero modeling experience. I did everything except the SFX.


However, after only 1 week I started building it, suddenly we moved to remote working so I couldn't playtest my game effectively with my friends. Instead, one of my classmates pointed out that why not play the game through Zoom remote control, so no need to find local peer and networking issues? I thought this was a really good idea, but I doubt if the game would suffer the remote control delay.

I tested the game through Zoom with my friends - they all think the delay during the battle phase is negligible, but the camera control was not working - I figured out this was because Unity mouse input by reading axis cannot be detected if the mouse is under remote control. Besides handling the camera control specifically, this game was just designed as a local competitive game.

I have learned a lot through designing and balancing the weapons: the earlier version has three weapons:

1. A charging laser beam that can push the other robot over time,

2. A melee weapon that its hammerhead can push the other robot away by physically touch it, and 

3. A howitzer shoots projectiles in 45 degrees that can push direct on hit and also applies blast force to any robot nearby on explode.

However, I have put too much effort into balancing them and make all of them not too strong, which caused the game to run infinitely. Then I realized to make the game fun and thrilling, I actually should make each weapon powerful. After many iterations, the new weapons became below:

1. A non-charging laser beam that can stay several seconds after the attack. It still applies force over time, but because of its super long duration, it acts more like a long melee weapon.

2. A cannon shoots projectiles horizontally - remove the initial angle makes the weapon much easier to hit, and can always push the other robot from the side - since the angled projectile will have no effect if hit the top side.

3. A missile launcher shoots multiple homing projectiles - no need to aim, but has a shorter range, slower speed, and smaller push force than the cannon. This is the most beginner-friendly weapon, but the other two weapons have better potentials.

I also improved my robot customization UI into this form, from a text-only, value-based UI:

Players can choose two weapons (can be the same or different), the color of the robot, the robot base (affect hitbox size, weight, and movement speed), and turret type (affect weapon position). They can also use the mouse to rotate the camera to preview their robot from different perspectives.

©2018-2020 by Yifeng Shi. All Rights Reserved.