ZeroK-RTS / Zero-K

Open source RTS game running on the Spring/Recoil engine
https://zero-k.info
GNU General Public License v2.0
687 stars 205 forks source link

Missile tracking #2364

Open DeinFreund opened 7 years ago

DeinFreund commented 7 years ago

In 1.5.7.1, hacksaw can still miss shadows and defender can miss blastwing. These misses should either be clearly player induced by actively trying to avoid missiles or not happen at all. Random misses, especially in the case of these two units, can easily be game deciding.

GoogleFrog commented 7 years ago

Sounds like a good idea. Don't increase speed, just turn rate. I'm happy with the interactions with Swift.

GoogleFrog commented 7 years ago

Hacksaw is unaffected by that commit.

lhog commented 7 years ago

In private repo I actually tried to increase Hacksaw's weaon turnRate by as much as +50% and it still missed quite often. I suspect that weaponVelocity needs to decreased along with flightTime increase.

sprunk commented 7 years ago

Oops I affected Chainsaw instead of Hacksaw.

sprunk commented 7 years ago

Possibly it could have low start velocity (to be able to quickly turn without overshooting) but quickly accelerate to proper speed?

lhog commented 7 years ago

Was thinking same way, but never had enough time to verify, given it requires a few reload.

lhog commented 7 years ago

Even turnRate = 1000000000, doesn't make hacksaw hit Ravens reliably. Much to my surprise higher weaponAcceleration makes hitting Ravens more reliably.

But generally speaking Hacksaw targeting is so slow that you can tag this unit broken.

GoogleFrog commented 7 years ago

@DeinFreund I want to see a replay with Defender miss Blastwing.

DeinFreund commented 7 years ago

The most common blastwing defender miss is caused by lack of prediction.

img

A defender on a hill aims for an incoming blastwing but aims for its current position instead of the expected intercept. Thus the missile has to correct its trajectory and flies right into the cliff. Then the blastwing teleports up the cliff and kills the defender before it can reload. If the defender actually checked his line of fire he would still have a missile ready to fire and could kill the blastwing as soon as it comes over the cliff.

It's not possible to fix this by placing the defender at the rim either, because cliff maps allow blastwings to fly narrowly along the cliff line.

This is different from the Hacksaw issue which is caused by the bad missile tracking algorithm (or too low tracking rate).

sprunk commented 7 years ago

So it's not missing per se. The missile is accurate but just runs into a cliff along the way.

Anarchid commented 7 years ago

The real oppression here is infinite vertical speed for gunships climbing a cliff.

GoogleFrog commented 7 years ago

@DeinFreund I am unconvinced that there is anything wrong/fixable. I require a replay.

DeinFreund commented 7 years ago

https://drive.google.com/open?id=0B0FswUjncRt0cmVnS1JmOTQzZFU

Here you can see what I described. Blastwings coming straight at a cliff are unstoppable to defenders that aren't right on the edge. This should probably be fixed in engine though, by firing missiles towards the expected intercept location instead of behind the target.