Difference between revisions of "Combat"

From Robowiki
Jump to navigation Jump to search
m (Category)
(Update version, link, and rankings)
 
(16 intermediate revisions by one other user not shown)
Line 1: Line 1:
 +
{{Infobox Robot
 +
| name            = Combat
 +
| image = Atari2600Combat.png
 +
| imagesize      = 200px
 +
| author          = [[User:MN|MN]]
 +
| extends        = TeamRobot
 +
| targeting      = [[Dynamic Clustering|DC]]/[[GuessFactor]] [[Shadow/Melee_Gun|SwarmTargeting]] [[Random Targeting|RandomTargeting]]
 +
| movement        = [[Dynamic Clustering|DC]]/[[Wave Surfing|WaveSurfing]] [[Dynamic Clustering|DC]]/[http://old.robowiki.net/cgi-bin/robowiki?action=browse&id=SandboxFlattener&oldid=FlatMovement FlatMovement] [[Anti-Gravity_Movement|Anti-gravity]] [[Dynamic Clustering|DC]]/[http://old.robowiki.net/robowiki?ShrapnelDodging ShrapnelDodging]
 +
| released        = 2011
 +
| current_version = 3.25.0
 +
| download_link  = http://robocode-archive.strangeautomata.com/robots/mn.Combat_3.25.0.jar
 +
| isOneOnOne      = true
 +
| isMelee        = true
 +
| isOpenSource    = false
 +
}}
 +
 
== Background Information ==
 
== Background Information ==
  
; What's special about it?
+
; How competitive it is?
It mixes Old Skool techniques I like with a few "modern" techniques with better than expected results.
+
 
 +
1v1 - #27 APS, #9 Survival, #10 PL
 +
 
 +
meleerumble - #8 APS, #8 Survival, #8 PL
 +
 
 +
teamrumble - #1 APS, #1 Survival, #2 PL
 +
 
 +
neoroborumble - #1 APS, #1 Survival, #1 PL
 +
 
 +
gigarumble - #9 APS, #5 Survival, #12 PL
 +
 
 +
meleetop30rumble - #8 APS, #4 Survival
  
 
== Strategy ==
 
== Strategy ==
Line 8: Line 35:
 
; How does it [[Movement|move]]?  
 
; How does it [[Movement|move]]?  
  
:Old Skool [[Anti-Gravity_Movement|anti-gravity movement]] boosted with [[Precise_Prediction|precise prediction]]/[[Wall_Avoidance|wall avoidance]].
+
:Multi-mode
:It delays [[Wall_Avoidance|wall avoidance]] until the last possible tick. Not as strong as [[Wall_Smoothing|wall smoothing]] in 1v1, but it is cool to see the bot making aggressive turns when near walls.
+
:*[[Wave Surfing]]/[[Wall Smoothing]]
 +
:*Old Skool [[Anti-Gravity_Movement|anti-gravity movement]] boosted with [[Precise_Prediction|precise prediction]]/[[Wall_Avoidance|wall avoidance]]
  
 
; How does it fire?
 
; How does it fire?
  
:[[GuessFactor|Guess factor]] targeting with [[Dynamic_Clustering|dynamic clustering]] segmented data. But I stripped that direction attribute away. 1 is always clockwise and -1 is always counter-clockwise. Direction is accounted indirectly as a [[Dynamic_Clustering|dynamic clustering]] signed lateral velocity classifier. Feels less artificial that way and confuses some [[Wave_surfing|wave surfing]] implementations.
+
:[[GuessFactor|Guess factor]] targeting with [[Dynamic_Clustering|dynamic clustering]] segmented data.
 +
 
 +
:Using [[Dynamic_Clustering|dynamic clustering]]/[[Wikipedia:Kernel density estimation|kernel density]] to estimate hit rate and choose bullet power. The idea is to search for peaks in [[Wikipedia:Kernel density estimation|kernel density]] and if one is found, switch to aggressive energy management, if not, then stick with survivability energy management. Working well in melee/team thanks to [[Shadow/Melee_Gun|swarm targeting]], shooting power 3 bullets against tight packs of bots, and owning rammers :) . Currently disabled in 1v1 to avoid wasting energy against adaptable movements.
  
 
; How does it [[DodgingBullets|dodge bullets]]?
 
; How does it [[DodgingBullets|dodge bullets]]?
  
