Difference between revisions of "Aral"

From Robowiki
Jump to navigation Jump to search
m
m
 
Line 1: Line 1:
 
==Info==
 
==Info==
 
; Bot Name
 
; Bot Name
: Aral, AralR
+
: AralT, AralR
  
 
; Author
 
; Author
 
: [[User:Nz.jdc|Nz.jdc]]
 
: [[User:Nz.jdc|Nz.jdc]]
  
'''Aral''' (adaptive rolling average linear)<br />
+
'''AralT''' (adaptive rolling average linear)<br />
 
<br />
 
<br />
 
Another hopefully innovative nano gun.<br />
 
Another hopefully innovative nano gun.<br />

Latest revision as of 11:33, 2 June 2013

Info

Bot Name
AralT, AralR
Author
Nz.jdc

AralT (adaptive rolling average linear)

Another hopefully innovative nano gun.

It uses the rolling average of absolute linear velocity feeding into linear targeting, which hits orbit and stop/go movement well.
Some additional time-since-direction-change logic to detect and adapt to oscillating movement (generally a hard counter to linear targeting) so it gets decent hits against bullet dodge oscillation.

Wave surfing, random movement or non-bullet-reacting oscillation is a problem for the oscillate detection, so it is slightly fudged using some variation (T_GF_OSCx, T_GF_0 etc) in the table lookup, which would otherwise just be T_GF_OSC for the first 20 ticks then T_GF_1.



Movement is semi stop and go, but using a clever direction change idea from dft.Freddie by Alcatraz271. This was originally the same movement used in NeophytePattern, NeophyteSRAL and NeophytePRAL, but has now been upgraded to the new "Adept" style movement.

AralR

The story of AralR is a bit of a cautionary tale for nanobot authors. When I wrote Aral I though the idea was pretty cool and expected it to be quite effective. In testing however I soon discovered that while it hit stop and go, orbit and bullet-dodge-oscillating movement types as intended, it was very weak against random. In the end I had to fudge the osc and linear targeting offsets in the table a bit so that it would not completely fail against random movers.

That of course lead me to wonder what a similar bot which just used random determination for it's offsets would work (rather than something 'smart' like time since direction change or a lateral velocity rolling average).

I had hoped taking that out would save enough space for some ramming code, but in the end all I could fir was a bit of bullet power management. Despite that Aral's dumb brother AralR is currently ranked 3 places higher :-/

The moral of this story is that while being smart is good, being a little bit smart is often worse then just being dumb or random. And obviously in a nanobot you usually only have enough space to be a 'little bit' smart, so you have have to choose that 'little bit' very carefully.