Comparing Results Between Shielders

Jump to navigation Jump to search

Comparing Results Between Shielders

So as I was putting together my own bullet-shielding-only robot Spitfire, it occurred to me there are a few instances we need to think about if we want to compare performance between shielders. 1) When opponent is at low energy. 2) When opponent is too close. 3) Any other scenario where the robot developer may be tempted to do something other than shielding for special situations.

For mine, I currently try to shield right up until the opponent runs out of energy. If opponent stops firing before running out of energy, I don't fire either. The one time I do fire first is when the opponent is disabled and there are no more opponent waves in play. I never move, accept for a little step out and back in when firing. If opponent is too close for my shielding, I just get hit.

Skotty20:08, 19 February 2013
Edited by 2 users.
Last edit: 03:43, 21 February 2013
Shielding Robot APS Survival Pairs Won Specialization Notes
jk.precise.EnergyDome 1.1 56.24 63.19 58.6% 20,957
jk.precise.EnergyDome 1.5 58.78 65.73 61.3% 24,095
rsim.micro.uCatcher 0.1 30.65 41.41 27.8% 8,620
rsim.mini.BulletCatcher 0.4 67.02 78.06 82.5% 4,043 (1)
xander.cat.Spitfire 1.0 32.31 43.41 33.3% 18,109 (2)
xander.cat.Spitfire 1.1 40.08 50.16 42.3% 22,313
wiki.BasicBulletShielder 1.0 19.08 28.11 14.7% 7,419

Notes:

  1. Has light-weight second mode that takes over when shielding fails or when opponent is low energy.
  2. A bit handicapped by slow firing response. Only fires first when opponent disabled and no active waves in play.
Skotty20:37, 19 February 2013

Whoops! Thanks Chase. I didn't realize BasicBulletShielder was in the rumble already.

Skotty20:49, 19 February 2013
 

No problem. The one I made is definitely the bottom of the pack. But I had only decided to make a very simple to show how its done to others. It only fires when the enemy is disabled.

The only way I think I can improve it thought, is to profile what kind of shot the enemy is firing and adjusting to it.

Chase20:51, 19 February 2013
 

Yup, EnergyDome uses a VG to match which type of HOT/GF0 calculation they are doing, and also keeps an offset tally in case they consistently shoot slightly to the side. I've actually considered going all out and using a Kd-Tree to try to predict how much offset they will shoot with, but I'm a bit scared as to what the results might be :-p

It also doesn't run away under any circumstances, and is very careful to stay at GF0 for the ramming kill.

Skilgannon21:27, 19 February 2013

When I first experimented with Bullet Shielding, what I was trying to achieve was a rammer which closed in using shielding and 0.1 powered bullets, and switched to power 3 bullets at point blank range.

Attack with movement and defend with targeting. The opposite of the Wave Surfing/GuessFactor combination.

But it was so hard to predict where incoming bullets were heading I gave up. Until you showed that competitive Bullet Shielding is possible.

MN21:58, 19 February 2013

The trick is to give them a really easy target that makes their targeting predictable. Ramming has a big spike somewhere around GF0, but if they start moving laterally and you follow them you aren't at exactly GF0 any more for the waves that hit you, so who knows where they will shoot.

Skilgannon09:23, 20 February 2013
 

If the opponent uses only real waves, then you can try to plot a course where waves always hit at GF0.

If virtual waves are used, it gets trickier. You have to guess with which bullet power virtual waves are being fired. That could be estimated by analysing onHitByBullet and onBulletHitBullet events.

If other targeting strategy, like pattern matching, is being used, then it could also be estimated with onHitByBullet and onBulletHitBullet events.

If multiple bullet powers are used at the same time, then staying still seems a better alternative than ramming, as all deterministic strategies converge to head-on targeting. Who would guess SittingDuck movement is a viable strategy?

MN15:11, 20 February 2013
 

And combine it with MaxRisk? :)

Chase23:46, 19 February 2013

Surpass MaxRisk.

And then, maybe squeeze the code into the smallest codesize class as possible.

MN02:23, 20 February 2013

I doubt you would be able to get any smaller than a minibot. But it sounds like it could be very successful. Good luck.

Sheldor14:58, 20 February 2013
 
 
 
 

Another note: If shielding is integrated into another robot, the best system isn't necessarily the one that would produce the best bullet-shielding-only score, but rather the one that, against it's opponents, either works really well or fails miserably. It's problematic if it produces a lot of ~90 scores, as there is no good way to know if this is better than your normal drive and gun.

Skotty20:43, 19 February 2013

Why not just compare the version with shielding to the version without shielding?

Sheldor15:01, 20 February 2013

Different bots might gain different amounts from shielding based on what they got against susceptible bots in the first place. Since it can be tough to integrate a different person's shielding into your bot, this way we can compare shielding effectiveness without doing a ton of integration work.

Skilgannon16:26, 20 February 2013
 
 

I think perhaps a better measure of how useful they would be when integrated into a bot is 'percentage of pairings above x%', where x is somewhere between 95 and 98. Thoughts?

Skilgannon12:50, 20 February 2013