It uses a variation of AntiGravityMovement. The enemy robot exerts and attractive or repulsive force on RabidWombat, depending on how far away it is, in order to maintain a particular distance from the enemy. (It's pretty much working on [Hooke's law].) That distance grows if RabidWombat is losing and shrinks if it's winning, so that it'll run away or close in for the kill as appropriate. Walls exert a repulsive force. Bullet dodging is done with force vectors as well. |
It uses a variation of AntiGravityMovement. The enemy robot exerts an attractive or repulsive force on RabidWombat, depending on how far away it is, in order to maintain a particular distance from the enemy. (It's pretty much working on [Hooke's law].) That distance grows if RabidWombat is losing and shrinks if it's winning, so that it'll run away or close in for the kill as appropriate. Walls exert a repulsive force. Bullet dodging is done with force vectors as well. |
It has a virtual gun array containing (currently) a head-on targeting gun, a LinearTargeting gun, a CircularTargeting gun and a GuessFactorGun. (I suppose the LinearTargeting gun is probably redundant.) It fires Waves and VirtualBullets every turn and fires the real bullets with the best gun. Stats decay over time so that it will adapt more readily to changes in enemy behavior. I might add a PatternMatching gun to the array, but if I did I'd probably have to change things around a bit. Currently, all my guns pretend to fire every turn, which from what I understand would be pretty slow for a PatternMatching gun. |
It has a virtual gun array containing (currently) a head-on targeting gun, a LinearTargeting gun, a CircularTargeting gun and a GuessFactorGun. (I suppose the LinearTargeting gun is probably redundant.) It fires Waves (for GuessFactorTargeting) and VirtualBullets (for tracking the success of the various guns) every turn and fires the real bullets with the best gun. Stats decay over time so that it will adapt more readily to changes in enemy behavior. I might add a PatternMatching gun to the array, but if I did I'd probably have to change things around a bit. Currently, all my guns pretend to fire every turn, which from what I understand would be pretty slow for a PatternMatching gun. |
Currently, it saves gun accuracy, guess factor and energy stats between rounds and nothing between matches. I intend to save data between matches eventually. |
Currently, it saves gun accuracy, guess factor and energy stats between rounds and nothing between matches. I'm currently working on a testing harness that will allow me to see how tweaks affect a number of performance metrics not reported by the RobocodeResults? class. |
* Finish tweaking and testing harness |
* Save data between battles |
|
|
ACtually the first robot I downloaded was Dustbunny and RaikoMX, and I attempted to beat MX with a chopped version of dustbunnies anti-gravity. Good times.. --Chase-san |
ACtually the first robot I downloaded was Dustbunny and RaikoMX, and I attempted to beat MX with a chopped version of dustbunnies anti-gravity. Good times.. --Chase-san Hmm, this actually sounds like an interesting topic for its own page... I'm thinking WorthyOpponents... --RobertWalker |
Segment your GF gun on LateralVelocity, and the linear gun will be redundant. Also segment it on change in enemy's heading, and circular targeting will be redundant (though I'm not sure whether that one would be useful). -- Simonton
For a GF-gun to replace CircularTargeting, you need both heading and change of heading. As alternative also LateralVelocity and AdvancingVelocity could be used. I still have to see a GF-gun though with more than 75% hitrate against SpinBot. CircularTargeting does in most cases make the LinearTargeting obsolete, as the hitrate against f.e. Walls would be the same for both methods. -- GrubbmGait
True dat. -- Simonton
You'd also need bullet time (and a very fine grained one, at that) for either combination, but the strength of GuessFactorTargeting doesn't lie in getting high hit rates against SpinBot =) -- Voidious
True dat, too.
In general, I think dodging your own guns will give you what seems like a pretty powerful RandomMovement, but not the same level of true bullet dodging as WaveSurfing with PrecisePrediction. If you're going to the trouble of simulating guns and dodging them, it doesn't seem like much of a step up to just do true WaveSurfing, where you use onHitByBullet to update the data in the gun you're dodging instead of just simulating how you'd make it learn. But I think you'll find that you learn a lot trying to implement the fresh ideas you come up with yourself, so I say go for it and let us know how it works out ;) -- Voidious
See Vyper, Thorn, and GrubbmGrb for examples of how good a non-surfing dodging system can perform. I hope you find the WaveSurfing Tutorial useful; I'm sure it could be improved, so please do give feedback on it. As for more advanced surfing systems that you might be able to learn from, I'd recommend Dookious (of course =)), CassiusClay, and Chalk as great OpenSource surfers with clean code. Kev's WaveSerpent, Alcatraz's Cyanide, and David Alves' PhoenixOS? are probably good references, too, but I can't vouch for them as much just because I haven't looked at them as much. -- Voidious
Most of the bigger ones, ergo the ones listed above can be confusing, misleading, badly formatted, or are just confusing. Thought koduos to PhoenixOS? and Chalk. Dookious is just to big in my opinion for someone just starting into it to try and make out. My suggestion however is GresSuffurd as its structure is simple, and at the same time, it models closely to the tutorial bot, making it easier to understand. --Chase-san
PhoenixOS? isn't bad. One of these days I might even go through and comment it. =) --David Alves
Before I go delving into those, I should probably mention that RabidWombat uses AntiGravityMovement. So do any of the above-mentioned bots also use AntiGravityMovement? Has anyone done OneOnOne bots with AntiGravity bullet dodging? -- RobertWalker
ACtually the first robot I downloaded was Dustbunny and RaikoMX, and I attempted to beat MX with a chopped version of dustbunnies anti-gravity. Good times.. --Chase-san
Hmm, this actually sounds like an interesting topic for its own page... I'm thinking WorthyOpponents... --RobertWalker