IWillFireNoBullet

From Robowiki
Revision as of 04:55, 20 August 2015 by Beaming (talk | contribs) (→‎TODO)
Jump to navigation Jump to search
IWillFireNoBullet
Author(s) Beaming
Extends AdvancedRobot
Targeting none
Movement Minimal Risk with shrapnel dodging
Released 2015
Current Version v0.2
Code Size MegaBot
Code License open source and comes with no string attached

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. Even version v0.1, sits at 232nd place out of 389 participating bots. I.e., it is better than the 3rd 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 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.

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