[Home]DreamBot

Robo Home | Changes | Preferences | AllPages

Showing revision 12

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.

http://geeksrobots.googlepages.com/home With developmental 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.

Sorry! Unfortunately, the source for v. 1.0 to 1.8 has been lost. All later versions will include source.

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

I tried to give it a symbolic pattern matcher, but it doesn't work. Also, the radar has been slipping, so I gave it the FACTOR lock...but now nothing else works (!!??). The new version does, however, have a nice new structure without the sloppy looking turnGunToTarget?(EverythingButTheKitchenSink e) {...}. If I really wanted to temporarily remove the pmc, I could with "//" before 1 specific line. Once I get the FACTOR lock working, I'll make that PatternMatcher wish it had worked from the start. -- Geekgymnast?

From what it sounds like, you are calculating how long it would take for your bullet to get to the enemy, iterating that many ticks forward, calculating for the new one, and iterating forward again. This can still leave you slightly inaccurate, especially if they are moving away and towards you a lot. What is better is to iterate forward, but as you are iterating calculate how far the bullet could have traveled at this time. Once the bullet has traveled a further distance than the distance from the firing point to the predicted position you stop iterating. Take a look [here] for an example. -- Skilgannon

It does do that, in v. 0.1.9 (at least, it did until I implemented the FACTOR lock. Why did that mess it up???). The CircularTargeting works perfectly. My SymbolicPatternMatcher and FACTOR RadarLock? are what is giving me grief. The PatternMatcher misses repeatedly, but I cannot figure out why. The new radar lock somehow is stopping everything else. -- Geekgymnast?


Robo Home | Changes | Preferences | AllPages
Edit revision 12 of this page | View other revisions | View current revision
Edited April 18, 2009 17:48 EST by Geekgymnast (diff)
Search: