I don't understand why this makes it 1D. Just because you are staying in the same place relative to the other bot doesn't stop the other bot moving left to right, or right to left. Just because you are following that movement doesn't make your bullets do the same. -- Tango

- This targeting paradigm is as much about movement as it is about Targeting. What VertiLeach tries to do is remain at a constant distance from you. If he is successful doing so (mirroring on the X axis), then he has eliminated his need to concern hiself with any changes in distance and concentrates on your movement up and down (on the Y axis). In other words, he only has to worry about your movement in one dimmension when he is figuring GuessFactors for targeting. It works especially well against bots that try to base their movement on their distance / relationship to VertiLeach. If you want to see it used with devestating effect, run VertiLeach against Jekyl. Much to my chagrin, Jekyl has huge problems with this type of movement / targeting. -- jim
- I don't quite follow your question, Tango. The right/left axis is the one dimension I am talking about. Jim, I removed the "Statistical" prefix before Targeting in your post because it is just as applicable to PatternMatching, NeuralTargeting and other techniques. -- PEZ
- Ah! I just reread the explanation, and i see where i misunderstood. It's not the targetting that's 1D, it's the segmentation. My mistake. -- Tango
- Targeting generally means the strategies and techniques used to predict your enemy's future location. The prediction is always at least 2D of course. Whoa! I just imagined a 3D Robocode with helicopters or something. That would be truly hard to master. =) -- PEZ
- People have suggested it in the past, IIRC... or at least, 3D guns, so you have to fire at an angle, and get the trajectory just right... not sure its in the spirit of robocode, where simplicity is usually the best route... -- Tango
- Not what I meant. I mean the same imaginary physics, just with a third dimension. And I'm not suggesting we should develop such a beast. =) My mind just boggles thinking about it. -- PEZ
- The biggest problem with adding a 3rd dimension would be gravity. Imagine the extra leagues, ZeroGee?, HighGee?, LowGee?... as you say, the mind boggles. -- Tango
- There was no gravity in the 3DRobocode? I thought about. As there is little inertia and no friction and no whatever in current Robocode. Just a third dimension, we could use the same inertia for the bots as in the 2D version. -- PEZ
- In that case, it would be practically impossible to hit anyone. The chance of a collision decreases exponentially with each dimension added, if i remember my maths correctly. In 1D it is almost certain to colide, the only time you won't is with exactly matching velocities, or going in different directions (but with robocodes walls, direction is irrelevent). In 2D it is hard to hit bots without some kind of logic (even head-on targetting is a kind of logic), but isn't that hard. In 3D truely RandomTargeting would get next to a 0% hit rate. With better targeting systems it might get up to 5% if someone comes up with some brilliant ideas. I would be very impressed if it got any higher (assuming a reasonable movement system, of course. SittingDuck will still be as easy to hit). -- Tango

---

PEZ wrote: "Targeting generally means the strategies and techniques used to predict your enemy's future location. The prediction is always at least 2D of course."

Not sure I agree with this statement. Imo, the genius of gessFactor targeting is exactly the reduction of the prediction to 1D. A pattern matcher will guess a future xy position, a guessFactor gun simplifies it to an angle, making statistical analysis much simpler. That is exactly what inspired me to make TronsGun. I get 50 possible 2D paths, but then I reduce them to hit angles (1D), making it much easier to find "spikes".

What would force the use of true 2D targeting, and maybe even make pattern matchers rule over guessFactors, would be the introduction of "ranged guns" with a firing distance (cannon elevation) and possibly a blast radius. You would use setFire(power,distance) and the bullet would "fly" over any bots without touching them, only inflicting damage when it hit the ground. I remember Mathew Nelson saying he was planning it for RC2. -- ABC

I wouldn't tribute that to guess factors. Prediction is always about gun heading, which I would say is a 2D vector. But let's not split hairs like that. What this page is about is reducing your view of the world in a way that makes you know very much from very little data. VertiLeach only considers Y coordinates of its enemy when targeting. Yet it "knows" when you're close to a wall or not and if you're aproaching the wall or going away from it. You can see this in Verti's details sheet. Many of its ProblemBots are good wall movers, like DT, Tron, PrairieWolf... And many of the bots it performs really good against are wall bouncers. Maybe this should rather be called ReducedDimensionalSegmentation ... I can rename the page again I guess. =) -- PEZ

A future position is 2D (x,y), a gun heading is 1D (angle), a guess factor is 1D (%maxAngle). With a guess factor gun you don't care about where the enemy is going to be when your bullet hits him, just that it hits him... imo it has nothing to do with segmentation. Segmentation is a way of detecting the current enemy "state" (a form of pattern matching, actually). If we had true 2d targeting, I believe guess factors would not be so effective (I know Paul would prove me wrong, though ;)), you would have to have 2D statistics, 2D zones instead of 1D intervals, (angle,distance). It is allready very hard to find the statistical mode of a 1D continuous variable (most visited angle), it would be twice as hard in a 2D plane. I think the description of chameleon's gun was something closer to a "true" 2D statistical targeting, iirc. -- ABC

Yeah, now that I think about it, you're right about guess factors being less powerful; I didn't think so at first, but movement would be very different in a 2D gunning mode. Lateral movement would be just as important as perpendicular movement, while currently most bots simply ignore lateral movement. Distance would have to be one of your primary axis along with angle; you can't simply pick the current state of the enemy including distance through your secondary segments, and pull out that 1D strip at that segment and pick the peak angle; you'd have to pull off the entire plane at the enemy's current state excluding distance, and then pick the peak on that entire plane and shoot at the given angle and distance. The added dimension reduces your odds of hitting to approximately the square root of the probability in 1D. Most pattern matchers would not lose nearly as much chance of hitting, because they are already built to match patterns in the enemy's advancing velocity. GuessFactorTargeting in 2D would seem to be far less accurate than a pattern matcher gun. -- Vuen

Exactly, guess factors would have to be reinvented as guess *vectors*, but pattern matchers would still work. -- ABC