Tank cannon fire control (does not fire when I say)
Posted: Tue Jul 07, 2026 10:24 am
I've been using the tank quite a bit recently and getting frustrated with fire control for the main gun: namely that it doesn't fire immediately on command, but rather later after the turret has rotated. As a consequence, shots will often miss if the tank is in motion and (before shooting-speed research has improved the reload time) it can be hard getting shots off at the right time (e.g. while driving by a worm).
(Whether this counts as a bug is subjective. From my POV, the tank is buggy since it doesn't shoot when I tell it and often misses targets it would have hit it it had fired along the line between the tank and mouse cursor when commanded.)
The shotgun uses the same type of fire control, but with one key difference: the player turns instantly in order to aim in the given direction. This is slightly janky, but it works. The flamethrowers also use the same fire control.
So, solution 1 would be to turn the tank turret instantly. This feels janky.
Solution 2 would be to always turn the turret towards the mouse cursor whenever enemies are near the cursor or a shot has been fired recently, thus being ready to fire the moment the "fire" key is pressed. This would be my preferred solution, but leaves a question of what to do if the gun is not already on-target:
2a: Delay firing until on target. Personally this is my least favourite option since it messes up the firing rhythm and often results in misses if the tank is moving.
2b: Refuse to fire at all. This would allow using the "fire" command to "wake up" the cannon and make it start aiming. Seems fine, but may need some fudging for cases where the turret is almost-on-target.
3c Alternatively, it could simply fire-on-command no matter where the gun is pointing.
Solution 3 would be to have the tank cannon behave more like the rifle or missile: target the enemy closest to the mouse cursor and only fire if on target. It couldn't be used to clear trees that way and would still need some logic to enable/disable aiming, but would at least solve the misses due to tank motion.
Solution 4 would be to simply add auto-aim: if an enemy is near the mouse cursor, aim at that instead of the ground. Not my preference, but the smallest change that should at least solve the misses, if not the time-critical issues.
(Whether this counts as a bug is subjective. From my POV, the tank is buggy since it doesn't shoot when I tell it and often misses targets it would have hit it it had fired along the line between the tank and mouse cursor when commanded.)
The shotgun uses the same type of fire control, but with one key difference: the player turns instantly in order to aim in the given direction. This is slightly janky, but it works. The flamethrowers also use the same fire control.
So, solution 1 would be to turn the tank turret instantly. This feels janky.
Solution 2 would be to always turn the turret towards the mouse cursor whenever enemies are near the cursor or a shot has been fired recently, thus being ready to fire the moment the "fire" key is pressed. This would be my preferred solution, but leaves a question of what to do if the gun is not already on-target:
2a: Delay firing until on target. Personally this is my least favourite option since it messes up the firing rhythm and often results in misses if the tank is moving.
2b: Refuse to fire at all. This would allow using the "fire" command to "wake up" the cannon and make it start aiming. Seems fine, but may need some fudging for cases where the turret is almost-on-target.
3c Alternatively, it could simply fire-on-command no matter where the gun is pointing.
Solution 3 would be to have the tank cannon behave more like the rifle or missile: target the enemy closest to the mouse cursor and only fire if on target. It couldn't be used to clear trees that way and would still need some logic to enable/disable aiming, but would at least solve the misses due to tank motion.
Solution 4 would be to simply add auto-aim: if an enemy is near the mouse cursor, aim at that instead of the ground. Not my preference, but the smallest change that should at least solve the misses, if not the time-critical issues.