Difference between revisions of "Bullet Shadow/Correct"
Jump to navigation
Jump to search
(Initial commit) |
m (add to Innovations since 2005) |
||
Line 3: | Line 3: | ||
In [[BeepBoop/Understanding BeepBoop]], [[Kev]] mentioned that: | In [[BeepBoop/Understanding BeepBoop]], [[Kev]] mentioned that: | ||
<blockquote> | <blockquote> | ||
− | Bots I've looked at implement passive bullet shadowing something like this: | + | Bots I've looked at implement passive [[Bullet_Shadow | bullet shadowing]] something like this: |
− | + | # Iterate through various (''my_bullet'', ''enemy_wave'') pairs. These typically consist of a new enemy wave with all your current bullets or a new bullet with current enemy waves. | |
− | Iterate through various (my_bullet, enemy_wave) pairs. These typically consist of a new enemy wave with all your current bullets or a new bullet with current enemy waves. | + | # For each pair, iterate through various timesteps ''t'' when the bullet might intersect with the wave. |
− | For each pair, iterate through various timesteps t when the bullet might intersect with the wave. | + | # Add a shadow (if there is any) for the bullet at ''t'' and the wave at ''t'', found by determining where the line segment (''bullet_location_t'', ''bullet_location_t+1'') intersects the circles ''wave_t'' and ''wave_t+1''. |
− | Add a shadow (if there is any) for the bullet at t and the wave at t, found by determining where the line segment (bullet_location_t, bullet_location_t+1) intersects the circles wave_t and wave_t+1. | + | However, step 3 isn't quite right. Robocode checks for bullet collisions by iterating through bullets in a random order, updating the line segment for the current bullet, and then checking if it intersects any of the other bullet line segments. Depending on this random order, a bullet can collide with another bullet's "previous" line segment. This means the correct way of doing step 3 is really. |
− | However, step 3 isn't quite right. Robocode checks for bullet collisions by iterating through bullets in a random order, updating the line segment for the current bullet, and then checking if it intersects any of the other bullet line segments. Depending on this random order, a bullet can collide with another bullet's "previous" line segment. This means the correct way of doing step 3 is really. | + | <ol start="3"> |
− | + | <li>Add a shadow for the bullet at ''t'' and the wave at ''t''. Then add 50%-weighted shadows for the bullet at ''t'' and wave at ''t-1'' and for the bullet at ''t-1'' and wave at ''t''.</li> | |
− | Add a shadow for the bullet at t and the wave at t. Then add 50%-weighted shadows for the bullet at t and wave at t-1 and for the bullet at t-1 and wave at t. | + | </ol> |
</blockquote> | </blockquote> | ||
+ | Thanks [[Kev]] for pioneering correct bullet shadow in 1v1! I regard using correct bullet shadow as the next great thing in [[Innovations since 2005]]. |
Latest revision as of 06:09, 27 June 2021
This article is a stub. You can help RoboWiki by expanding it. |
In BeepBoop/Understanding BeepBoop, Kev mentioned that:
Bots I've looked at implement passive bullet shadowing something like this:
- Iterate through various (my_bullet, enemy_wave) pairs. These typically consist of a new enemy wave with all your current bullets or a new bullet with current enemy waves.
- For each pair, iterate through various timesteps t when the bullet might intersect with the wave.
- Add a shadow (if there is any) for the bullet at t and the wave at t, found by determining where the line segment (bullet_location_t, bullet_location_t+1) intersects the circles wave_t and wave_t+1.
However, step 3 isn't quite right. Robocode checks for bullet collisions by iterating through bullets in a random order, updating the line segment for the current bullet, and then checking if it intersects any of the other bullet line segments. Depending on this random order, a bullet can collide with another bullet's "previous" line segment. This means the correct way of doing step 3 is really.
- Add a shadow for the bullet at t and the wave at t. Then add 50%-weighted shadows for the bullet at t and wave at t-1 and for the bullet at t-1 and wave at t.
Thanks Kev for pioneering correct bullet shadow in 1v1! I regard using correct bullet shadow as the next great thing in Innovations since 2005.