:Old Skool [http://old.robowiki.net/robowiki?ShrapnelDodging shrapnel dodging]. [[Anti-Gravity_Movement|Anti-gravity]] enemy virtual bullets generated with [[Dynamic_Clustering|dynamic clustering]] segmented data. Works well in melee/team and it is cool to watch. Working better than expected in 1v1.
+
:Old Skool [http://old.robowiki.net/robowiki?ShrapnelDodging shrapnel dodging].
 +
:[[Wave Surfing]]/[http://old.robowiki.net/cgi-bin/robowiki?action=browse&id=SandboxFlattener&oldid=FlatMovement Curve flattening].
 +
:Enemy virtual bullets generated with [[Dynamic_Clustering|dynamic clustering]] segmented data in both modes.
  
 
; How does the [[Melee|melee]] strategy differ from [[OneOnOne|one-on-one]] strategy?
 
; How does the [[Melee|melee]] strategy differ from [[OneOnOne|one-on-one]] strategy?
  
:It doesn´t, but it will some day.
+
: [[Anti-Gravity Movement|Anti-gravity]] in melee/team.
 +
:Multi-mode in 1v1
 +
:*[[Wave Surfing]] at long range.
 +
:*[[Anti-Gravity Movement|Anti-gravity]] at close range (anti-ramming/[[Dive Protection|dive protection]]).
  
 
; How does it select a target to attack/avoid in [[Melee|melee]] ?
 
; How does it select a target to attack/avoid in [[Melee|melee]] ?
Line 44: Line 79:
 
; What's next for your robot?
 
; What's next for your robot?
 
*Cool algorithms
 
*Cool algorithms
:*A [[Kd-tree|k-d tree]] to optimize [[Dynamic_Clustering|dynamic clustering]]. It is skipping turns to the point of being disabled in teamrumble.
+
:*<s>Energy management with [[Dynamic_Clustering|dynamic clustering]] segmented data for hit rate estimation. Should be cool to watch.</s> DONE
:*Energy management with [[Dynamic_Clustering|dynamic clustering]] segmented data for hit rate estimation. Should be cool to watch.
 
:*[[Maximum_Escape_Angle/Precise|Precise prediction/max escape angle]] calculation. Shooting walls is not cool to watch.
 
:*Improved [[precise_Prediction|precise prediction]]/[[Wall_Avoidance|wall avoidance]]. It is shaking (turning left and right) when moving near walls. Not cool to watch.
 
:*[[Precise_Prediction|Precise prediction]]/[[Anti-Gravity_Movement|anti-gravity movement]] to calculate when to stop. It is vibrating (moving ahead and back) instead of stopping. Not cool to watch.
 
 
:*[http://old.robowiki.net/robowiki?BombSheltering Bomb sheltering] evaluation to erase enemy virtual bullets.
 
:*[http://old.robowiki.net/robowiki?BombSheltering Bomb sheltering] evaluation to erase enemy virtual bullets.
 
*Rating improvement
 
*Rating improvement
:*[[Wave_Surfing/GoTo_Surfing|Go to surfing]] for 1v1.
+
:*<s>[[Wave_Surfing/GoTo_Surfing|Go to surfing]] for 1v1.</s> DONE
:*[[Anti-Surfer_Targeting|Anti-surfer gun]] for 1v1.
+
:*<s>[[Anti-Surfer_Targeting|Anti-surfer gun]] for 1v1.</s> DONE
:*[http://old.robowiki.net/robowiki?SandboxFlattener Curve flattening] for 1v1.
+
:*<s>[http://old.robowiki.net/robowiki?SandboxFlattener Curve flattening] for 1v1.</s> DONE
 +
:*<s>[[Maximum_Escape_Angle/Precise|Precise prediction/max escape angle]] calculation.</s> DONE
 +
:*Classification tuning.
 +
:*<s>Fast math classes.</s> DONE
 +
:*[[Bullet Shadow]] evaluation.
 +
:*A [[Kd-tree|k-d tree]] to optimize [[Dynamic_Clustering|dynamic clustering]].
 +
:*[[Minimum risk]] movement.
 +
:*Refining all the above
  
 
; What other robot(s) is it based on?
 
; What other robot(s) is it based on?
The code is 100% original. But I took most of the ideas from RoboWiki.
+
:[[Shadow]] ([[Shadow/Melee_Gun|swarm targeting]]), [[DrussGT]] (energy management, DC classifiers, [[User:Simonton|Simonton]] wall distance, manhattan distance), [[Diamond]] (gaussian kernel function).
 +
:[[User:Rednaxela/FastTrig|Rednaxela´s FastTrig]]
  
[[Category:Bots|Combat]]
+
[[Category:Bots|Combat]][[Category:MegaBots|Combat]][[Category:Teams|Combat]]

Latest revision as of 03:32, 1 August 2017

Combat
Atari2600Combat.png
Author(s) MN
Extends TeamRobot
Targeting DC/GuessFactor SwarmTargeting RandomTargeting
Movement DC/WaveSurfing DC/FlatMovement Anti-gravity DC/ShrapnelDodging
Released 2011
Current Version 3.25.0
Download

Background Information

How competitive it is?

1v1 - #27 APS, #9 Survival, #10 PL

meleerumble - #8 APS, #8 Survival, #8 PL

teamrumble - #1 APS, #1 Survival, #2 PL

neoroborumble - #1 APS, #1 Survival, #1 PL

gigarumble - #9 APS, #5 Survival, #12 PL

meleetop30rumble - #8 APS, #4 Survival

Strategy

How does it move?
Multi-mode
How does it fire?
Guess factor targeting with dynamic clustering segmented data.
Using dynamic clustering/kernel density to estimate hit rate and choose bullet power. The idea is to search for peaks in kernel density and if one is found, switch to aggressive energy management, if not, then stick with survivability energy management. Working well in melee/team thanks to swarm targeting, shooting power 3 bullets against tight packs of bots, and owning rammers :) . Currently disabled in 1v1 to avoid wasting energy against adaptable movements.
How does it dodge bullets?
Old Skool shrapnel dodging.
Wave Surfing/Curve flattening.
Enemy virtual bullets generated with dynamic clustering segmented data in both modes.
How does the melee strategy differ from one-on-one strategy?
Anti-gravity in melee/team.
Multi-mode in 1v1
How does it select a target to attack/avoid in melee ?
Swarm targeting.
What does it save between rounds and matches?
Between matches: Nothing.
Between rounds: Wave data.

Additional Information

Where did you get the name?
From the Atari 2600 game Combat.
Can I use your code?
Not open-source.
What's next for your robot?
  • Cool algorithms
  • Energy management with dynamic clustering segmented data for hit rate estimation. Should be cool to watch. DONE
  • Bomb sheltering evaluation to erase enemy virtual bullets.
  • Rating improvement
What other robot(s) is it based on?
Shadow (swarm targeting), DrussGT (energy management, DC classifiers, Simonton wall distance, manhattan distance), Diamond (gaussian kernel function).
Rednaxela´s FastTrig