From Robowiki
Revision as of 16:38, 2 May 2020 by CrazyBassoonist (talk | contribs) (Change outdated info)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Author(s) CrazyBassoonist
Extends AdvancedRobot
Targeting Random Linear
Movement Multimode

Background Information

Bot Name
What's special about it?
It was the first nanobot to use the bullet dodging/ramming strategy.
Great, I want to try it. Where can I download it?
How competitive is it?
It peaked at #2 in the nanorumble, behind only the monster that was LittleBlackBook.


What is its basic strategy?
The basic idea behind Caligula is that it's not very good against the top bots, but it can totally crush most weak robots. It switches to ramming opponents if they are strong enough that it can't beat them any other way.
How does it move?
First, it tries moving ahead at full speed to trick HOT bots. If that fails, it reverses direction every time the other robot shoots a bullet, which dodges LT nearly perfectly. If it dies twice in both of these modes, it rams the opponent with linear prediction, and takes into account which direction it should go in instead of trying to turn more than 90 degrees in one direction. This is a good strategy because while ramming rarely beats opponents by large margin, it usually gets a score in at least the 40's against even very good bots. It's actually pretty respectable as far as rambots go when it's in that mode.
How does it fire?
It uses a linear targeting. Initially it used a randomized linear gun, but then I realized that most robots that can effectively dodge linear targeting will be able to hit both of its movements, so it will end up ramming them. Linear targeting works much better than random linear targeting for hitting robots that are running away at a close distance, so it is both better and more codesize-efficient.
How does it dodge bullets?
Only its anti-LT movement involves bullet dodging.
Is this robot melee-capable?
What does it save between rounds and matches?
Between rounds, it saves the amount of times it has died, which it uses to figure out which movement to use. Nothing between matches.

Additional Information

Where did you get the name?
Caligula was a Roman emperor who had a bad habit of beating up on commoners.
Can I use your code?
What's next for your robot?
  • Rethink the gun at close ranges
  • See if there's anything I can do to make the anti-HOT movement better at dodging. Right now I'm exploring the option of making it move slower so it bounces off of the walls less.
  • See what I can do to get past Moebius Caligula has passed Moebius.
  • Pass LBB I honestly don't think any nano is going to pass LBB without resorting to the same tactics.
Does it have any White Whales?
It has a more trouble than it should with medium-level bots with high firepower, as those can usually defeat its first two movements and then beat it when it tries to ram them.

Version History


  • Changed the distance at which to fire power three bullets from 150 to 100, as it was often firing power three bullets just because its own distance control takes it so close to the other robot.
  • Still has colors!=)


  • Squeezed the code, found about 5 bytes.
  • Changed the gun from random linear targeting to linear targeting
  • Fixed a bug with the distance control where it would ram itself into the wall if it started very very far away from the other robot. I think fixing this helped more than it would with most bots, as one unlucky death can throw off the whole movement.
  • Added colors!