View source for Talk:SegmentedData/Segments
- [View source↑]
- [History↑]
Contents
Thread title | Replies | Last modified |
---|---|---|
Distance vs BFT? | 7 | 09:37, 19 October 2017 |
When selecting segments (attributes), the first thing is often to add distance (bullet flight time). I’ve been using distance for my ancient guns, and then all my new guns uses BFT.
I’ven been thinking the difference between the two for awhile, but I’m still lacking experience about them.
IMO choice between distance and bft strongly affects the way gf guns scale with different distance and bullet power. Assume distance is the same, when bullet power reduced from 2.0 to 0.1, the mea decreased a lot, without bullet power segment the gun will then fire at some downscaled position. For movement that don’t react to bullet power and has some lateral velocity very different with time (e.g. Oscillator that runs at max speed and reverses once awhile), downscaling may decrease performance a lot. But for guns using BFT, without bullet power attribute, when the bullet power reduces to 0.1, the gun will think that it is the same as some shorter distance with 2.0 bullet power. Assume enemy movement is only relevant to time, then with bft attributes you scale correctly.
Anyway, I don’t know anything about that beyond principles. I never feel that the use of BFT strongly affects the selection of other attributes. But I’m not sure about that.
So my question is, have you experimented BFT vs distance? What difference did u notice? (behavior, or the selection of other attributes, etc.)
You do not have permission to edit this page, for the following reasons:
You can view and copy the source of this page.
Return to Thread:Talk:SegmentedData/Segments/Distance vs BFT?/reply.
I agree with above that any two is sufficient. But I would argue that the bullet speed is better than the bullet power. Knowledge of the bullet speed and the lateral velocity alone, gives you analog of the linear targeting. Which one can understand without any nonlinear math. It probably also give strong diagonal/linear zone in the segmentation matrix outcome. So maybe lateralSpeed/bulletSpeed is sufficient.
I am using only BFT out of 3 choices in Cb's list. Now I see why I am at the bottom of the ranking :) From other hand, many bots would change something in their motion within fixed number of tics, so BFT lets you gauge if it is going to happen or not within the flight time.
That’s true ;) Using two is enough. And I’m quite surprised by the fact that the choice doesn’t make noticeable difference.
Although by information any combination of two is equivalent, for ML to perform good you not only need to provide enough information, but also to preprocess them properly. e.g. make the variance to 1, average to 0.
the relationship between bft and distance & bullet power is not linear. the higher the power, the bigger 0.1 difference in power affects bft. (plot 1 / (20 - 3x), you’ll see ;) ) therefore if you use power&distance, when power is high, it is weighted too low, and when power is low, it is weighted too high ;) the same thing happens to bft&power though, but anything don’t react to power should be more relevant with bft imo.
Then it may make sense to preprocess power to 1 / (20 - 3 power), whether for distance & power or bft & power. But since power is not distributed evenly, this may not work. Or preprocessing based on the real distribution of bullet power makes sense.
I use neither of them, not in my gun nor in my movement. I tested distance in my gun long ago and apparantly it brought not enough to compensate the scattering of data. I have been thinking about BFT lately though, but only because I want to make a bigger distinction between my guns. BFT seems then a better choice than distance, but that is just my gut feeling.
Well, I never tried to drop distance/bft ;) although I don’t know why to include it. Anyway, my guns tend to weight distance relatively low, maybe that segment is really not that important.
Assume we kept our distance really good and it kept 450 ~ 500 most of the time. Then I think whether 450 or 500 makes no big difference, especially against movement that distributes latvel evenly among different time, e.g. random movement. But imagine you got to ~75 distance occasionally, where bot width is not ignorable. If you have distance segment it will automagically take advantage of that, as well as not polluting normal distance. But yes, when distance is concentrated, scattering the data may be more noticeable than the increase in accuracy.
It also depends on how you process each segment. From your words I assume you use multiple separate arrays (segments) and accumulate them with a weight. I use one multidimensional array, which means that I can't give different weight to segments. This works a bit like a tree, going deeper into dimensions when enough data is present. Bringing one more dimension (segment) into such a structure will scatter the data, so I really only add it when it has proven that it helps. As my bot tries to keep its preferred distance, against the majority the distance segment gives no additional info about the movement of the opponent.
Well, my old VCS gun uses anti-aliasing, meaning data is logged to neighbor segment weighted based on data point distance. This way it really works like knn (actually, more like range search), and by weight of attributes, I mean how many slices, since the more slice it has, the more it is sensitive to difference of that attribute. So my VCS weight is just analog to knn weight.
I also have an old multi-buffered VCS gun (no anti-alias), like what you guessed. This way attributes are weighted on both how many slices, and how often it appears.
Note that I always weight buffers equally. And buffers are normalized (so it feels like probability) before accumulating.