Difference between revisions of "BeepBoop"

From Robowiki
Jump to navigation Jump to search
(link to understanding page)
(Add some more credits)
Line 62: Line 62:
 
I used many ideas from throughout the wiki.
 
I used many ideas from throughout the wiki.
 
* It started off based on [[WaveSerpent]], although at this point it works quite differently.
 
* It started off based on [[WaveSerpent]], although at this point it works quite differently.
 +
* [[Diamond]] for inspiring how BeepBoop does distancing and how it turns different surf systems on/off based on the enemy's hit rate.
 +
* It owes a lot to [[DrussGT]] including
 +
** Precise wave intersection utilities.
 +
** FastTrig utitilies.
 +
** Anti-basic-surfer bullet powers.
 +
** Fast kernel density estimation for aiming.
 +
* It uses [[Rednaxela]]'s [[User:Rednaxela/kD-Tree|kd-tree]] implementation.
 
* It uses [[Wall Smoothing/Implementations/Non-Iterative|non-iterative WallSmoothing]] by [[David Alves]] and [[Wall_Smoothing/Implementations/Fancy_Stick|fancy-stick WallSmoothing]] by [[Simonton]]
 
* It uses [[Wall Smoothing/Implementations/Non-Iterative|non-iterative WallSmoothing]] by [[David Alves]] and [[Wall_Smoothing/Implementations/Fancy_Stick|fancy-stick WallSmoothing]] by [[Simonton]]
* It uses precise wave intersection utilities and anti-basic-surfer bullet powers from [[DrussGT]].
+
* It was indirectly influenced by many other bots/pages including [[CassiusClay]], [[ScalarR]], [[Kawigi]]'s [[GuessFactor Targeting Tutorial]], [[Maximum_Escape_Angle/Precise_Positional/Non-Iterative|non-iterative PPMEA]], and [[Innovations since 2005]].  
* It uses [[Rednaxela]]'s [[User:Rednaxela/kD-Tree|kd-tree]] implementation.
 
* It was indirectly influenced by many other bots/pages including [[Diamond]], [[CassiusClay]], [[ScalarR]], [[Kawigi]]'s [[GuessFactor Targeting Tutorial]], and [[Maximum_Escape_Angle/Precise_Positional/Non-Iterative|non-iterative PPMEA]].  
 
  
 
[[Category:MegaBots]]
 
[[Category:MegaBots]]

Revision as of 01:42, 8 June 2021

Sub-pages:
Version History - Understanding BeepBoop
BeepBoop
Author(s) Kev
Extends AdvancedRobot
Targeting GuessFactor Targeting
Movement Wave Surfing
Current Version 0.1
Code License RWPCL
Download

Background Information

What's special about it?

It is my first new bot in over 10 years!

How competitive is it?

We'll see! It does really well against top bots, but I'm less sure how it will fare against the general rumble population.

Strategy

How does it move?

It uses a new type of WaveSurfing I call PathSurfing. It is a sort of generalization of True Surfing. As well as considering going forward/backward/stopping until the wave passes, it also considers other "paths"; for example one might be driving forward 3 ticks and then reversing 5 ticks. An advantage over GoTo Surfing is that it considers how it gets to a point as well as the point itself. For example, it sometimes drives past and then reverses into the lowest danger point if that helps is get to a low-danger area on the next wave. The danger computation combines Bullet Shadows with multiple KNN systems including Flatteners.

How does it fire?

It uses two KNN/GuessFactor guns, one tuned to hit surfers and the other tuned to hit other bots. The formulas for the gun and movement are learned offline using TensorFlow. For Energy Management, it tries to directly maximize the expected score at the end of the round by predicting its win probability and expected bullet damage for various candidate bullet powers.

How does the melee strategy differ from one-on-one strategy?

It currently can't fight in melees.

What does it save between rounds and matches?

Gun/movement data between rounds, nothing between matches.

Additional Information

Where did you get the name?

It's just a silly name for a robot!

Can I use your code?

Yes, but please (1) give credit and (2) open-source your bot!

What's next for your robot?

Add bullet shielding? I think it's a bit of a cheap trick, but it might be necessary for getting competitive with DrussGT in terms of APS.

What other robot(s) is it based on?

I used many ideas from throughout the wiki.