Distance vs BFT?

Jump to navigation Jump to search

Distance vs BFT?

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.)

Xor (talk)17:09, 18 October 2017

Out of bullet power (1), distance (2) and BFT (3), you need two of them because the third one can be deduced. For example, if you have bullet power and distance (1 & 2) then BFT (3) can be calculated from those. The same applies if you choose (1 & 3) or (2 & 3). So it doesn't matter that much which ones you choose, and using all three of them doesn't add any information... at least that's my theory :D

At the moment, Firestarter uses bullet power and distance. I tested adding BFT and removing distance or using both of them and I couldn't really find a big difference.

Cb (talk)19:24, 18 October 2017

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.

Beaming (talk)02:54, 19 October 2017
 

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.

Xor (talk)03:29, 19 October 2017
 

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.

GrubbmGait (talk)00:54, 19 October 2017

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.

Xor (talk)03:40, 19 October 2017

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.

GrubbmGait (talk)07:16, 19 October 2017

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.

Xor (talk)09:37, 19 October 2017