Difference between revisions of "IWillFireNoBullet"

From Robowiki
Jump to navigation Jump to search
(Update for latest version)
 
(5 intermediate revisions by one other user not shown)
Line 6: Line 6:
 
| imagesize      =  
 
| imagesize      =  
 
| caption        =  
 
| caption        =  
| author          = [[Beaming]]
+
| author          = [[User:Beaming|Beaming]]
 
| extends        = [[AdvancedRobot]]
 
| extends        = [[AdvancedRobot]]
 
| targeting      = none
 
| targeting      = none
| movement        = [[Minimum Risk Movement|Minimal Risk]] with [http://old.robowiki.net/robowiki?ShrapnelDodging shrapnel dodging]
+
| movement        = Exact path predictor
 
| released        = 2015
 
| released        = 2015
 
| best_rating    =  
 
| best_rating    =  
 
| rating          =  
 
| rating          =  
| current_version = v0.2
+
| current_version = v2.8
 
| 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.IWillFireNoBullet_v2.8.jar
| source_link    =
+
| source_link    = https://github.com/evgmik/robocode_bots.IWillFireNoBullet
 
| isOneOnOne      = true
 
| isOneOnOne      = true
 
| isMelee        = true
 
| isMelee        = true
Line 31: Line 31:
 
In 1 on 1 it is naturally quite  mediocre. Though it will outlive many quite strong bots, it does not collect the damage points and thus its APS is low.
 
In 1 on 1 it is naturally quite  mediocre. Though it will outlive many quite strong bots, it does not collect the damage points and thus its APS is low.
  
But look at its melee rating, here is where the '''surprise''' is coming. Even version v0.1, sits at 232nd place out of 389 participating bots. I.e., it is better than the 3rd of the croud.
+
But look at its melee rating, here is where the '''surprise''' is coming. At version v2.8, it sits at 120th place out of 397 participating bots. I.e., it is better than the two-thirds of the croud.
  
 
=== What is under the hood? ===
 
=== What is under the hood? ===
Line 37: Line 37:
  
 
=== How does it move? ===
 
=== How does it move? ===
It tries to serve all the waves fired at it. Instead of full simulation of the wave interception, it uses precursor danger concept, which to a similar to Anti-gravity motion. Main difference, it uses force potentials (for those who remember physics) instead of repelling forces of enemy bullets and bots.
+
 
 +
It tries to take in account all waves fired at it. Starting from version v0.3 it uses exact path simulation (which gives amazing bust in surviving scores: +23% rumble and +6% in melee), , i.e. it find the safest path within time constrains with attempt to cross all waves. This means if bots are in opposite corners and an enemy fires the highest energy (thus slowest) bullet, it will take about 100 clicks to reach it and this is the longest path needed to be predicted. This of course will used up all allocated CPU time, so one need to be smart to how far in future to predict, clearly, one need to calculate at least to the first to hit wave.
 +
 
 +
Older versions (v0.1 and v0.2) use bullets danger precursor concept, instead of full simulation of the wave interception.  Which is similar to [[Anti-Gravity Movement]] but called [[Minimum Risk Movement]] in robowiki. Main difference, it uses force potentials (for those who remember physics) instead of repelling forces of enemy bullets and bots.
  
 
=== How does it fire ===
 
=== How does it fire ===

Latest revision as of 16:15, 1 August 2017

IWillFireNoBullet
Author(s) Beaming
Extends AdvancedRobot
Targeting none
Movement Exact path predictor
Released 2015
Current Version v2.8
Code Size MegaBot
Code License open source and comes with no string attached
Download
Source

Background Information

What's special about it?

It is ultimate pacifist. As name implies, it will not fire a bullet.

How competitive is it?

In 1 on 1 it is naturally quite mediocre. Though it will outlive many quite strong bots, it does not collect the damage points and thus its APS is low.

But look at its melee rating, here is where the surprise is coming. At version v2.8, it sits at 120th place out of 397 participating bots. I.e., it is better than the two-thirds of the croud.

What is under the hood?

It has a game simulator inside, where each bot see others. Based of course on this bot radar information and its ability to analyze it: guns fired, etc. Thus when I want to see how enemy fired, I just ask the simulator to provide firing solutions, from the enemy point of view.Though, enemy drivers are routed to a dummy proxy, which blocks motion and firing commands to the robocode engine.

How does it move?

It tries to take in account all waves fired at it. Starting from version v0.3 it uses exact path simulation (which gives amazing bust in surviving scores: +23% rumble and +6% in melee), , i.e. it find the safest path within time constrains with attempt to cross all waves. This means if bots are in opposite corners and an enemy fires the highest energy (thus slowest) bullet, it will take about 100 clicks to reach it and this is the longest path needed to be predicted. This of course will used up all allocated CPU time, so one need to be smart to how far in future to predict, clearly, one need to calculate at least to the first to hit wave.

Older versions (v0.1 and v0.2) use bullets danger precursor concept, instead of full simulation of the wave interception. Which is similar to Anti-Gravity Movement but called Minimum Risk Movement in robowiki. Main difference, it uses force potentials (for those who remember physics) instead of repelling forces of enemy bullets and bots.

How does it fire

It does not. But it predicts incoming wave danger, based on guns which might be used by enemy.

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

It is in official roborumble and melee listings, look for eem.IWillFireNoBullet 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.

TODO

  • Motion
    • Minimal Risk, since v0.1
    • danger path motion, i.e. exact calculation of danger for the path point at proper time, semi done since v0.3
      • The algorithm still miscalculate predicted path, around flipped velocity vector