Thread history
Time | User | Activity | Comment |
---|---|---|---|
No results |
If you hit the wall with speed <2.0 you get no wall damage. So the 4 (2) -> 0 shoot 1.0 example would result in an 1.0 energy drop. Same as if you hit the wall with speed 4 and no shooting.
For the inactivity thing - nope it is not to confuse wave detection it just messed with my bullet calculation. I guess i should not bring up 2 different things in one thread, sorry for that. Both things are just related to "Energy drop" and by now i want a almost 100% energy calculation.
I thought all collisions resulted in 0.6 damage. Combat would detect a 0.4 bullet being fired in the example above, and would react to the firing, although it should detect a wall collision with 1.0 damage. Sort of a Performance Enhancing Bug.
The energy drop is ambiguous and the real collision damage is anything between 0.0 and 1.0. Maybe dodging a "thick" wave representing bullet powers from 0.1 to 1.0 can account for this uncertainty. Similar to waves in melee where you don't know exactly in which tick the wave was fired due to gaps in radar scans. And taking extra care with gun heat tracking (maybe assuming the lowest case).
If you hit suddenly slowed before hitting the wall, Nene would assume it hit the wall and did not fire a bullet. Allowing you to get away with a free shot.
But I remind you that slamming into the wall may lower your own score (if you mess up). It also gives a huge and useful data spike and stops your robot. Which means may not work against the top bots very well. Since they are made to capitalize on that. After hitting a wall your avenue of escape is much smaller.
As I have shown with Nene very well, movement trumps targeting. You can hit the top 10 with a gun from 2004 (even if said gun from 2004 was the best from that time).
@MN: check out http://robowiki.net/wiki/Robocode/Game_Physics#Collisions
@Wompi: I detect accelerating/decelerating bots, except when they only do it that last tick before hitting the wall, like your example. That's why I said it is not 100% proof.
As for the inactivity timer, a top bot would not have that situation often. Usually they fire until 0.1 energy left, and then just keep moving. When inactivity timer kicks in, the battle is immediately over. To counter that, you could move closer or even ram the opponent when it stops firing.
Just out curiosity, what is the purpose of keeping track of your own energy? I can't think of anything useful for me.
Tracking your own energy helps detect inactivity damage kicking in. If the opponents energy drops 0.1, it could be due to inactivity or due to a 0.1 power bullet being fired. You can't be sure. But if your own energy drops 0.1 and you didn't shoot, it should be due to inactivity.
Not tracking inactivity damage results in a bunch of false 0.1 power waves being detected at end game. Usually not an issue, but having highly accurate wave detection is cool.
Remembered one case where inactivity damage is a big issue. Reference bots of targeting challenges don't shoot and always outlast candidates with inactivity damage. If they wrongly detect 0.1 power waves, it introduces a lot of noise in their wave histories and makes dodging weaker.
Yes, i'm using a range based calculation for the wall hits right now. The damage range is always 0 to -1.0 or 0 to +0.5 related to the last detected velocity. It makes the enemy gun heat calculation quite difficult.
If you combine the forced wall hit damage with some sort of chase bullet gun it would provide a quite challenging wave pattern, i guess.
And like i said above it is just an experimental movement, nothing to beat a certain bot. I would be happy if i can trick some wave surfer bots a little. To make it fully competitive it would need way more thoughts about it. Mostly i learn some new things while getting along with these experiments and that is the most fun for me.
Actually being predictable is not necessarily a bad thing. For example if you want to use a bullet catcher system to drain the enemy energy to a certain level. On the other hand you can move along the wall and if you time the wall hit, lets say, right after the enemy shoots, you got 10 to 16 + bulletTicks turns to find a better spot or dodge the bullet.
Yes, inactivity is probably nothing to worry about for top bots. But there are some bots out there who shoot always <1.0 bullets and dodging those bots to a certain energy level can take some time.
I'm tracking my energy most of the time for statistics like damage taken, bullets shot, wall damage and i have a energy slop system for me and the enemy to pick my right bullet power. Or better - if he/me looses energy based on his current slop which turn would he be at zero energy.