Talk:Movement Weaknesses

From Robowiki
Revision as of 15:33, 24 May 2009 by CrazyBassoonist (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

"Bots that orbit an enemy without closing distance or that run away at orbit."
"Bots that dodge based on a timing pattern instead of enemy energy drop."

I argued. Ocnirp does orbit without any distance controlling, and at about exactly same pattern. It reverse its direction when:

  1. Math.random() exceed 0.92 (I have test with 0.6, 0.8, 0.85, 0.88, 0.9, 0.92, 0.95, 0.99 and 0.92 work best)
  2. Hit wall.
  3. Enemy fire

... and it still stayed at #16 (first release is at #13, but later pushed down by several HUNRobar's bots) According to my test, this movement style dodge StatistBot better than Waylander/Toorkild flattener. » Nat | Talk » 15:21, 22 May 2009 (UTC)

Hmm. Does StatistBot segment on distance? And have you compared when segmenting on velocity? Using 0.92 would work for a certain distance, but closer than that and you will have a spike at GF1, and further than that and you will have a spike at GF0. --Skilgannon 18:07, 22 May 2009 (UTC)

StatistBot has only rough distance segmentation. » Nat | Talk » 15:56, 23 May 2009 (UTC)

your 3rd assertion, dodge on enemy fire means you are not dodging based on a fixed interval, which is weak. Adding .92 random makes your intervals very difficult to PM, making the movement even stronger. On orbit without closing range - watch your bot when it starts towards a corner. It will quite often corner death (hit wall, reverse, hit wall, ... die) because it isn't moving towards the enemy (and away from the walls). Bots the retreat will do this even more often.

The other half of my idea is I have done bots that reverse every say 16 ticks - the time it takes for a 3.0 power bullet to respawn. Works great for the first 10% of the fight, but gets ineffective quickly, and gets destroyed by 2.5 fire bots which take only 15 ticks to respawn. --Miked0801 22:13, 22 May 2009 (UTC)

Unrelated, but I'm curious. When did you figure out 2.5 fire power? This seem to be used a lot among top nanobots.I'd say, if we are talking only about top nanobot author, that NZ would get it first, then Robar, then me, then you. I don't think neither you, Robar, NZ nor me get this ideas from the other, as I test several fire power and this one seem to work best. And I later know that if we score each firepowers base on energy loss, energy gain, damage, time to recharge and velocity, 2.5 will get the highest. » Nat | Talk » 15:56, 23 May 2009 (UTC)
2.5 costs 1 more byte than 2 or 3, which is lame, but it takes 1 tic less to reload, saves a little energy, and exploits a few bots that have a major, major movement weakness against the timing of this shot. FretNano would be a juggernaught if not for it's 2.5 firepower bug. --Miked0801 00:48, 24 May 2009 (UTC)
This is just a thought. Why would 16 ticks need to be hard-coded? Why not use something like this:
 public void onHitByBullet(HitByBulletEvent e) {
     double power = e.getPower();
     if(power >= 2.6) { movementTickMultiplier = 16; }
     else if(power >= 2.1) { movementTickMultiplier = 15; }
     etc...

--HACKhalo2 19:36, 23 May 2009 (UTC)

You are right, that would be better normally. However, in a nanobot it's more code size effective to just use a value like 16--CrazyBassoonist 19:54, 23 May 2009 (UTC)

Yep, your code is very, very byte expensive. A shortcut is to jsut assign a value a pray. --Miked0801 00:44, 24 May 2009 (UTC)

Just wondering..... Is there anyone on this wiki right now that is good at making nano-sized melee movements?--CrazyBassoonist 20:22, 23 May 2009 (UTC)

Rule #1, get out of the center. After that, there are 3 camps in nano melee right now:
  1. Move in a simple to code, repeating pattern that mostly avoids head on aim shots. Infinity, Lib, wee.gem, & KomoriNinja are good examples - so is sample.spinbot for that matter. Bots that can guarentee they do this in a corner do even beter such as lib and meleeseed.
  2. Aggresive movement with decent aim. DoctorBob is killer at this - probably the best in nano melee.
  3. Anti-grav. DustBunny and Graviton are the two that come to mind. This movement is why Dustbunny is as high up as it is.

Of course, radar and power management are equally important in melee which is why Infinity does so well. --Miked0801 00:44, 24 May 2009 (UTC)

Okay, I was just wondering because It seems like an interesting field and it looks like there hasn't been that much done with it for a while now. I think I might try making a bot. Thanks--CrazyBassoonist 13:33, 24 May 2009 (UTC)

Not sure the scope of "right now", but Miked0801 certainly is (#2 and #3 in NanoMeleeRumble). I also saw Simonton around a few weeks ago, but he hasn't been actively Robocoding for a while. --Voidious 20:35, 23 May 2009 (UTC)