[Home]DreamBot

Robo Home | Changes | Preferences | AllPages

Showing revision 8

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.

How does it dodge bullets?

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!

Does it have any WhiteWhales?

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?

Well, moving in ovals of most sizes, are either going to involve moving close-to-straight most of the time, or moving in circle-like arcs most of the time, depending on just how oblong the oval is. So pretty much any possible oval is going to get hit well-enough by either linear or circular targeting. As far as packaging the source, I think it might require the .java and .class files to be in the same directory but I'm not certain of that. --Rednaxela


Robo Home | Changes | Preferences | AllPages
Edit revision 8 of this page | View other revisions | View current revision
Edited April 17, 2009 17:10 EST by Rednaxela (diff)
Search: