Difference between revisions of "LittleBlackBook"

From Robowiki
Jump to navigation Jump to search
(Quick update to page on progress.)
(Add links)
 
(20 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Background Information ==
 
 
 
{{Infobox Robot
 
{{Infobox Robot
 
| name            = LittleBlackBook
 
| name            = LittleBlackBook
Line 6: Line 4:
 
| author          = [[User:Miked0801|Miked0801]]
 
| author          = [[User:Miked0801|Miked0801]]
 
| targeting      = [[Guess Factor]]
 
| targeting      = [[Guess Factor]]
| movement        = Stop and go, Dodge oscalate, & random
+
| movement        = [[Stop And Go|Stop'n'go]], [[Ramming Movement|Ram]], & [[Random Movement|Random]]
 
| current_version = 1.0
 
| current_version = 1.0
| released        = June 14 2009
+
| released        = June 14, 2009
 
| isMelee        = no (maybe)
 
| isMelee        = no (maybe)
 
| isOpenSource    = yes
 
| isOpenSource    = yes
| download_link  = Robot Repository
+
| download_link  = http://robocode-archive.strangeautomata.com/robots/mld.jdc.nano.LittleBlackBook_1.0.jar
 
}}
 
}}
  
 
+
== Background Information ==
 
; Bot Name
 
; Bot Name
 
: LittleBlackBook
 
: LittleBlackBook
Line 25: Line 23:
  
 
; What's special about it?
 
; What's special about it?
: A string based, Guess Factor bot with 3 different movement typesDoes not learn - all factors are predefined in the file.
+
: This is a table driven bot.  It uses canned guess factors, desired engage distances, fire power, movement type, and movement length all segmented upon distance from its enemyIt also has a default table it uses for unknown bots and ignores the bot's version number for behavior so that bot upgrades don't confuse it much.
  
 
; How competitive is it?
 
; How competitive is it?
: #1 in 1v1 rankingWoo hoo!
+
: #2 in Nano Rumble
 +
: #17 in Micro Rumble (next nearest nano is 16th)
 +
: #39 in Mini Rumble (next nearest nano is 33rd)
 +
:Overall rumble isn't real yet as I haven't tabled the additional 300 bots - yetI probably won't be able to fit them either without going over 200k in size.
  
 
== Strategy ==
 
== Strategy ==
  
 
; How does it [[Movement|move]]?
 
; How does it [[Movement|move]]?
: From studies of its opponents (offline), it either goes mostly forward, back and forth, or random.
+
: From studies of its opponents (offline), it can do a number of things - or combine them based on distance from opponent:
 +
* Straight orbit - good for bots that never use full linear aim, head on aim, or for getting away from an edge or rammer.
 +
* Excellent but not perfect stop and go in one direction.  Scoot forward a bit on every energy drop.  Good for average linear aimers, combined linear/head on aim bots at medium and long range, and some PM bots when mixed with other modes.
 +
* Near perfect oscollation - good for full or nearly full linear aim bots.  Tends to stick on walls if the attacking bot is aggresive due to wall reversing velocity code and limited space.  Won't catch simultaneous fire and hit and wall hits and bullets of 1 or less energy hits confuse it as well.
 +
* Psuedo Random - Tunable 0-100% of the time forward and back over mixed random distance.  Makes a fairly flat GF and PM profile.  Best against advanced bots.
 +
* Ram - if all else fails, I can be a simple RAM bot :)
 +
* Any mix of the above segmented on distance.  Mixing helps alot with Advanced bots.
  
 
; How does it fire?
 
; How does it fire?
: String based Guess Factor segmented by distance and a little lateral velocity.
+
: String based [[Guess Factor]] segmented heavily by distance, then sign modified by direction of average velocity (stop'n'go defeater).
  
 
; How does it [[Dodging Bullets|dodge bullets]]?
 
; How does it [[Dodging Bullets|dodge bullets]]?
: Watches enemy power levels and moves when it changes at all.
+
: Watches enemy power levels and moves when it changes 0.1-3.1 units.  Wall hits will fool it.
  
 
; How does the [[Melee|melee]] strategy differ from [[One-On-One|one-on-one]] strategy?
 
; How does the [[Melee|melee]] strategy differ from [[One-On-One|one-on-one]] strategy?
: No melee strategy, but it would probably be ok.
+
: No melee strategy, but it would probably be ok.  Radar is not good enough for strong melee though.
  
 
; What does it save between rounds and matches?
 
; What does it save between rounds and matches?
: Nothing.
+
: Nothing real.  It has all it needs in its string tables.
  
 
== Additional Information ==
 
== Additional Information ==
Line 56: Line 63:
  
 
; What's next for your robot?
 
; What's next for your robot?
 +
* Begin considering using what I've learned to make a strong Micro Bot.
 +
* Micro Crown.  Maybe, just maybe will be able to get there.  Just 1.5% APS away right now.
 +
* Investigate Lateral velocity GF inclusing and better dodging.  Have room, just need to make it fit within 200k of overall table space.
 +
* Add all other rumble bots for improvements outside of the nano land or at least up to the minis. (Minis 100% complete, but they need some tuning.)
 +
* Perfect PL Score Nanos.  [[Fuatisha]] is the only sticking point now.
 +
* 2K Club - both ratings in Nanos.  Heck, getting 2K in both puts me within shouting distance of the 2100 club for Glicko.
 +
* <strike> Get above 80% APS in Micros.</strike>
 +
* <strike>2K Glicko Nanos.</strike>
 +
* <strike>Top 5 Micros</strike> (and perhaps top 3)
 +
* <strike>Spend 6 bytes or so to get started before the enemy shoots for a small score boost.</strike> (Doesn't work)
 +
* <strike>Get above 80% APS in nanos.</strike>
 +
* <strike>Improve default parameters.</strike>
 +
* <strike>One last tune pass for current bots.</strike>
 
* <strike>Create a seperate bot to generate my tables for me - man that was tedious to do by hand.</strike>
 
* <strike>Create a seperate bot to generate my tables for me - man that was tedious to do by hand.</strike>
* Add all other rumble bots for improvements outside of the nano land.
+
* <strike>Improved dodging and flatter random movement.</strike>
* Improved dodging and flatter random movement (mode 2).
 
* Improve default parameters.
 
 
* <strike>Address 0 velocity aiming issues via averaging or something.</strike>
 
* <strike>Address 0 velocity aiming issues via averaging or something.</strike>
* Codesize reduction :P
+
* <strike>Codesize reduction.  Found 80+ bytes thus far.</strike>
* Dynamic distancing based on hit % - or something cheap.  I'm setting range to 160ish now - no need for this.  Perhaps a mode 3+ movement to set this?  That could work.  Hmmm....
+
* <strike>Dynamic distancing per opponent - </strike>
* Investigate other segmentations methods besides distance - which I'm told is one of the weakest.
+
* <strike>Investigate other segmentations methods besides distance - which I'm told is one of the weakest.</strike> Next major version, perhaps in a micro.
* Investigate partial string matches on names.
+
* <strike>Partial string matches on names. Need 6 bytes or so more.</strike>
  
 
; Does it have any [[White Whale|White Whales]]?
 
; Does it have any [[White Whale|White Whales]]?
: Any energy based dodge w/stop and go type movements will kill it deadDecent wave surfers will also destroy it as it only has 1 aim per segmentMulti-mode movement will give it fits as well if both movements don't fall under similiar aim factors. Here's my current hit list:
+
: Multi-mode bots hurt its aim, the more modes, the worse I do.  Bots that dynamically change their movement values and keep them constant over the life of the match(surfers) give him a very, very tough timeSurprisingly, PM bots are handled well by the its movement codeBasically, a flat GF profile bot with mulit-modes is a big problem.  Also, bots with top notch guns will beat me.
* Scytodes - stop'n'go dodger with good gun80/20 kill rate on me.
+
 
* NeophytePRAL - Decent flat, random movement, but his gun destroys me.
+
Here's the current, updated list:
* Smog - this bot has been my enemy for years and years.
+
* [[Fuatisha]] - Very strong new bot.  Very, VERY hard to beat with my current bot49% is the best I've done...  
* AceSurf - Surfer adjusts away from my aim - death.
+
* [[MosquitoPM]] - Strong gun and decent movement.  I get around 52% right now, which is within Standard Deviation of failing
* HunRobar bots in general :)
+
* The top 10 Micros and 20 or so Minis.
* Rammers - 2.5 firepower isn't enough against 90% hit ratesOnly 4 good ones though to deal with so low on listI could always retire [[Tide]], but that would be really cheezy.
+
* <Strike>[[NeophytePRAL]] - Gotta figure out how to dodge him consistently.</Strike>
 +
* <Strike>[[Moebius]] - strong movement and an excellent gun </Strike> - Solved
 +
* <Strike>[[Neophyte Pattern]] Strong movement. Ditto on Weaknesses. </Strike> - Solved
 +
*<Strike>DosEXE 0.9a - Two bots with same name but different versions entered. My tables cannot cope with this.</Strike> Optimized a solution for both.
 +
*<Strike>Ram Bots</Strike> Variable Fire Power kills them deadVariable distance make the slaughter worse.
  
 
; What other robot(s) is it based on?
 
; What other robot(s) is it based on?
: Some Moebius/NeophytePattern movement code, but mostly unique ideas here.
+
: Pretty much unique, though its movement started out somewhat close to [[Moebius]]'s before being improved.
 +
 
 +
: I keep a running blog about this bot on the discussion page.
  
== Current Ranks ==
 
Too Early for this yet - though it's #1 in nano after all pairing complete by 0.02%.
 
 
[[Category:NanoBots]]
 
[[Category:NanoBots]]
 
[[Category:Bots]]
 
[[Category:Bots]]
 +
 +
__NOTOC__

Latest revision as of 05:36, 24 August 2017

LittleBlackBook
Author(s) Miked0801
Extends AdvancedRobot
Targeting Guess Factor
Movement Stop'n'go, Ram, & Random
Released June 14, 2009
Current Version 1.0
Download

