Is wiki wrong about MEA?
asin formula is when your opponent move perpendicular to your head on angle atan formula is when your opponent move perpendicular to your hit angle ;)
However, the first one is greater, therefore the max (of them).
I am arguing that the asin(Vbot/Vbullet) formula has an assumption in its derivation, which leads to the overestimation of the angle. The easy way to see that use of the asin is wrong is to assume that bullet speed is equal to the bot then asin gives 90 degrees, but you will never hit the bot this way, by symmetry MEA in this case is 45 degrees. Note that atan does it automatically.
90 degrees is correct, since you know the bot is restricted to that half of the field, since if it came towards you your bullet could catch up with it. To make it a little more absurd, what if the maximum bullet speed was 7, and bot speed was 8? According to the atan formula, your slow bullets will still hit the bot, even though a real strategy could be for the bot to run away faster than the bullets go. The asin formula is not defined in this case, which makes more sense, since the bot might never get hit (assuming infinite field size of course).
Let's rephrase this: if you were the bot making the movement (not the firer), then what angle would be optimal for you to move at? Well, the one that lets you access the largest MEA, of course. What gives you the largest MEA? Not having a component of your movement going towards the fire location. Think of the x and y components separately, for the atan movement path if the bullet is fired on x axis then by orbiting the fire location you are reducing the x component of your distance to the fire location in the hopes of increasing the y component more. However this tradeoff is not worth it since it makes the bullet hit you sooner, meaning you cannot access the higher MEA.
In the case when the firer is moving and there are multiple bullets in the air each from different locations, it isn't always possible to move perpendicular to the original wave because you are in 2D and can only move perpendicular to one line at a time, and you are trying to dodge multiple bullets. But if you chose to, and didn't run out of space, you could make your MEA right up to the asin(vbot/vbullet), for a single wave at least. And if the enemy gun didn't accept or shoot at these higher angles, you could dodge all of their bullet like this.
You've made one thing wrong — it's the bot, not you, that selects the escape angle. if the bot move perpendicular to you, and your bullet speed is the same — you will not hit him definitely. Whatever formula you use, the fact of not being able to hit will never change, in this case. Therefore it still can't prove it's wrong.
The only way to prove asin formula is wrong is by giving a formula that is greater than or equal to asin formula all the time (and that formula must satisfy the game physics as well)
Anyway, if your opponent moves orbital, not perpendicular, asin formula will make higher power bullet shoot at an angle greater than needed, and lower power the less — decrease hit rate. Therefore using max_vel/bullet_speed withou trig may be better in this case (if you don't cape gfs, it will never be an issue)
Well, the asin gives MEA where M stands for maximum :). Also, there is a hidden assumption that the bullet speed is always faster than a bot (i.e. a bot cannot run away from the bullet) and that the battlefield is infinite.
This asin is probably the oldest formula in my framework. It is dated by 2015 and was used even in an earlier bot. Yesterday, I decided that I am ready to challenge it. Actually, it was part of the effort to calculate the battlefield constrained MEA. I think I finally get it, though it still assumes that a bot can reach max speed instantaneously.
Now I expect my guns to be better especially in melee. I hope they will not shot into a wall when aiming at Diamond hiding in the corner. Hopefully my bot will move up the ladder a bit.