Difference between revisions of "EvBotNG"

From Robowiki
Jump to navigation Jump to search
m (better name)
m (updated stats)
 
(14 intermediate revisions by 2 users not shown)
Line 8: Line 8:
 
| author          = [[User:Beaming|Beaming]]
 
| author          = [[User:Beaming|Beaming]]
 
| extends        = [[AdvancedRobot]]
 
| extends        = [[AdvancedRobot]]
| targeting      = none
+
| targeting      = GF, kdTree, HoT, Circular, Random
 
| movement        = Exact path predictor
 
| movement        = Exact path predictor
 
| released        = 2015
 
| released        = 2015
 
| best_rating    =  
 
| best_rating    =  
 +
<!-- for rating copy paste with current version -->
 +
<!--
 
| rating          =  
 
| rating          =  
| current_version = v3.0
+
1on1 {{subst:rumblestats:roborumble|eem.EvBotNG v7.6|NavboxStats}}
 +
melee {{subst:rumblestats:meleerumble|eem.EvBotNG v6.1|NavboxStats}}
 +
-->
 +
| rating          =
 +
1on1 {{NavboxStats|link=http://literumble.appspot.com/BotDetails?game=roborumble&name=eem.EvBotNG%20v12.6|rumble=RoboRumble|scorelabel=APS|score=81.85|rank=53rd|win=1097|loss=56|plrank=52nd|glicko2=N/A|pwin=95.14|vote=1.11|anpp=85.96|score2label=Survival|score2=89.19}}
 +
| current_version = v12.7
 
| codesize        = [[MegaBot]]
 
| codesize        = [[MegaBot]]
 
| license        = open source and comes with no string attached
 
| license        = open source and comes with no string attached
| download_link  =  
+
| download_link  = http://robocode-archive.strangeautomata.com/robots/eem.EvBotNG_v12.7.jar
 
| source_link    = https://github.com/evgmik/robocode_bots.EvBotNG
 
| source_link    = https://github.com/evgmik/robocode_bots.EvBotNG
 
| isOneOnOne      = true
 
| isOneOnOne      = true
Line 24: Line 31:
  
 
== Background Information ==
 
== Background Information ==
 +
 +
<!-- for rating copy paste with current version -->
 +
<!--
 +
{{subst:rumblestats:roborumble|eem.EvBotNG v6.2|RumbleStatsDefault}}
 +
 +
{{subst:rumblestats:meleerumble|eem.EvBotNG v6.3|RumbleStatsDefault}}
 +
-->
 +
The best in 1on1 version is v12.6
 +
 +
{{RumbleStatsDefault|link=http://literumble.appspot.com/BotDetails?game=roborumble&name=eem.EvBotNG%20v12.6|rumble=RoboRumble|scorelabel=APS|score=81.85|rank=53rd|win=1097|loss=56|plrank=52nd|glicko2=N/A|pwin=95.14|vote=1.11|anpp=85.96|score2label=Survival|score2=89.19}}
 +
 +
 +
The best in melee version is v6.1
 +
 +
{{RumbleStatsDefault|link=http://literumble.appspot.com/BotDetails?game=meleerumble&name=eem.EvBotNG%20v6.1|rumble=MeleeRumble|scorelabel=APS|score=67.39|rank=10th|win=388|loss=9|plrank=10th|glicko2=N/A|pwin=97.73|vote=1.76|anpp=91.82|score2label=Survival|score2=55.69}}
 +
 +
You can also see its APS vs. version number in the following plot
 +
[https://github.com/evgmik/robocode_bots.EvBotNG/blob/master/stats/EvBotNG.stats.png]
  
 
=== What's special about it? ===
 
=== What's special about it? ===
Line 30: Line 55:
  
 
=== How competitive is it? ===
 
=== How competitive is it? ===
In 1 on 1 it is still quite weak and hovers below top 100. Since its guns are not very sophisticated. But in melee it is in top 15. Surprisingly, the circular and head on guns do all the work in melee till it gets to the last 2 bots standing, where it uses more bots.
+
In 1 on 1 it is still quite weak and hovers just above top 100. Since its guns are not very sophisticated. But in melee it is in top 15. Surprisingly, the circular and head on guns do all the work in melee till it gets to the last 2 bots standing, where the bot enables more guns.
 +
 
 +
=== What did I learn ===
 +
The large APS jump in 1on1 was when I stop avoiding what I think is dangerous and started avoiding real hits' GF. After 3 years of robocoding this idea finally propagated to my brain :(
  
  
 
=== What is under the hood? ===
 
=== What is under the hood? ===
See more about it at [[eem.frame-lib]].
+
See the [[EvBotNG/Version_History]] and [[eem.frame-lib]].
  
 
=== How does it move? ===
 
=== How does it move? ===
Line 41: Line 69:
 
=== How does it fire ===
 
=== How does it fire ===
 
Aims to the closest, with potential switch to a more hitable bot like the sitting duck or less lucky bot (who survives less in the previous rounds), also it has a preference for a weak on energy bots.
 
Aims to the closest, with potential switch to a more hitable bot like the sitting duck or less lucky bot (who survives less in the previous rounds), also it has a preference for a weak on energy bots.
 +
 +
In 1on1 it often wins a couple of the first rounds even against the top 10.
  
 
=== Great, I want to try it. Where can I download it? ===
 
=== Great, I want to try it. Where can I download it? ===

Latest revision as of 03:45, 3 December 2017

EvBotNG
Author(s) Beaming
Extends AdvancedRobot
Targeting GF, kdTree, HoT, Circular, Random
Movement Exact path predictor
Released 2015
Current Rating 1on1 81.85 (53rd)
Current Version v12.7
Code Size MegaBot
Code License open source and comes with no string attached
Download
Source

Background Information

The best in 1on1 version is v12.6

RoboRumble ‒ APS: 81.85% (53rd), PL: 1097-56 (52nd), Survival: 89.19%


The best in melee version is v6.1

MeleeRumble ‒ APS: 67.39% (10th), PL: 388-9 (10th), Survival: 55.69%

You can also see its APS vs. version number in the following plot [1]

What's special about it?

It is based on my own framework. With plug in motion drivers and virtual guns. It tries to dodge bullets from all known guns. Well, it is too CPU demanding, so the list changes depending on the game stage.

How competitive is it?

In 1 on 1 it is still quite weak and hovers just above top 100. Since its guns are not very sophisticated. But in melee it is in top 15. Surprisingly, the circular and head on guns do all the work in melee till it gets to the last 2 bots standing, where the bot enables more guns.

What did I learn

The large APS jump in 1on1 was when I stop avoiding what I think is dangerous and started avoiding real hits' GF. After 3 years of robocoding this idea finally propagated to my brain :(


What is under the hood?

See the EvBotNG/Version_History and eem.frame-lib.

How does it move?

See the framework again. But most importantly it tries to dodge the head on gun and circular gun from the closest bot in melee and probabilistically from some others. Once it gets to the last 2 bot standing or 1on1 it dodges more known guns.

How does it fire

Aims to the closest, with potential switch to a more hitable bot like the sitting duck or less lucky bot (who survives less in the previous rounds), also it has a preference for a weak on energy bots.

In 1on1 it often wins a couple of the first rounds even against the top 10.

Great, I want to try it. Where can I download it?

It is in official roborumble and melee listings, look for eem.EvBotNG there. Alternatively, feel free to download the source code and play with it.

Thanks

I suffer from "not coded here syndrome" so my code is quite original. Though, I took a lot from my own EvBot. You might see uncleaned leftovers of that bot scattered in the source.

Nevertheless, I owe to many people who made this wiki and its content available. Special thanks to Voidious and his wonderful RoboRunner tool which I used.

Also, its design was influenced by the ideas behind the XanderCat, i.e., modular design and, yet not well implemented by me, idea of components registration for custom calls/events.