Difference between revisions of "Medina/VersionHistory"

From Robowiki
Jump to navigation Jump to search
Line 6: Line 6:
 
; any future release - ???
 
; any future release - ???
 
* Try incorporating [[Knight]] 1v1 movement into it to test if it is better.
 
* Try incorporating [[Knight]] 1v1 movement into it to test if it is better.
 
; 1.2 series - ???
 
* Branching (?)
 
  
 
; 1.1 series - ???
 
; 1.1 series - ???
Line 38: Line 35:
  
 
; 0.1.1 - 10.12.2017
 
; 0.1.1 - 10.12.2017
* '''PLANNED'''
+
* '''PENDING'''
** Some small improvements to avoid skipping too much turns.
+
** A bunch of tiny improvements to reduce memory allocation, garbage collection and math calls. A lot of "constant" optimization in the branch() function.
 +
** Using now a less accurate iterative predictor to generate paths.
 +
** Fixed a bug where I would merge the stats for each enemy without weighting them. This should make a huge difference.
 +
** It is still skipping a lot of turns, but way less than before. Branching in the future seems even more impossible.
  
 
; 0.1b - 10.11.2017
 
; 0.1b - 10.11.2017

Revision as of 02:53, 13 October 2017

Planned series

any future release - ???
  • Try incorporating Knight 1v1 movement into it to test if it is better.
1.1 series - ???
  • Enable bullet shadow.
  • Add bot shadow.
1.0 series - ???
  • Re-weight MR/WS.
  • Tweak surfing view weightings.
0.5 series - ???
  • Add a fallback movement to avoid being cornered and to be in a good position to surf at round beginning.
  • Do a round of optimizations to turn it into a faster bot.
0.4 series - ???
  • Surf disks instead of circles.
  • Improve bot-width intersection.
0.3 series - ???
  • When a fire event occurs, examine carefully which enemy could be the target (possibly a probability distribution estimation).
  • When a hit event occurs, examine carefully which enemy could be the target using the previous calculated probabilities.
  • Handle bullet-hit-bullet event.
0.2 series - ???
  • Tweak MEA and bandwidth?
  • Improve fire-and-hit detection and use enemy interpolation everywhere (apply hard OOP here).

Latest releases

0.1.1 - 10.12.2017
  • PENDING
    • A bunch of tiny improvements to reduce memory allocation, garbage collection and math calls. A lot of "constant" optimization in the branch() function.
    • Using now a less accurate iterative predictor to generate paths.
    • Fixed a bug where I would merge the stats for each enemy without weighting them. This should make a huge difference.
    • It is still skipping a lot of turns, but way less than before. Branching in the future seems even more impossible.
0.1b - 10.11.2017
  • MeleeRumble ‒ APS: 50.71% (207th), PL: 205-195 (196th), Survival: 23.54%
    • Medina was not dealing well with skipped turns, and I didn't notice Medina was skipping turns because I was on an alternative computer with increased CPU constant.
0.1 - 10.11.2017
  • skipped
    • First release.
    • Very simple fire-and-hit detection, a lot of room to improve.
    • Wave hit during danger evaluation is very stupid, waves are single-tick, often off-by-many-ticks and there is no accurate bot-wave intersection.
    • Quickly tested, brand new and hand-weighted minimum risk + true melee surfing, which is for now used in 1v1 as well.
    • It's not too optimized, it's a bit slow for now, and probably memory hungry. The only optimizations are stats caching and discarding irrelevant logs (like from an enemy which is too far from me for its data to change anything in my decisions).
    • Surfing views are really simple, accel + velocity + distance for now.
    • Minimum risk component is based on Monk's, but simpler: perpendicularity, distance and being one of the closest to an enemy are taken into account.
    • Initial movement is too simple, it's getting constantly cornered (unfortunately, during the game as well, but this is a harder issue).
    • Using traditional MEA everywhere. Maybe, since the movement in melee is really restricted, this can be improved.
    • Enemy logs interpolation only when detecting a hit (not when firing, causing a lot of off-by-many-ticks waves).
    • Bullet-hit-bullet events are not used.
    • Every time an enemy gets hit, it's inferred it surely was the target.
    • Every scan is inversed by enemy's distance because it's the most obvious way I can think to weight the chance of each enemy to be a target.
    • Guns from Monk.