Difference between revisions of "WaveSerpent"
Jump to navigation
Jump to search
(migrating from old wiki) |
m (cleanup) |
||
Line 26: | Line 26: | ||
; How competitive is it? | ; How competitive is it? | ||
− | : WaveSerpent is 6th in the rumble right now. | + | : WaveSerpent is 6th in the [[RoboRumble|rumble]] right now. |
== Strategy == | == Strategy == | ||
Line 37: | Line 37: | ||
: WaveSerpent uses a [[Dynamic Clustering]] gun. Instead of looking at every past scan of the other robot, it segments them on the other bot's velocity and acceleration. This makes the gun quite a bit faster, and seems to help its scores too. | : WaveSerpent uses a [[Dynamic Clustering]] gun. Instead of looking at every past scan of the other robot, it segments them on the other bot's velocity and acceleration. This makes the gun quite a bit faster, and seems to help its scores too. | ||
− | ; How does it [[ | + | ; How does it [[Dodging Bullets|dodge bullets]]? |
: Wave Surfing | : Wave Surfing | ||
Line 74: | Line 74: | ||
:* The [[CassiusClay/Butterfly]] description, which helped me figure out what Wave Surfing is and how to do it. I also snuck some looks at [[CassiusClay]]'s code. | :* The [[CassiusClay/Butterfly]] description, which helped me figure out what Wave Surfing is and how to do it. I also snuck some looks at [[CassiusClay]]'s code. | ||
:* The pattern matching gun is a version of the one found in [[SeaSerpent]]. | :* The pattern matching gun is a version of the one found in [[SeaSerpent]]. | ||
− | :* It uses [[Wall Smoothing/ | + | :* It uses [[Wall Smoothing/Non Iterative|non-iterative WallSmoothing]] and [[Proper Handling of OnDeath|the proper handling of onDeath()]], both by [[David Alves]]. |
: It was indirectly influenced by: | : It was indirectly influenced by: | ||
:* [[Kawigi]]'s [[GuessFactor Targeting Tutorial]], which helped me figure out the basics of [[GuessFactor|GuessFactors]]. | :* [[Kawigi]]'s [[GuessFactor Targeting Tutorial]], which helped me figure out the basics of [[GuessFactor|GuessFactors]]. |
Revision as of 15:46, 20 May 2009
- Sub-pages:
- Version History - RRGC - DookiSerpent - Archived Talk 20090520
WaveSerpent | |
Author(s) | Kev |
Extends | AdvancedRobot |
Targeting | Dynamic Clustering |
Movement | Wave Surfing |
Current Version | 1.4 |
Code License | RWPCL |
Download |
Background Information
- What's special about it?
- Both the gun and movement are unique (I think) in using using segmentation without Visit Count Stats.
- How competitive is it?
- WaveSerpent is 6th in the rumble right now.
Strategy
- How does it move?
- Wave Surfing with Precise Prediction. I've done my share of suffering, and I'm pretty sure it's now completely bug free (and it has the top Barracuda Challenge score to back me up). Unlike most other surfers, WaveSerpent doesn't use bins; it records a list of GuessFactors it has been hit at instead. It then tries to maximize the distance from hit factors while surfing, with a large punishment for being within one bot width of a hit location. There are several segmentation schemes that are weighted and layered on top of each other. The movement is especially strong against more basic guns.
- How does it fire?
- WaveSerpent uses a Dynamic Clustering gun. Instead of looking at every past scan of the other robot, it segments them on the other bot's velocity and acceleration. This makes the gun quite a bit faster, and seems to help its scores too.
- How does it dodge bullets?
- Wave Surfing
- How does the melee strategy differ from one-on-one strategy?
- It currently can't fight in melees.
- What does it save between rounds and matches?
- It saves guess factor and surfing data between rounds.
Additional Information
- Where did you get the name?
- A wave serpent is a type of tank in a tabletop battle game my friends and I used to play. And, of course, the name sounds cool :).
- Can I use your code?
- Sure, it's released under the terms of the RWPCL.
- What's next for your robot?
- Get in The 2100 Club.
- Experiment with Dynamic Clustering for surfing.
- Eventually do a complete rewrite.
- Does it have any White Whales?
- Pattern Matchers and Wave Surfers I guess...
- What other robot(s) is it based on?
- I've used many ideas throughout the wiki, specifically from:
- The CassiusClay/Butterfly description, which helped me figure out what Wave Surfing is and how to do it. I also snuck some looks at CassiusClay's code.
- The pattern matching gun is a version of the one found in SeaSerpent.
- It uses non-iterative WallSmoothing and the proper handling of onDeath(), both by David Alves.
- It was indirectly influenced by:
- Kawigi's GuessFactor Targeting Tutorial, which helped me figure out the basics of GuessFactors.
- RaikoMicro and Tityus showed me good ways to segment data early on.
- The wiki entry on Melee Strategy helped me build Logic's melee behavior.
- Coriantumr and HawkOnFire are strong melee bots I looked at.
- Experiments
- DookiSerpent uses WaveSerpent's movement and the gun from Dookious. It shows that WaveSerpent's movement is really strong (it's only a couple points behind Dookious), but the gun still needs some work.
- WaveSerpentRRGC uses WaveSerpent's gun and the movement from Raiko for the RR Gun Challenge.