An advantage of this movement is that you can make movement adjusting decision much more often. For instance if you should move closer or further from the enemy you needn't wait for the bot to finish a long travel before acting on this.
One more advantage is that this opens up a possibility for you to know your bots FuturePosition since it's very probable that time is one of the parameters you use in the angle generator. Then you could ask your angle generator to reveal your bots position at a given time. I will consider this technique for Marshmallow 2 since it's AntiMirrorTargeting gun really could have use for that info.
There are other possible generators that could be used for the same purpose of course. Like a DestinationGenerator? or a whatever.
-- PEZ
Wow... I don't understand this concept at all. What is the purpose of this virtual point? How do you check the relative angle of the virtual point? What does steering your bot there accomplish? How do you know in which direction you move the virtual point? I'm confused... -- Vuen
As long as you have points on yourself, your enemy and this virtual point it's easy to calculate any angles and dictances you need. You know where to move the virtual point the same way you know where to move your robot when not using this type of generator. Then your bot can chase the virtual point with movement orders every tick. It's good for your wall avoidance as well. I got rid of many of Marshmallows' wall hits by using a similar technique. Another thing accomplished this way is like I stated above that you can do distance adjustments and such much more often which makes for a really smooth and responsive movement. Please ask again if I'm still just confusing you here.-- PEZ
Oh man... I'm still confused out of my brain on this one... Why is there a virtual point? Is it simply like a waypoint destination type thing? Why is it moving perpendicular to the enemy? -- Vuen
The virtual point is where the angle generator gets its information. Look, it's probably just me telling about it in the wrong way to beging with. It's rather simple really. Let's suppose you have a movement where you move perpendicular to your enemy. Now when you make a movement descision, instead of sending your bot directly to it's destination you send this virtual bot. Each tick you need to update the position of this virtual bot and send your bot there. -- PEZ