Difference between revisions of "Eem.frame-lib"

From Robowiki
Jump to navigation Jump to search
(Short description of my bots framework)
 
m (small typos fix, and updates in write up)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
  
This is the page describing a general bot framework developed by [[User:Beaming|Beaming]].
+
A general bot framework developed by [[User:Beaming|Beaming]].
 
The framework is quite general with pluguble motions, virtual guns, gun managers, and bots tracking manager.
 
The framework is quite general with pluguble motions, virtual guns, gun managers, and bots tracking manager.
  
The framework aims to be general enough to be used by others. Currently there are two of my own bots using this framework which are different only in the gun manager part. One is ultimate pacifist bot [[IWillFireNoBullet]] and the other is quite competative bot [[EvBotNG]] which is very good in melee.
+
The framework aims to be general enough to be used by others. Currently, there are two of my own bots using this framework which are different only in the gun manager part. One is ultimate pacifist bot [[IWillFireNoBullet]] and the other is quite competitive bot [[EvBotNG]] which is very good in melee.
  
One of the unique feature of the framework is that it tries to track all bots and treat them somewhat equally with a master bot. I.e., an enemy bot is just a bot which have gun and motion manager, so when an enemy fires, I just ask framework to use enemy gun manager to I fire with a given gun set. I plan to extend to the motion drive too, so the framework would attempt to predict future enemy location. While it all generally quite regimental, the gun part is quite general, so I can just check with the enemy bot class how dangerous is the bot itself, what guns it use, and what is their hit rate.
+
One of the unique feature of the framework is that it tries to track all bots and treat them somewhat equally with a master bot. I.e., an enemy bot is just a bot which have gun and motion manager, so when an enemy fires, I just ask framework to use enemy gun manager to fire with a given gun set. I plan to extend to the motion drive too, so the framework would attempt to predict future enemy location. While it all generally quite primitive, the gun part is quite general, so I can just check with the enemy bot class how dangerous is the bot itself, what guns it use, and what is their hit rate.
  
 
Also, it helps with wave manager, every bot in the simulator suppose to have its own and enemy waves to track.
 
Also, it helps with wave manager, every bot in the simulator suppose to have its own and enemy waves to track.
Line 11: Line 11:
 
There is still quite a lot of work to do. But it seems that motion driver is quite strong, especially the exact path one, which is the variation of the minimal risk motion driver. In melee it gives you high chance of survival. Though it is CPU intensive, so expect some skipped turns. From other hand, it does not hit walls.
 
There is still quite a lot of work to do. But it seems that motion driver is quite strong, especially the exact path one, which is the variation of the minimal risk motion driver. In melee it gives you high chance of survival. Though it is CPU intensive, so expect some skipped turns. From other hand, it does not hit walls.
  
The available guns are somewhat primitive: head on, linear, circular, circular with acceleration, guess factor, decaying guess factor, flipped guess factor, and random gun. No fancy DC guns or PIF ones yet. I think the next would be to make some sort of clustering to push performance forward.
+
The available guns are somewhat primitive: head on, linear, circular, circular with acceleration, guess factor, decaying guess factor, flipped guess factor, KDTree gun, and random gun. No PIF gun yet. KDTree gun is quite weak, I think I need to work on proper parameter space here to push performance forward.
  
 
== License ==
 
== License ==
  
 
The code is open source, feel free to do what ever you want with it. It is available as github [[https://github.com/evgmik/robocode_bots.frame-lib  eem.frame-lib repository]]
 
The code is open source, feel free to do what ever you want with it. It is available as github [[https://github.com/evgmik/robocode_bots.frame-lib  eem.frame-lib repository]]

Latest revision as of 18:20, 16 August 2017

A general bot framework developed by Beaming. The framework is quite general with pluguble motions, virtual guns, gun managers, and bots tracking manager.

The framework aims to be general enough to be used by others. Currently, there are two of my own bots using this framework which are different only in the gun manager part. One is ultimate pacifist bot IWillFireNoBullet and the other is quite competitive bot EvBotNG which is very good in melee.

One of the unique feature of the framework is that it tries to track all bots and treat them somewhat equally with a master bot. I.e., an enemy bot is just a bot which have gun and motion manager, so when an enemy fires, I just ask framework to use enemy gun manager to fire with a given gun set. I plan to extend to the motion drive too, so the framework would attempt to predict future enemy location. While it all generally quite primitive, the gun part is quite general, so I can just check with the enemy bot class how dangerous is the bot itself, what guns it use, and what is their hit rate.

Also, it helps with wave manager, every bot in the simulator suppose to have its own and enemy waves to track.

There is still quite a lot of work to do. But it seems that motion driver is quite strong, especially the exact path one, which is the variation of the minimal risk motion driver. In melee it gives you high chance of survival. Though it is CPU intensive, so expect some skipped turns. From other hand, it does not hit walls.

The available guns are somewhat primitive: head on, linear, circular, circular with acceleration, guess factor, decaying guess factor, flipped guess factor, KDTree gun, and random gun. No PIF gun yet. KDTree gun is quite weak, I think I need to work on proper parameter space here to push performance forward.

License

The code is open source, feel free to do what ever you want with it. It is available as github [eem.frame-lib repository]