Difference between revisions of "Diamond"
Jump to navigation
Jump to search
m (→Additional Information: update credits) |
m |
||
Line 16: | Line 16: | ||
| title = Sub-pages | | title = Sub-pages | ||
| page1 = Version History | | page1 = Version History | ||
− | | page2 | + | | page2 = DiamondHawk |
− | |||
}} | }} | ||
{{Youtube|dqHmp_kMz-U}} | {{Youtube|dqHmp_kMz-U}} |
Revision as of 17:22, 31 May 2012
Diamond | |
Full Size | |
Author(s) | Voidious |
Extends | AdvancedRobot |
Targeting | Dynamic Clustering, Displacement Vectors, GuessFactors |
Movement | Minimum Risk Movement, DC/GF-Wave Surfing |
Current Version | 1.5.30 |
Code License | zlib |
Download |
- Sub-pages:
- Version History - DiamondHawk
Background Information
- What's special about it?
- Oh, nothing, really. Well, since you asked...
- It took the Melee throne from Shadow.
- The Melee guns use displacement vectors.
- It may have the strongest 1v1 gun against random movers.
- It's by far the top DC surfer.
- The Melee Wall Smoothing is quite graceful, if I do say so myself.
- It has pretty debugging graphics.
- The source code is available under a permissive license - have fun! (And try to learn something!)
- How competitive is it?
- Very. =) #2 in Melee right behind DemonicRage, #2 in 1v1 behind DrussGT.
Strategy
- How does it move?
- In melee, it uses a Minimum Risk Movement, evaluating a bunch of points around itself and choosing the best (least bad / most good) one. I'm always tweaking the parameters, but some of them are:
- Considers points in a (randomized radius) circle around itself.
- Stay far away from other bots, weighted by their energy.
- Stay perpendicular to other bots.
- Don't be the closest bot to any other bots (avoid being targeted).
- Some randomizing based on past locations.
- In 1v1, it uses Wave Surfing (derived from Dookious) with Dynamic Clustering.
- How does it fire?
- The gun uses Dynamic Clustering for data analysis - i.e., k-nearest neighbors to find similar states, and kernel density among those states to settle on a firing angle. In Melee, it uses displacement vectors for recording and reconstructing firing angles - I thought that made more sense than GuessFactors, and it's a lot simpler and more efficient than real Play It Forward. In 1v1, it uses GuessFactors with precise MEA. It uses precise intersection and interpolates missed scans when necessary.
- I'm also experimenting with various clustering and optimization techniques for the 1v1 guns, with the help of WaveSim.
- How does it select a target to attack/avoid in melee?
- As of 1.30, it no longer does. It aims at everyone on the battle field at once and tries to hit as many enemies as possible. (Big thanks to Shadow/Melee Gun for the excellent idea.)
- How does the melee strategy differ from one-on-one strategy?
- In 1v1, it switches to a Wave Surfing movement and switches to its 1v1 Virtual Guns.
- What does it save between rounds and matches?
- Nothing between matches. Between rounds, it saves all its targeting and movement data, which includes general info about each enemy, a bunch of kd-trees, and maps of the trees' data points to displacement vectors and/or GuessFactors.
Additional Information
- Where did you get the name?
- Diamond is the ex-superhero name of the main character in Powers, my favorite comic book series. I like to name all my bots after warriors of some sort, but I'd be lying if I said I didn't just think it sounds cool.
- Can I use your code?
- Yes, it's released under the zlib license.
- What's next for your robot?
- I'd love to take the 1v1 throne. A lot. =) And it will take some work to reclaim the Melee throne, especially with Demon coming.
- Does it have any White Whales?
- DrussGT
- What other robot(s) is it based on?
- I tried to start with a clean slate on this one. But I've taken plenty of ideas from the wiki and utility code from a few places.
- BrokenSword - General guidance on various things, especially the minimum risk movement and bullet power management.
- Dookious - Diamond's surfing algorithm was originally ported from Dookious, along with a variety of utility functions, including precise prediction code based on Albert's FuturePosition.
- Lukious - The tiniest bit of kernel density code and general guidance on scan distancing.
- HawkOnFire - I never did peek at the code, but it deserves a nod just for the wisdom rozu shared about minimum risk movement via this bot.
- Corbos, Simonton - Corbos for the idea to use a kd-tree to speed up our DC guns, Simonton for the bucket variant.
- Shadow - Pioneered the Shadow/Melee Gun, which is an amazing advancement in Melee targeting.
- Rednaxela - Credit for precise intersection, Gun Heat Waves, and a lightning fast kd-tree.