Background Information

Bot Name
LittleBlackBook
Author
Miked0801
Extends
AdvancedRobot
What's special about it?
This is a table driven bot. It uses canned guess factors, desired engage distances, fire power, movement type, and movement length all segmented upon distance from its enemy. It also has a default table it uses for unknown bots and ignores the bot's version number for behavior so that bot upgrades don't confuse it much.
How competitive is it?
#2 in Nano Rumble
#17 in Micro Rumble (next nearest nano is 16th)
#39 in Mini Rumble (next nearest nano is 33rd)
Overall rumble isn't real yet as I haven't tabled the additional 300 bots - yet. I probably won't be able to fit them either without going over 200k in size.

Strategy

How does it move?
From studies of its opponents (offline), it can do a number of things - or combine them based on distance from opponent:
  • Straight orbit - good for bots that never use full linear aim, head on aim, or for getting away from an edge or rammer.
  • Excellent but not perfect stop and go in one direction. Scoot forward a bit on every energy drop. Good for average linear aimers, combined linear/head on aim bots at medium and long range, and some PM bots when mixed with other modes.
  • Near perfect oscollation - good for full or nearly full linear aim bots. Tends to stick on walls if the attacking bot is aggresive due to wall reversing velocity code and limited space. Won't catch simultaneous fire and hit and wall hits and bullets of 1 or less energy hits confuse it as well.
  • Psuedo Random - Tunable 0-100% of the time forward and back over mixed random distance. Makes a fairly flat GF and PM profile. Best against advanced bots.
  • Ram - if all else fails, I can be a simple RAM bot :)
  • Any mix of the above segmented on distance. Mixing helps alot with Advanced bots.
How does it fire?
String based Guess Factor segmented heavily by distance, then sign modified by direction of average velocity (stop'n'go defeater).
How does it dodge bullets?
Watches enemy power levels and moves when it changes 0.1-3.1 units. Wall hits will fool it.
How does the melee strategy differ from one-on-one strategy?
No melee strategy, but it would probably be ok. Radar is not good enough for strong melee though.
What does it save between rounds and matches?
Nothing real. It has all it needs in its string tables.

Additional Information

Where did you get the name?
It has a little black book on every bot it competes against.
Can I use your code?
Go for it, though give credit as this is a new concept that has yet to be fully fleshed out by me. I'd like to see how far I can push this idea before fighting the next generation of SGF gun bots :)
What's next for your robot?
  • Begin considering using what I've learned to make a strong Micro Bot.
  • Micro Crown. Maybe, just maybe will be able to get there. Just 1.5% APS away right now.
  • Investigate Lateral velocity GF inclusing and better dodging. Have room, just need to make it fit within 200k of overall table space.
  • Add all other rumble bots for improvements outside of the nano land or at least up to the minis. (Minis 100% complete, but they need some tuning.)
  • Perfect PL Score Nanos. Fuatisha is the only sticking point now.
  • 2K Club - both ratings in Nanos. Heck, getting 2K in both puts me within shouting distance of the 2100 club for Glicko.
  • Get above 80% APS in Micros.
  • 2K Glicko Nanos.
  • Top 5 Micros (and perhaps top 3)
  • Spend 6 bytes or so to get started before the enemy shoots for a small score boost. (Doesn't work)
  • Get above 80% APS in nanos.
  • Improve default parameters.
  • One last tune pass for current bots.
  • Create a seperate bot to generate my tables for me - man that was tedious to do by hand.
  • Improved dodging and flatter random movement.
  • Address 0 velocity aiming issues via averaging or something.
  • Codesize reduction. Found 80+ bytes thus far.
  • Dynamic distancing per opponent -
  • Investigate other segmentations methods besides distance - which I'm told is one of the weakest. Next major version, perhaps in a micro.
  • Partial string matches on names. Need 6 bytes or so more.
Does it have any White Whales?
Multi-mode bots hurt its aim, the more modes, the worse I do. Bots that dynamically change their movement values and keep them constant over the life of the match(surfers) give him a very, very tough time. Surprisingly, PM bots are handled well by the its movement code. Basically, a flat GF profile bot with mulit-modes is a big problem. Also, bots with top notch guns will beat me.

Here's the current, updated list:

  • Fuatisha - Very strong new bot. Very, VERY hard to beat with my current bot. 49% is the best I've done...
  • MosquitoPM - Strong gun and decent movement. I get around 52% right now, which is within Standard Deviation of failing
  • The top 10 Micros and 20 or so Minis.
  • NeophytePRAL - Gotta figure out how to dodge him consistently.
  • Moebius - strong movement and an excellent gun - Solved
  • Neophyte Pattern Strong movement. Ditto on Weaknesses. - Solved
  • DosEXE 0.9a - Two bots with same name but different versions entered. My tables cannot cope with this. Optimized a solution for both.
  • Ram Bots Variable Fire Power kills them dead. Variable distance make the slaughter worse.
What other robot(s) is it based on?
Pretty much unique, though its movement started out somewhat close to Moebius's before being improved.
I keep a running blog about this bot on the discussion page.