Robo Home | Changes | Preferences | AllPages

I've been looking for ways lately to speed up testing and tweaking movement, and the idea of VirtualMovement just occured to me. I don't know if it would be feasible or not, but it seemed like an interesting concept. Basically, what you could do is to create a team of two bots. One bot is the one who's movement you are testing. The other is a bot with for example, a PatternMatcher, a StatisticalGun? or what not. The two bots can battle like usual even though they are teammates. And the reason for them being in a team is so the targetting bot can send x, y coordinates of a bullet or a virtual bullet to the movement bot. This, of course, doesn't have any direct use since you can't do the same in normal battle but it could allow you to test algorithms more efficiently because the bot would actually know whether or not a different movment would've hit a bot. I haven't tried this, but it seems like it might work. Let me know if it doesn't. -- Alcatraz

I think the reason you couldn't do VirtualMovement is not just that you can't know what would happen if you were somewhere else, but because if you moved differently, your opponent would probably fire differently. But I agree that testing and tweaking movement is a pain in the butt. -- Kawigi

i was thinking of virtual movement as a way to quicken the learning for movement. for instance, normally, in adaptive/multi mode movement, if you get hit while using one type of movement, you change your statistics that influence which movement you use in the future. as with the origonal guess factor targeting without virtual bullets or waves, this learning process is very slow. it could be sped up the same way virtual bullets or waves are used for speeding up targeting learning. if you can keep track of where the enemy is firing, and keep stats on that,you can guess how the enemy is targeting. that way,you can check to see if you had moved in different ways,if you would have been hit or not. with the advent of wave surfing and whatnot,i don't think this will be used. it's just some random idea i had.--andrew

Huh? GF targeting is impossible without either VBs or waves. I think SandboxLump was the first GF bot, and that used (and invented, IIRC) Virtual Bullets. (Waves were an obvious extension of that, which multiple people independantly invented) I think what you are saying has been done using EnemyWaves. The problem is, you can only tell where a robot fired if you get hit, which seriously limits your data. One of the simplist AdaptiveMovements is just to avoid the GF where you were last hit. -- Tango

GF targeting isn't impossible without VBs or waves. If you read Pauls GuessFactor page you'll find that he talks about his frustration with the slow learning of GuessFactor targeting and how that led to the development of VirtualBullets. --David Alves

True, you can use real bullets, but it would be so slow, it wouldn't really be working at all... -- Tango

However, that's also basically what a lot of early guns were, like mld.Butterfly (f.k.a. UltimateDeathToNanoBots). Against a more "flat" movement, however, it's down to just luck. -- Kawigi

i didn't explain what i was trying to. if you have a couple different movement types you culd use,for instance, or different amounts of time you switch direction. when you get hit with a real bullet, you could check to see how your other movement strategies would have worked (if you would have been hit or not). --andrew

The rest of virtual movement would have to be knowing if the other movement strategies would have been hit when you didn't. -- Kawigi

If you take a close look at Nemo/Source you'll find you can expand on that to do your GFs without anything like a VB or wave present. -- Kuuran

And you can use real bullets without it being much slower then firing waves every tick. A wave and a real bullet are very similar. -- PEZ

Slow as in learning speed, not execution speed... -- Tango

Yeah, that's what I mean. -- PEZ

I'm not sure how far I'll pursue this idea, so I'll just share it here. It's far from a complete "virtual movement" system, but it's along those lines... What I'm thinking is that you could keep several sets of stat arrays up to date with your WaveSurfing data, and whenever you are hit, check how that spot would have ranked in each set. The one that gives the best success rate would be the one you actually surf on. I suspect the one you are actually surfing would get bad ratings, because you are likely to be in a spot that it says is "safe" when you get hit. (Early tests confirm this.) But, since they're all using the same base data, the idea might have merit. -- Voidious

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited March 15, 2006 18:17 EST by Voidious (diff)