Hmm, I currently calculate the distance the wave has passed by, distanceToImpact? positive means it hasn't hit yet, negative it has already passed. All I really do is record it at waveSpeed (or there abouts) to aproximate the perfect factor, where as for you I would have to record at about -waveSpeed/2 (ranging from -5.5 to -9.85). But according to that I should check around waveSpeed*1.5? (Mind you I still plan to try my interpolation) --Chase-san |
Hmm, I currently calculate the distance the wave has passed by, distanceToImpact? positive means it hasn't hit yet, negative it has already passed. All I really do is record it at waveSpeed (or there abouts) to aproximate the perfect factor, where as for you I would have to record at about -waveSpeed/2 (ranging from -5.5 to -9.85). But according to that I should check around waveSpeed*1.5? (Mind you I still plan to try my interpolation) --Chase-san Assuming you have the fire time, location, and speed correctly, yes, I make the wave break when it's at (distance to enemy - (1.5 * wave speed))... 1 for the extra "wave speed" the bullet goes before checking for collisions, and .5 for the averaging of things. How often this ends up as a different bin is something I haven't tested, though, and it's probably fairly rare. -- Voidious |
That's an interesting idea with the bezier curves - do you use them for interpolation or extrapolation? -- Kawigi
I use them to interpolate date between two scans. This allows me to acquire quite accurate statistics even with quite a lot of ticks without a scan. Only when I'm actually going to fire I need a pretty recent scan of my target. -- MarijnK
It seems like a fairly nice strategy, especially if you are planning on building a pattern matcher that is resilient to missed scans. I also do interpolation of missed scans with my GuessFactor bots, but I use linear interpolation (under the assumption that the effect on either the final bearing or the timing of the wave hit is negligible almost all of the time). By the way, you shouldn't be too surprised to not see a big difference in melee when upgrading from circular targeting to GuessFactorTargeting - I'd expect you to find a much bigger difference one-on-one, and in melee, GuessFactorTargeting is only really even noticeably better against other more advanced bots. It does get a bit better with smarter segmentation, however. -- Kawigi
I was planning something like that to get a *perfect* factor, as the wave may come up a little to long or a little to short to be exactly on point with whrere would be the optimal place to record the guessfactor. So I would just interpolate and get the location of the enemy in this ghost space between ticks. I however haven't gotten around to coming up with the equation I need. --Chase-san
Instead of recording wave hits after the wave has definitely passed the enemy (for now, ignoring the 1-tick adjustment because bullets advance an extra time before checking for collisions), I do it after they have passed (that distance - (bullet velocity / 2)) so that it should average out to being this "perfect factor", as you call it. (If you wait until they've definitely passed, on average they are (bullet velocity / 2) past the enemy instead of right on them.) However, I now have doubts that either of these ideas are worth the effort =) But it's always nice to be convinced your implementation is "right" even if you can't prove it performs better, IMO. -- Voidious
Hmm, I currently calculate the distance the wave has passed by, distanceToImpact? positive means it hasn't hit yet, negative it has already passed. All I really do is record it at waveSpeed (or there abouts) to aproximate the perfect factor, where as for you I would have to record at about -waveSpeed/2 (ranging from -5.5 to -9.85). But according to that I should check around waveSpeed*1.5? (Mind you I still plan to try my interpolation) --Chase-san
Assuming you have the fire time, location, and speed correctly, yes, I make the wave break when it's at (distance to enemy - (1.5 * wave speed))... 1 for the extra "wave speed" the bullet goes before checking for collisions, and .5 for the averaging of things. How often this ends up as a different bin is something I haven't tested, though, and it's probably fairly rare. -- Voidious