Difference between revisions of "SleepSiphon"

From Robowiki
Jump to navigation Jump to search
m (Formatting)
m (One would think that I would learn my lesson... English)
 
(4 intermediate revisions by the same user not shown)
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 26: Line 26:
  
 
; What's special about it?
 
; What's special about it?
: It is my first Robocode robot. Won first place in my school's competition.
+
: It is my ([[User:Origin]]) first Robocode robot. It won first place in my high school's competition.  
  
 
; Great, I want to try it. Where can I download it?
 
; Great, I want to try it. Where can I download it?
: You can download SleepSiphon [https://github.com/John-Paul-R/SleepSiphon/releases/download/1.7b/origin.SleepSiphon_1.7b.jar here]!
+
: You can download SleepSiphon [https://github.com/John-Paul-R/SleepSiphon/releases/download/1.7b/origin.SleepSiphon_1.7b.jar here]! (github.com)
 +
: Full source code is available [https://github.com/John-Paul-R/SleepSiphon here], on GitHub, under the [[ZLIB]] License.
  
 
; How competitive is it?
 
; How competitive is it?
: N/A (Awaiting [[RoboRumble]] results.)
+
: Rated 51/403 in [[MeleeRumble]], 233/1163 in [[RoboRumble]] (June 4, 2019)
  
 
== 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 53: Line 54:
  
 
; What does it save between rounds and matches?
 
; What does it save between rounds and matches?
: Between rounds, it stores information for the [[Displacement Vectors]] gun. Nothing between matches.
+
: Between rounds, it stores information for the [[Displacement Vector]] gun. Nothing between matches.
  
 
== Additional Information ==
 
== Additional Information ==
  
 
; 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 74:
 
; 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]]

Latest revision as of 23:21, 4 June 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 (User:Origin) first Robocode robot. It won first place in my high school's competition.
Great, I want to try it. Where can I download it?
You can download SleepSiphon here! (github.com)
Full source code is available here, on GitHub, under the ZLIB License.
How competitive is it?
Rated 51/403 in MeleeRumble, 233/1163 in RoboRumble (June 4, 2019)

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)