gametechmods
Robot Arena => Modifications => Topic started by: Clickbeetle on February 18, 2012, 11:41:55 PM
-
It's common knowledge that Flipper.py includes some code for detecting whether the opponent is upside down, and to stop firing the weapon if they are. However, this code is not very well implemented and usually fails. I figured it's about time somebody cleaned it up.
The NEW Flipper.py features some significant improvements:
- Improved immobility detection with customizable settings in Bindings.py: make your bot more or less sensitive to movement until it works just right.
- The AI will stop firing its flipper AND stop driving if its opponent is not moving. No more stupidly pushing the opponent around so they avoid being counted out!
- In a rumble, the AI will ignore bots that are not moving.
- Added support for a secondary popup weapon with NoChassisTime feature and an analog spinner control, so you can AI popups and VS's with Flipper.py.
- Added "Srimech" control for self-righting.
Could this possibly mean... that flippers can now be competitive in enclosed arenas??? :eek: That's what I'm hoping with this; we'll see how it works in practice.
UPDATE as of 6/9/2014:
- Reduced occurrence of "flipper staredowns" in flipper vs. flipper battles. They still happen, but not nearly as often.
- Added capability to set 'sweapons' in Bindings, and when these components break, to become invertible.
Download (Included in AI Essentials pack) (https://gametechmods.com/uploads/files/AIessentials.zip)
-
Clickbeetle...
Did I ever tell you that I FLIPPIN' LOVE YOU!?
-
Did I ever tell you that I FLIPPIN' LOVE YOU!?
(https://gametechmods.com/uploads/images/77007icwutudidthar.gif)
-
Did I ever tell you that I FLIPPIN' LOVE YOU!?
(https://gametechmods.com/uploads/images/10772laugh2.gif)
-
Did I ever tell you that I FLIPPIN' LOVE YOU!?
(https://gametechmods.com/uploads/images/77007icwutudidthar.gif)
Edit: Ninja'd
-
Stop spamming this thread !
Nice job click, there's just something... does the .py mechanism that stops the flipper detects forward speed, rotational speed or both ? I suppose it detects forward speed. If it doesn't detect rotational speed, then i can just enter a SnS against your flipper and be all :trollface .
-
This comes a few weeks to late. With this Spawn Again would`ve beaten Thor in Sonnys wikiwars 2 :p
very nice stuff. will check it out later. someone give this guy a reputation boost
-
does the .py mechanism that stops the flipper detects forward speed, rotational speed or both ?
IIRC it detects movement by checking the distance between the flipper and the opponent. So if the SnS doesn't use MeltyBrain, it won't flip.
-
Stop spamming this thread !
Nice job click, there's just something... does the .py mechanism that stops the flipper detects forward speed, rotational speed or both ? I suppose it detects forward speed. If it doesn't detect rotational speed, then i can just enter a SnS against your flipper and be all :trollface .
No, my flipper will be the one that's all :trollface as it waits safely out of range of your SnS until it begins to be counted out... at which point your SnS will have to move and the flipper will attack it while it's not spinning.
Also, the movement detection works by measuring how far the opponent moves in a certain time. The default settings are if the opponent doesn't move at least 1 meter in any direction in 3 seconds, to consider them immobile. These settings seem to work well in testing but they can be tweaked to preference in Bindings as well.
-
Geordi Smart.
-
This looks awesome! If it does the same stuff in VS mode, I think I may be using this in future :P
-
I will be using this for BoF2.
Thank you Click.
-
Stop spamming this thread !
Nice job click, there's just something... does the .py mechanism that stops the flipper detects forward speed, rotational speed or both ? I suppose it detects forward speed. If it doesn't detect rotational speed, then i can just enter a SnS against your flipper and be all :trollface .
No, my flipper will be the one that's all :trollface as it waits safely out of range of your SnS until it begins to be counted out... at which point your SnS will have to move and the flipper will attack it while it's not spinning.
Also, the movement detection works by measuring how far the opponent moves in a certain time. The default settings are if the opponent doesn't move at least 1 meter in any direction in 3 seconds, to consider them immobile. These settings seem to work well in testing but they can be tweaked to preference in Bindings as well.
And then I counter with a slow FBS.py ?
-
The flipper py detectes when an opponent is upside down so..
what happen if a flipper faces an Ultimate sacriface style bot?
-
The flipper py detectes when an opponent is upside down so..
what happen if a flipper faces an Ultimate sacriface style bot?
Sacrifice-style bots still move while inverted, so the flipper's still gonna do its job.
-
Well the new py has already claimed victims in BoF2, so I have to approve this :D Great job again Click.
-
That's awesome! Would it be possible to do for Omni and OmniMultiZone too?
-
That's awesome! Would it be possible to do for Omni and OmniMultiZone too?
No need really... the new Flipper.py can do anything Omni can do (except use rammer tactics; I'll add that if there's ever a need for it) and it has support for 2 smart zones.
-
That's awesome! Would it be possible to do for Omni and OmniMultiZone too?
No need really... the new Flipper.py can do anything Omni can do (except use rammer tactics; I'll add that if there's ever a need for it) and it has support for 2 smart zones.
I used New Fliper.py on emergency and it became idiot affter ripping all of its flipper because it used rammer tactics.
-
Get the new Tactics.py; it won't be an idiot then. ;)
Also, it should switch tactics regardless of which Flipper.py it is using. I didn't touch any of that code.
-
Click, Id just liek t say THANK YOU as you may have just saved Anti Gravity's life.
-
I don't know if I'm using this wrong, but I'm having a couple of problems with this PY.
First, in a four-way flipper melee, all the bots freeze up if one bot is flipped. True it's technically what they're supposed to do, but it doesn't look good in my videos, and sometimes gives a bot a chance to escape from being wedged.
Second, if a bot tries to self-right and doesn't hit the ground immediately, it fires the flipper again, and ends up un-righting.
Any help is appreciated.
-
Sorry for late reply, but:
I don't know how to fix the first problem. It seems this is an unforeseen and unavoidable side effect of the code I used. The only solution I can think of is to make another .py especially for 4-way flipper rumbles.
The second problem is easier to handle, I just need to add a customizable srimech time delay. I'll get on that.
-
First, in a four-way flipper melee, all the bots freeze up if one bot is flipped. True it's technically what they're supposed to do, but it doesn't look good in my videos, and sometimes gives a bot a chance to escape from being wedged.
did you tried ai'ing one bot with the regular flipper and the others with the new one ? it might give one bot a slight disadvantage, but it's worth a shot, just make sure to change the name of each one in its py to flipper and flipper1
-
Sorry for late reply, but:
I don't know how to fix the first problem. It seems this is an unforeseen and unavoidable side effect of the code I used. The only solution I can think of is to make another .py especially for 4-way flipper rumbles.
The second problem is easier to handle, I just need to add a customizable srimech time delay. I'll get on that.
Maybe adding a small bit that looks for the next attackable opponent? Or abuse the teams system and make Opponents flipped teammates as long as they are flipped?
-
MEGABUMP
I noticed some people grumbling about the new Flipper AI in the Battlebots 9 thread, and they had very valid complaints, so I did something about it.
In a nutshell, I greatly reduced the occurrence of "flipper staredowns" when you have more than one flipper in the arena.
The AI now keeps track of whether or not the opponent has entered its smart zone. If it hasn't, then the AI decides the opponent can't possibly be flipped, and therefore doesn't stop moving.
Furthermore, if the opponent HAS entered the smart zone, and then stopped moving (so the AI stops too), and then started moving again, the AI decides that the opponent is not flipped, and will wait until smart zone contact is made again before stopping again.
I also reduced the default sensitivity of the immobility detector (from 1 meter to 0.5 meters) so the AI won't stop as often. You can always change this in Bindings if needed.
Obvious improvements: Flippers will immediately start driving at the start of the match in flipper vs. flipper battles. Four-flipper rumbles never result in a four-way freeze.
I've updated the first page with the new download link, but here it is again for the lazy (http://beetlebros.gametechmods.com/files/AIessentials.zip). (Don't mind all those other .py's, they're just there for convenience.)
-
That is good, thank you Click !
-
Thanks for that update Click!