Geomancy/Version History

From Robowiki
< Geomancy
Revision as of 21:45, 17 March 2010 by Synapse (talk | contribs) (Time to get out Eclipse again!)
Jump to navigation Jump to search

Pages: Main page · Code · Version History · Discussion

Versions

15 - ? - Return to Robocode
Restored adaptive bullet power.
Changed fudge factor to be much less dramatic.
Tested against top problembots from versions 13 and 14 with encouraging results.
14 - G1892.8 - Big bullets and patience
Added default negative fudge factor of 0.9 to all axes, so that additional axes are only present in the selected segmentation if they're helping.
Increased gun bin smoothing factor to roughly double the previous amount.
Added condition to firing - selected best segment must be above a certain crest factor. If the best segment is too flat, wait for a better opportunity rather than wasting energy.
Changed bullet power to 3.
Notes: this was quite effective against a some opponents, but overall ended up hurting my score against opponents with very inconsistent movement, since I was holding my fire too much. A better approach is to fire fast bullets when there's uncertainty and slow ones when the data indicates a better chance of hitting. Also the fudge factor was far too small - with five axes a segment was penalized by about 40%. This resulted in the bot preferring simpler, slower-learning segmentations, which hurt my score against bots that required fast adaptation.
13 - G1929.6 - Tweaks
Increased gun depth to values closer to those from version 6.
Returned to velocity and orthogonality segmentations.
Increased the fineness of movement segmentation.
Minor optimization in danger checking.
12 - G1909.2 - Multi-wave surfing improved, bug checking, tweaks
Changed velocity and orthogonality to lateral velocity and approaching velocity.
Replaced multi-wave surfing mechanism. Now uses recursion to find the best path rather than modified danger summation.
Experimented with combining segments, ultimately discarding the idea for now.
Probably changed some other minor things too.
11 - G1916.2 - Removed an axis, bugfixes, tweaks
Fixed another disabled opponents bug.
Fixed a skipping turns bug revealed by proper onDeath and onWin handling.
Decreased non-impacting wave weight when flattening from 1.0 to 0.5.
Tweaked flattener activation and deactivation thresholds.
Decreased spread on bin smoothing.
Removed Last Stopped axis from gun and movement.
Minor tweaks.
10 - G1905.9 - Nothing major, should fix anomalous scores
Added full-match stat tracking, including proper onDeath and onWin handling.
Added dynamic non-firing wave weighting.
Linked dynamic distance and flattener with enemy hitrate.
Linked dynamic non-firing wave weight with my hitrate.
Added end-of-round garbage collection, which seems to prevent my bot from skipping turns mid-fight.
Changed bin smoothing function to a not use Math.pow.
9 - G1905.3 - Bad idea recovery mode
Disabled flattener until I'm losing badly.
Re-added dynamic distancing.
Associated bullet power with normal distance such that I still fire at normal power if my preferred distance increases.
Internal changes making power and distance tweaks simpler.
Added graph showing danger of future positions. Red marks the current position.
8 - G1867.3 - Flattening, distancing, and memory changes
Decreased number of buckets on the gun from 64 to 32.
Replaced most segmentation doubles with floats.
Removed dynamic distancing.
Added dynamic flattening, with a default weight for non-impacting waves of 0.1 (vs 1 for a bullet).
This hurt my ranking against simple targeters badly.
Added color changes to waves in debug graphics to reflect their bullet's condition (hit target, hit bullet). This makes watching battles with debug graphics on more fun.
7 - G1927.7 - Major tweaks
Switched to sane rolling depths for surfing.
Made surfing and gun rolling depths variable based on degree of segmentation.
Increased minimum distance for dynamic distancing.
Fixed equation for orthogonality. (Thanks Voidious)
Decreased velocity weighting to 12.5%.
6 - G1941.7 - Tweaks and adjustments
Decreased surfing rolling depth a lot - from 50 to 15. Should be much more adaptable now.
Added dynamic distancing.
Added axis weighting, permitting a degree of influence on which segments are trusted more, regardless of how their data looks.
Weighted velocity 25% higher than other axes. This should produce solid gains against simple targeters.
5 - G1940.9 - Added Orthogonality and BulletFlightTime axes
Added two new axes.
Updated debug graphics.
4a - G1941.1 - Not ProGuarded
Same as 4 but no after-compile optimizations.
4 - ? - Lots of bugfixes
Resolved some silliness where multi-wave surfing was falsely seeing a safe spot.
Improved statistic calculations.
Updated debug graphics slightly.
Narrowly avoided adding a false optimization (thanks Rsim!).
Corrected firing wave origin point.
Adjusted aim location to fire through the center of wave bins rather than at the first corner.
Optimized by ProGuard - likely why it fails on many clients.
3 - G1936 - removed velocity snapping, refined bot width calculation
Rolled back changes from version 2 -- while the velocity manipulation is quite effective against some bots, notably Geomancy 1, it hurts my overall ranking badly.
Added more precise bot width calculation, including partial bin addition for bins at the edges of the bot width.
2 - NA - Velocity snapping added
2a - G1898.9 - bugfix release
In the two turns before enemy gunheat reaches zero, I limit my velocity to 0, 4, or 8 (whichever's closest) so that the enemy's segmentation has lowered resolution.
My first upload of version 2 used AdvancedRobot.setDebugVariable, which is not present in Roborumble-sanctioned versions of Robocode. As a result a few clients who got the buggy version are seeing crashes 100% of the time. 2a has the function removed.
1 - G1937.0, 59th - Release
Cleaned up Watermelon, removed old code it didn't need, fixed some minor issues, tweaked some numbers, and gave it a shiny new name.