Talk:Flattener
- [View source↑]
- [History↑]
Contents
Thread title | Replies | Last modified |
---|---|---|
Flattener vs. Random | 5 | 00:49, 12 August 2019 |
Pure Flattening Movement Bot | 7 | 05:22, 31 January 2014 |
Curve Flattening Detection? | 8 | 19:50, 16 December 2013 |
First page |
Previous page |
Next page |
Last page |
In theory, it should be possible to hit a flattener more often than a random movement because you know the flattener will avoid where it last was.
In practice, against top tier RoboRumble guns, which would be harder to hit, a typical flattener that logs where it last was and avoids it, or a type of random movement that moves to a random guessfactor each wave?
Thanks!
I have never had much success with flatteners but exploiting it is unethical imo. The logic of flattener is that your opponents targeting is learning and you can simulate what your opponent does fairly well keeping your profile fairly flat. On the other hand, assuming that your opponent assumes that your targeting is learning is not that reliable as it might just be that your gun isn't strong. Random movement guarantees that your opponent's gun will be as good as random targeting while flatteners can actually keep an advanced gun's hit rate below random.
Sorry, my wording wasn't clear: in order to have a better score against all flatteners, you have to exploit it like [LittleBlackBook] does(which I don't really approve btw) because otherwise your targeting will most likely be average against flatteners.
I'm pretty sure a good flattener would outperform random movement after seeing ScalarBot with a PWIN of %100 percent only with a tick flattener but WhiteFang's flattener would most definitely do worse than standard random movement =)
Could someone direct me to a strong bot which only flattens, without surfing, or instruct on me how to change a top bot( DrussGT, Diamond, etc) so that it only uses its flattener? Thanks in advance.
Sure. In Diamond, it's all in voidious/move/MoveEnemy.java. Just comment out some of these:
addView(simple); addView(normal); addView(recent); addView(recent2); addView(recent3); addView(recent4); addView(recent5); addView(recent6); addView(lightFlattener); addView(flattener); addView(flattener2);
Oops, sorry, you'll also want to remove the hit percentage thresholds, like:
.setPaddedHitThreshold(FLATTENER_HIT_THRESHOLD)
Flattener is only enabled at a certain hit percentage, but you want it always on.
Just making sure, this will also disable normal hit logging, so it will only dodge places its been before, not where its been hit? Will I also have to add something to its move history so it has some at the beginning?
Has anyone figured out a statistical test which gives a good prediction of the state of an enemy surfer's flattener? It seems that it might be useful in targeting to figure out if they are using a flattener or not.
Combat measures the peak in kernel density estimation. Low peaks are a sign of curve flattening. But it is used only for energy management. Low power bullets against flatteners, max power bullets against predictable movements.
And I'm using it in melee/team only. Doesn't work against surfers since they create peaks to screw up your data on purpose.
While you're at it, detecting if they're surfing at all might be good to have. One thought I've had on that is detecting if their attack angle is relative to you or the wave sources.
Current virtual gun systems seem to do a pretty good job deciding if they are surfing or not: until they start flattening.
According to MEA formula, heading should be perpendicular to a bullet path targeted using head-on targeting. It IS perpendicular movement, but keep moving straight until the wave hits, instead of turning as in orbital movement.
When there are 2 or more waves flying in your direction it becomes more complex, but Combat assumes there is only 1 wave.
If close to walls, then heading should create the longest path which would hit the wall at the same time the wave hits. Combat calculates which point in the wall coincides with waves hitting it with PPMEA. It could also be calculated with precise MEA.
The side-effect is dynamic distancing becoming hard to perform.
"One thought I've had on that is detecting if their attack angle is relative to you or the wave sources."
That doesn't work with all robots, some surf relative to the enemy robot, rather then the wave source (such as Seraphim).
First page |
Previous page |
Next page |
Last page |