Melee Gun Thrashing

Jump to navigation Jump to search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Users.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page.

Return to Thread:Talk:Neuromancer/Melee Gun Thrashing/reply (7).

Thank you for the info - I often wonder how other people test their bots =) I know I did a similar technique for 1v1, I test a lot with DoctorBob to get my surfing right, as well as RaikoMicro for my stats systems. It seems to have worked well there =)

However, you have the ways I check for targeting error wrong. The first way (1.9) aims, then checks if the gun is within 40/distance. If so, we fire. The other way (2.0) checks if gunTurnRemaining() is 0, sets gun to fire, THEN aims. So, the second way will fire more than the first way even though it is checking for 0 instead.

Skilgannon16:00, 3 September 2012
 

Uhh mate stop confusing me :) .. i thought i figured it out and would never think about it ever again :)

The way you describe it was how i was understanding it.

1.9: gun heat has to be zero
calculate angle
check angle (if you check here against zero it almost never shoots, but with 40/distance it will shoot)
fire
next turn: bullet is on its way

2.0: gun heat has to be zero
check angle (zero)
fire
calculate angle
next turn: bullet is on its way

So both versions are the same, they shoot one tick after the gun heat is zero. But 1.9 has the advantage of shooting in cases where the gun is almost pointed to the target where 2.0 has to wait one more turn. If both versions are already pointed to the target then there is no difference. Thats how i understand it and therefor it looks to me that the first one shoots more often and the second one is more precise. Am i wrong with this? Man this stuff really confuses me :)

Wompi18:00, 3 September 2012
 

Hopefully I won't confuse this further, but I think the two options are:

  • Style 1:
    • if (gunTurnRemaining() == 0) then fire()
    • re-aim (won't effect angle used in fire())
  • Style 2:
    • re-aim
    • if (gunTurnRemaining() < 40 / distance) then fire()

So the first option just sees if your aim from last tick has completed, fires, and then continues re-aiming for next tick (which won't affect this tick's firing angle). The second option requires that the firing angle remains somewhat stable from last tick to this tick. It's also sort of the case that the first option is aiming 1 tick further into the future, since the second option will hold off firing if the aimed firing angle doesn't line up with the next tick's firing angle. FWIW I used to do Style 2 (Dookious, early Diamond, but with 18 / distance) and now use Style 1 in Diamond.

Voidious18:47, 3 September 2012

Style 1 makes it a lot easier to deal with firing pitfall.

MN18:53, 3 September 2012
 

Sorry, I guess maybe that was clear already. The reason the zero check thrashes less is that it only requires that the last gun turn was <= 20 degrees, while "re-aim and check within threshold" requires that the firing angle somewhat lines up two ticks in a row. (Though 40 / distance is a pretty big threshold, too - I always used 18 / distance.) And while the zero check is more precise, it's also in a sense projecting one tick further in to the future, since the other one is effectively aiming one tick later (by vetoing if the current gun heading isn't close to how we'd aim this tick).

Voidious18:56, 3 September 2012