Innovations since 2005

From Robowiki
Revision as of 19:29, 5 March 2010 by Miked0801 (talk | contribs) (A few more innovations off the top of my head. I can go really old school if you want here.)
Jump to navigation Jump to search

One thing that discourages many new Robocoders is that there are "no breakthroughs left to discover". As Robocode bots evolve, it inevitably becomes harder to innovate. But many important improvements have been made since the advent of Wave Surfing. They may not be seen as breakthroughs, but they add up to a huge net improvement in the Robocode state of the art.

Depending on when you came to Robocode, some of this stuff may seem like "it's been that way forever" or "that's obvious, anyway". But that's part of the problem, isn't it? =) Hopefully, by pointing out the many small but important innovations since ~2005, it will be clear that innovation is still alive and well in Robocode.

Innovations

  • rozu's Apollon mini-predictor - Apollon never caught Pugilist, but this tiny Precise Prediction code paved the way for really good Wave Surfing MiniBot. Its descendants are now at the top of the MiniRumble, far ahead of Pugilist.
  • Anti-Surfer guns - In 2005, Ascendant added an Anti-Surfer gun, making it the only bot that could hang with Shadow near the top of the PL. (Shadow didn't have one, but benefited from its unique gun and excellent movement to beat down surfers.) Now this is a standard practice.
  • Precisely surfing multiple waves - In 2005, most bots precisely predicted until next wave intercept. Ascendant may have predicted over two waves, but this wasn't well known at the time. Dookious predicted over two waves, branching at first wave intercept to more intelligently gauge the second wave's danger. Phoenix did similarly and Chalk followed suit. (This also led to the development of faster Wall Smoothing methods.)
  • Non-explicit Dive Protection - Bots like CassiusClay, Phoenix, and many older surfers have special cases in their movement to avoid moving directly at enemies, sometimes with more special cases for when they are cornered. Dookious instead multiplied the predicted distance to enemy right into the danger for each movement option, which creates a natural and fluid form of distancing control and dive protection.
  • Lots of surfing buffers! - An innovation that happened gradually is that of using many, many VCS buffers in surfing stats. (DrussGT uses 100+.)
  • Go-To Surfing - Once upon a time, SilverSurfer was the flag bearer for go-to surfing and he had the best movement around. It was a while before anyone tried it again, but Skilgannon developed a killer go-to surfing in DrussGT that (since 2008) is by far the best 1v1 movement in Robocode.
  • Stop And Go MicroBots - Reaching the top of the MicroRumble now requires very finely tuned stop and go movement to crush simple targeters. The first bot to use this was Thorn by Kev. Skilgannon expanded upon the idea, making the stop and go distance vary depending on the enemy firepower.
  • kd-trees - Blew the door open for better Dynamic Clustering bots. Credit to Corbos for mentioning them on the wiki; Simonton and Chase-san for being first to apply them to Robocode; Rednaxela for taking it up a notch with his lightning fast kd-tree.
  • Shadow/Melee Gun - ABC came out of nowhere to find a breakthrough in Melee targeting by aiming at everyone at once!
  • Waves/Precise Intersection - Identify exactly what range of firing angles would have hit the target bot. Allows for much more precise danger calculations in surfing.
  • Gun Heat Waves - Assume the enemy will fire as soon as possible and estimate the bullet power used. Allows surfing of (estimated) enemy waves 1-2 ticks sooner, which is very helpful at close ranges.
  • Linear Targeting / Random Linear Targeting - The basis of Guess Factor targeting is being able to accurately aim linearly after all. Many starting bots and many current nanos still just use head on targeting.
  • Pattern matching - The first good guns all used pattern matching. String based Pattern Matching still is used by almost all the top nanos and micros.
  • Anti-Gravity - Most top melee bots use some varient of this. DustBunny has a nano sized version, the reason it is the top nano melee bot.
  • Byte Saving Techniques - There is a page here which shows all current techniques used to save space in the limited size divisions. Techniques are still being found farily often so this is a strong area of ongoing research.
  • Bullet Shielding - Protect yourself while moving. A neat concept that has great future potential.

(If we get this polished up and others think it's a good page to have, we can move it to the main namespace later.)