Bot Name
DreamBot
Author
Bill a.k.a. Geekgymnast
Extends
AdvancedRobot
What's special about it?
It's the first robot I have ever made that doesn't fail against all but some weak robots.
Great, I want to try it. Where can I download it?
http://www.robocoderepository.com/BotDetail.jsp?id=3586
Just search for "
DreamBot" on the repository to find earlier versions.
How competitive is it?
It can beat all the sample robots. It really is a decent bot, and can compete with anything that isn't too advanced.
How does it move?
It moves in circles, lowering velocity near a wall. This actually causes it to follow the walls, to an extent. It also interferes with
CircularTargeting and
LinearTargeting systems. In addition, the faster turn rate of lower velocity allows
DreamBot to turn away from the wall before it gets too close.
How does it fire?
It uses a
CircularTargeting system that predicts enemy position iteratively. Then it recurs based on the distance to the new location. It actually works very well. Unless the enemy is acting really weird. It also has a
HeadOnTargeting gun, for stuff it's predictor fails with.
Velocity manipulation near the walls throws off most
FastTargeting aiming strategies.
How does the melee strategy differ from one-on-one strategy?
The current version absolutely fails in Melee. I hope to improve that.
How does it select a target to attack/avoid in melee?
Whatever it scans last. The current targeting system is messed up with multiple robots due to a notable lack of making sure that I'm scanning my target.
What does it save between rounds and matches?
It saves gun stats. These it uses to choose between its 2 guns.
Where did you get the name?
This will turn into my dream robot...eventually. Also, it originally performed better than my wildest dreams ever predicted.
Can I use your code?
Yes. Just be sure to give credit.
Credit for methods in the HelperMethods
? class goes to Alisdair Owens and his
SnippetBot, although they are in many other places.
What's next for your robot?
I plan to give it more aggressive movement, better dodging movement, and even more guns!
Wolverine is the big one right now.
DuelistNano is another (slightly more than 1/6 my
CodeSize!?!?).
What other robot(s) is it based on?
SnippetBot, to an extent.
Comments, questions, feedback:
Welcome to the wiki. =) No shame in losing to any of the Duelists, all of David's bots are impressive. Good luck with your bots! -- Voidious
Welcome! A next-step-up from fast targeting would probably be PatternMatching. Imagine your iterative circular targeting, but instead of keeping the delta-heading and velocity constant, you change them each iteration with data you recorded from what they did last time they were in a situation similar to the current one. Kuuran put an excellent description on the PatternMatching page on how to store your patterns symbolically in a String, so that you can use Java's String.substring() and String.indexOf() fuctions to search for previous patterns, making the whole thing a lot less painful. Good luck with your Robocoding endeavours! -- Skilgannon
Welcome! The behaviour of your current botversion does have a familiar ring to it ;-) Just keep in mind that when it comes down to it, movement is more important than targeting. Have much fun with improving your bot! -- GrubbmGait
Thanks all. Right now I've managed to convince myself that moving in ovals would annihilate everything that's fairly simple, but it's not working too well. The robot that has the oval code in it DOES move in an oval, but it still gets nailed by DreamBot's targeting system. No, it doesn't revert to HeadOnTargeting. That would make me feel a whole lot better about it. If I can get it to work, I'll put it in DreamBot, with some tweaks to make it deal with PatternMatching guns. Are there any pages appropiate to discuss that? At Skilgannon: why do you think I made my CircularTargeting system work like that? Something else; Robocode doesn't seem to be packaging the source in the .jar file. Does anyone know why (the checkbox is checked)? -- Geekgymnast?