SleepSiphon

From RoboWiki
(Difference between revisions)
Jump to: navigation, search
m (Strategy: Fixed broken internal link)
m (Phrasing/clarification, formatting, updated ranking information, changed Zlib license link to the internal page, as the original host no longer exists.)
Line 12: Line 12:
 
* [[Linear Targeting]]
 
* [[Linear Targeting]]
 
| current_version = [https://github.com/John-Paul-R/SleepSiphon/releases/tag/1.7b 1.7b]
 
| current_version = [https://github.com/John-Paul-R/SleepSiphon/releases/tag/1.7b 1.7b]
| license        = [http://www.gzip.org/zlib/zlib_license.html ZLib]
+
| license        = [[ZLIB]]
 
| download_link  = https://github.com/John-Paul-R/SleepSiphon/releases/download/1.7b/origin.SleepSiphon_1.7b.jar
 
| download_link  = https://github.com/John-Paul-R/SleepSiphon/releases/download/1.7b/origin.SleepSiphon_1.7b.jar
 
| isOpenSource    = yes
 
| isOpenSource    = yes
Line 32: Line 32:
  
 
; How competitive is it?
 
; How competitive is it?
: N/A (Awaiting [[RoboRumble]] results.)
+
: Rated 51/401 in [[MeleeRumble]], 227/1154 in [[RoboRumble]] (1/17/19)
  
 
== Strategy ==
 
== Strategy ==
  
 
; How does it [[Movement|move]]?
 
; How does it [[Movement|move]]?
: It uses a version of [[Minimum Risk Movement]]. Generates destination points in a circle around itself. Calculates danger values for points in a straight line from its current location to that destination point based on a danger function. (Enemy [[Virtual Bullets]] data, distance from other enemies, distance from walls)
+
: It uses a version of [[Minimum Risk Movement]]. Generates destination points in a circle around itself. Calculates danger values for points in a straight line from its current location to that destination point based on a danger function. (Enemy [[Virtual Bullets]] data (assumes enemies are firing at it with basic methods such a [[HOT]]), distance from other enemies, distance from walls)
  
 
; How does it fire?
 
; How does it fire?
 
: It has four [[Virtual Guns]]: [[HOT]], [[Linear Targeting]], [[Circular Targeting]], and [[Mean Targeting]] (Circular). Chooses the best gun for each enemy.
 
: It has four [[Virtual Guns]]: [[HOT]], [[Linear Targeting]], [[Circular Targeting]], and [[Mean Targeting]] (Circular). Chooses the best gun for each enemy.
: Falls back to a (naive and inefficient) [[Displacement Vector]]-based [https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm KNN] (not full [[Dynamic Clustering]]) gun if the virtual hit rate against an enemy is below a threshold.
+
: Falls back to a (naive and inefficient) [[Displacement Vector]]-based [https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm KNN] gun if the virtual hit rate against an enemy is below a threshold.
  
 
; How does it [[Dodging Bullets|dodge bullets]]?
 
; How does it [[Dodging Bullets|dodge bullets]]?
: Enemy [[Virtual Bullets]] are a factor in its path-point danger function.
+
: Enemy [[Virtual Bullets]] (predicted bullet locations, assuming it is using [[HOT]], [[Linear Targeting]], or [[Circular Targeting]]) are a factor in its path-point danger function ([[Minimum Risk Movement]]).
  
 
; How does the [[melee]] strategy differ from [[One-on-one]]  strategy?
 
; How does the [[melee]] strategy differ from [[One-on-one]]  strategy?
Line 58: Line 58:
  
 
; Where did you get the name?
 
; Where did you get the name?
: This bot was an obsession of mine for a good 2 weeks... My sleep schedule suffered during that time...
+
: This bot was an obsession of mine for several weeks. My sleep schedule suffered during that time...
  
 
; Can I use your code?
 
; Can I use your code?
 
: Well, I won't stop you, but you really shouldn't.  This is probably some of the most disorganized code you will ever read.
 
: Well, I won't stop you, but you really shouldn't.  This is probably some of the most disorganized code you will ever read.
: Any use of my code must follow the [http://www.gzip.org/zlib/zlib_license.html ZLib License].  
+
: Any use of my code must follow the [[ZLIB]] License.  
: * [https://github.com/John-Paul-R/SleepSiphon SleepSiphon Github Repository]
+
:* [https://github.com/John-Paul-R/SleepSiphon SleepSiphon Github Repository]
  
 
; What's next for your robot?
 
; What's next for your robot?
: Slight modifications to make it more effective in RoboRumbleBecause this bot started as a high school project, I built it with the assumption that the other students' bots would follow set patterns & not learn.  Obviously, this is not the case in RoboRumble, so some slight changes and optimizations can be made to my prediction.  After that, however, I will be moving on to new robots.  
+
: Nothing in the foreseeable futureSleepSiphon can be considered a closed projectI have several other ideas in the works for new ones, however.
  
 
; Does it have any [[White Whale]]s?
 
; Does it have any [[White Whale]]s?
Line 73: Line 73:
 
; What other robot(s) is it based on?
 
; What other robot(s) is it based on?
  
: * Inspiration for debugging graphics and "path risks" from [[Neuromancer]]
+
* Inspiration for debugging graphics and "path risks" from [[Neuromancer]]
: * "Never closest" movement, inspired by [[Shadow]].
+
* "Never closest" movement, inspired by [[Shadow]].
: * I learned a lot about avoiding aggressive bots from playing against Bastion. (not on RoboWiki)
+
* I learned a lot about avoiding aggressive bots from playing against Bastion. (not on RoboWiki)
  
 
[[Category:Bots|SleepSiphon]]
 
[[Category:Bots|SleepSiphon]]

Revision as of 20:51, 17 January 2019

SleepSiphon
Author(s) Origin
Extends AdvancedRobot
Targeting Virtual Guns:
Movement Minimum Risk Movement, Avoids:
Current Version 1.7b
Code License ZLIB
Download
Sub-pages:
Version History

Background Information

What's special about it?
It is my first Robocode robot. Won first place in my school's competition.
Great, I want to try it. Where can I download it?
You can download SleepSiphon here!
How competitive is it?
Rated 51/401 in MeleeRumble, 227/1154 in RoboRumble (1/17/19)

Strategy

How does it move?
It uses a version of Minimum Risk Movement. Generates destination points in a circle around itself. Calculates danger values for points in a straight line from its current location to that destination point based on a danger function. (Enemy Virtual Bullets data (assumes enemies are firing at it with basic methods such a HOT), distance from other enemies, distance from walls)
How does it fire?
It has four Virtual Guns: HOT, Linear Targeting, Circular Targeting, and Mean Targeting (Circular). Chooses the best gun for each enemy.
Falls back to a (naive and inefficient) Displacement Vector-based KNN gun if the virtual hit rate against an enemy is below a threshold.
How does it dodge bullets?
Enemy Virtual Bullets (predicted bullet locations, assuming it is using HOT, Linear Targeting, or Circular Targeting) are a factor in its path-point danger function (Minimum Risk Movement).
How does the melee strategy differ from One-on-one strategy?
It doesn't, currently.
How does it select a target to attack/avoid in melee?
Attacks whoever is closest.
What does it save between rounds and matches?
Between rounds, it stores information for the Displacement Vector gun. Nothing between matches.

Additional Information

Where did you get the name?
This bot was an obsession of mine for several weeks. My sleep schedule suffered during that time...
Can I use your code?
Well, I won't stop you, but you really shouldn't. This is probably some of the most disorganized code you will ever read.
Any use of my code must follow the ZLIB License.
What's next for your robot?
Nothing in the foreseeable future. SleepSiphon can be considered a closed project. I have several other ideas in the works for new ones, however.
Does it have any White Whales?
None presently.
What other robot(s) is it based on?
  • Inspiration for debugging graphics and "path risks" from Neuromancer
  • "Never closest" movement, inspired by Shadow.
  • I learned a lot about avoiding aggressive bots from playing against Bastion. (not on RoboWiki)
Personal tools