Difference between revisions of "ScalarR"

From Robowiki
Jump to navigation Jump to search
m
m (Rewrite with the help of ChatGPT)
Line 3: Line 3:
 
| parent = ScalarR
 
| parent = ScalarR
 
| page1 = Version History
 
| page1 = Version History
| page2 = Random thoughts
 
 
}}
 
}}
 
{{Infobox Robot
 
{{Infobox Robot
Line 18: Line 17:
 
; What's special about it?
 
; What's special about it?
  
Pioneered surfing multiple waves precisely in melee. The same surfing algorithm is also used in 1v1.  
+
The ability to expertly surf multiple waves in [[Melee|melee]] was a groundbreaking technique, which has also been adapted for 1v1 scenarios.
  
 
; How competitive is it?
 
; How competitive is it?
  
No.1 in melee ([http://web.archive.org/web/20190319084925/http://literumble.appspot.com/Rankings?game=meleerumble February 12, 2019])
+
No.1 in melee as of [http://web.archive.org/web/20190319084925/http://literumble.appspot.com/Rankings?game=meleerumble February 12, 2019]
  
No.2 in 1v1 (No.1 on [http://web.archive.org/web/20210628051845/https://literumble.appspot.com/Rankings?game=roborumble June 28, 2021])
+
Previously ranked as No.1 in 1v1 ([http://web.archive.org/web/20210628051845/https://literumble.appspot.com/Rankings?game=roborumble June 28, 2021])
  
 
== Strategy ==
 
== Strategy ==
Line 30: Line 29:
 
; How does it move?
 
; How does it move?
  
[[True Surfing]] in melee and 1v1, with different surfing paths generated. Danger computation considers [[Bullet Shadow]], [[KNN]] and a simulation of simple guns (to encounter its weakness agains weak bots ;).  
+
[[True Surfing]] in both melee and 1v1 scenarios, by generating different surfing paths. To accurately assess the potential danger, the algorithm takes into account various factors such as [[Bullet Shadow]], [[KNN|K-Nearest Neighbors]] (KNN), and a simulation of simple guns (to mitigate its vulnerabilities when facing weak opponents ;).
  
 
; How does it fire?
 
; How does it fire?
Line 36: Line 35:
 
[[KNN]]/[[Play It Forward]] in melee, [[KNN]]/[[GuessFactor Targeting]] in 1v1. [[Energy Management]] is quite conservative that optimizes survival as main goal.  
 
[[KNN]]/[[Play It Forward]] in melee, [[KNN]]/[[GuessFactor Targeting]] in 1v1. [[Energy Management]] is quite conservative that optimizes survival as main goal.  
 
The weights of 1v1 main [[KNN]] gun is tuned with [[wikipedia:Genetic algorithm|Genetic Algorithms]] inspired by [[Skilgannon]], by directly optimizing hit rate. The 1v1 anti-surfing gun is not tuned yet.  
 
The weights of 1v1 main [[KNN]] gun is tuned with [[wikipedia:Genetic algorithm|Genetic Algorithms]] inspired by [[Skilgannon]], by directly optimizing hit rate. The 1v1 anti-surfing gun is not tuned yet.  
 +
 +
In melee, KNN combined with [[Play It Forward]] is utilized, while KNN along with [[GuessFactor Targeting]] is used in 1v1 scenarios. [[Energy Management]] is optimized for survival and tends to be quite conservative. The weights of the 1v1 main gun are tuned using [[wikipedia:Genetic algorithm|Genetic Algorithms]], inspired by [[Skilgannon]], to optimize the hit rate. However, the 1v1 anti-surfing gun has yet to be tuned, which leaves it vulnerable to strong opponents.
  
 
; What does it save between rounds and matches?
 
; What does it save between rounds and matches?
Line 45: Line 46:
 
; Where did you get the name?
 
; Where did you get the name?
  
Scalar from [[wikipedia:Scalar Replacement|Scalar Replacement]], an optimization technique used in JVM to reduce GC pressure.  
+
The name "Scalar" was inspired by an optimization technique used in the JVM called "Scalar Replacement", which is employed to minimize GC pressure. The letter "R" was added to form the name.
Letter R is coined.  
 
  
 
; What's next for your robot?
 
; What's next for your robot?
  
* [[GoTo Surfing]] looks promising, but requires different danger estimation than [[True Surfing]].
+
Nothing, it's no longer in active development.
* Tune gun / movement with more computation power.
 
* Rework energy management, probably trying something [[wikipedia:Reinforcement Learning|RL]].  
 
  
 
; Does it have any [[White Whale]]s?
 
; Does it have any [[White Whale]]s?
  
[[BeepBoop]] perhaps, driving me to think about bigger improvements.  
+
[[BeepBoop]].  
  
 
; What other robot(s) is it based on?
 
; What other robot(s) is it based on?
 
+
The development of the project was influenced both directly and indirectly by a range of robots and ideas mentioned on this wiki. Notable examples include the experience gained from working on [[ScalarN]], [[ScalarBot]], and [[SimpleBot]], as well as the valuable insights into building a competitive bot [[DrussGT/Understanding DrussGT | shared by Skilgannon]] through [[DrussGT]]. [[Innovations since 2005]] also played a role in shaping the project. [[Diamond]]’s code provided inspiration and learning opportunities, although the challenge of maintaining clean code remains. Additionally, the idea of using gradients and the importance of [[Bullet Shadow/Correct | correct bullet shadow]] were both gleaned from [[BeepBoop]], thanks to [[BeepBoop/Understanding BeepBoop|Kev's contributions]]. Other sources of influence are yet to be listed.
Directly and indirectly influenced by everything mentioned on this wiki.  
 
* Experience learnt from [[ScalarN]], [[ScalarBot]] and [[SimpleBot]]
 
* [[DrussGT/Understanding DrussGT | Understanding DrussGT]]. Thanks [[Skilgannon]] for sharing many details about how to build a competitive bot.  
 
* [[Innovations since 2005]]
 
* [[Diamond]]’s code is very neat, I learned a lot but still get messy code.  
 
* [[BeepBoop/Understanding BeepBoop | Understanding BeepBoop]]. Thanks [[Kev]] for sharing the idea about using gradients, as well as showing how important [[Bullet Shadow/Correct | correct bullet shadow]] is.  
 
* to be listed...
 
  
  

Revision as of 15:24, 1 March 2023

Sub-pages:
Version History
ScalarR
Author(s) Xor
Extends AdvancedRobot
Targeting GuessFactor Targeting
Movement Wave Surfing

For recent activities, see Version History.

Background Information

What's special about it?

The ability to expertly surf multiple waves in melee was a groundbreaking technique, which has also been adapted for 1v1 scenarios.

How competitive is it?

No.1 in melee as of February 12, 2019

Previously ranked as No.1 in 1v1 (June 28, 2021)

Strategy

How does it move?

True Surfing in both melee and 1v1 scenarios, by generating different surfing paths. To accurately assess the potential danger, the algorithm takes into account various factors such as Bullet Shadow, K-Nearest Neighbors (KNN), and a simulation of simple guns (to mitigate its vulnerabilities when facing weak opponents ;).

How does it fire?

KNN/Play It Forward in melee, KNN/GuessFactor Targeting in 1v1. Energy Management is quite conservative that optimizes survival as main goal. The weights of 1v1 main KNN gun is tuned with Genetic Algorithms inspired by Skilgannon, by directly optimizing hit rate. The 1v1 anti-surfing gun is not tuned yet.

In melee, KNN combined with Play It Forward is utilized, while KNN along with GuessFactor Targeting is used in 1v1 scenarios. Energy Management is optimized for survival and tends to be quite conservative. The weights of the 1v1 main gun are tuned using Genetic Algorithms, inspired by Skilgannon, to optimize the hit rate. However, the 1v1 anti-surfing gun has yet to be tuned, which leaves it vulnerable to strong opponents.

What does it save between rounds and matches?

Everything between rounds, nothing between matches.

Additional Information

Where did you get the name?

The name "Scalar" was inspired by an optimization technique used in the JVM called "Scalar Replacement", which is employed to minimize GC pressure. The letter "R" was added to form the name.

What's next for your robot?

Nothing, it's no longer in active development.

Does it have any White Whales?

BeepBoop.

What other robot(s) is it based on?

The development of the project was influenced both directly and indirectly by a range of robots and ideas mentioned on this wiki. Notable examples include the experience gained from working on ScalarN, ScalarBot, and SimpleBot, as well as the valuable insights into building a competitive bot shared by Skilgannon through DrussGT. Innovations since 2005 also played a role in shaping the project. Diamond’s code provided inspiration and learning opportunities, although the challenge of maintaining clean code remains. Additionally, the idea of using gradients and the importance of correct bullet shadow were both gleaned from BeepBoop, thanks to Kev's contributions. Other sources of influence are yet to be listed.