Yoda

From Robowiki
Jump to navigation Jump to search

Yoda

http://www.starwars-tw.com/story/character/jedi/yoda-ep2.jpg

Bot Name

Yoda age : 0 (age = version number)

Author

Gorded

Extends

AdvancedRobot

What's special about it?

Innovation, new thinking. The idea behind Yoda is quite simply to take full advantage of robot features previously taken for granted.

Tell me about it?

Yoda, as you will all know is a Jedi, thus Yoda has an underlying Jedi class that makes my life alot simplier. A jedi has many features such as being able to sense when a robot fires or handling death event properly etc.

I'm exploring dynamic clustering based GuessFactors, which i feel can greatly outperformed stats based GF but requires alot more figiting with the implementation. Atm i'm still learning about the flaws that come along with simple implementations :)

I've had a great deal of fun with Yoda, especially on a new technology i think is a huge advancement that i'm pleased to say is finished and from what i can see bug free :0 But everyone will have to wait for Yoda to be realease :)

Yoda : I'm coming for you Dooku

How does it work?

It works with the force!

Great, I want to try it. Where can I download it?

old Yoda (acutally age : -0) http://www.robocoderepository.com/BotDetail.jsp?id=3260

Yoda age : 0


How competitive is it?

How does it move?

  • Ataru a new form of Surfing - a comment by ABC gave me the idea for this -- thanks :)

How does it fire?

I haven't quite thought about the gun yet, most likely will feature a Dynamic Clustering GF gun as well as a stats base GF gun

How does it dodge bullets?

Ataru

Victory Dance

When Yoda wins he takes off his clothes and dances naked on the battle field :()

= What does it save between rounds and matches?

  • between rounds: all gun and surf stats.

Where did you get the name?

The name is from my favourite character from Star Wars. The inspiration for naming my bot after the great jedi master come from Voidious and his bots Dookious and Lukious etc.

Can I use your code?

Yep when its release

Does it have any WhiteWhales?

Dookious

What other robot(s) is it based on?

The two bots i have been looking at for guidance and idea's are Dookious and CassiusClay

Credits

Voidious, ABC, David Alves, PEZ, Krabb, Paul Evans -- i'll explain more later

Comments, questions, feedback:

You say it beats Dookious? Interesting, I would like to see that source code. Actually i'm surprised Voidious hasn't already made a bot called Yodious. =) --Chase-san

Heh... I never quite found the right bot to call Yodious, and I'm not planning to use Star Wars names any more =) -- Voidious

I believe i said does fairly well, beating Dookious about 25% - 35% of the time depending on luck, but this was my old bot Thundar, Yoda i expect to do better, especially with the anti-surfer gun i am working on. -- Gorded

Over how many rounds? --Chase-san

I usually only test on 10 rounds and 100. The normal 500 takes too long -- Gorded

Hmm, "normal 500"? For what it's worth, that's not normal for me - I generally run 35-round battles, as that's what used in the RoboRumble. =) -- Voidious

Hmmm.. Wow i thought that since most of the challenges say to run around 500 round to get a good reading so i thought thats what most people do, 35 thats alot better and faster, thanx. I may not need as many segments on Yoda than i thought. Maybe just for nice scores in the challenges :)

Thats the reason there are also FastLearning challenges, they resemble more the roborumble setup. The results may vary a lot though, so more 'seasons' of 35 rounds would be advised. (and RoboLeague recommended for running it) -- GrubbmGait

I wanna see this thing in the rumble. :D --Chase-san

Grave danger you are in. Impatient you are. --Yoda

Speak not as a master, when you are yet a padawan. ;) --Chase-san

Always two there are, no more, no less: a master and an apprentice. --Yoda

Any one interested in beta testing the plugin system when yoda is release, i need at least 3 people to meet the requirements for my project -- Gorded

  • I`m the first :) --Krabb

Does any one have any idea for how to manually package a robot for use in robocode. Robocode doesn't not package classes that aren't explictly used by the robot -- Gorded

A .jar is compressed with a .zip compression, so you could use any .zip util to create a .jar, hypothetically. I have certainly used "zip" at the command line (I'm on a Mac, which is BSD underneath) to re-package a bot. Something like: zip -r voidious.Dookious_1.543.jar ./voidious/*, for instance. You could also do some dummy code to reference the unused classes to "trick" the Robocode packager into packagaing them. And David Alves uses Ant to package his bots, I think he's posted some info on the wiki somewhere about doing that. -- Voidious

On the Ant page, of course! --David Alves

Thanks for the help Voidious, Yoda now can dynamic load its movement guns and plugins on Linux/Windows in/outside side of a .jar file which is a great step. Now all that is ahead before Yoda's release is segmenting his waveSurfing and guessfactor gun. -- Gorded

Unsegmented and it beats Dookious? Wow, thats one heck of a bot! (I am entirely joking, I realize whats really going on ;) ) --Chase-san

Thanks Krabb for being the first to help out with my beeta testing stage, i still looking for two more people who would be interested in beta testing the plugin system. And for a little update on Yoda release status, if finishing up segmenting the Wave surfing and guessFactor plugins after i'm doing a complete clean up and finishing the commenting. I expect to release it by next Weekend. -- Gorded

If you want to contact me directly choose your favorite communication tool and use my info here. --Krabb

I'd be happy to write a plug in for you also. -- Kev

Any one who has said they will make a plugin, gun or movement to help me with my project, i have packages sample plugins with the .jar. All gun plugins are in rc.yoda.plugin.guns and must extend rc.yoda.utils.Gun. Movement plugins are in rc.yoda.plugin.moves and must extend from rc.yoda.utils.Movement. And regular plugins are in rc.yoda.plugin and must implement the interface rc.yoda.plugin.Plugin. For a plugin to be loaded it must reside in the directory of its brothers

An simple example of a regular Plugin is the MovementArray in rc.yoda.plugin, If you have any questions about making a plugin don't hesitate to add me on msn and ask me or e-mail me. When you have finished writing the plugin i would ask you to please write a few comments and your general feeling about the plugin system and email that to me aswell as a copy of the plugin (wont be packages with Yoda thats is entered in RR@home), my email is Gorded@hotmail.com. Thank you -- Gorded

It seems that RR@Home (both client and server) can not handle bots without versionnumber, although Robocode itself has no problem with it. Also Yoda makes use of the Rules-class. Therefor it will not (yet) get a ranking. -- GrubbmGait

I grabbed a copy of Yoda and shoved it into a battle against some of my bots. Take these with a grain of salt, as thier run over only 35 rounds. My little girl Velshea 1.2.1 (odd revision number is dev) demolishes Yoda, and proceeds to wipe the floor with his green remains. However vs my much better bot Seraphim, Yoda's lightsaber strikes true and takes the multi-color angel apart. Yoda easily wades through my collection of incomplete and development robots. --Chase-san

@GrubbmGait ok thanks ill repackage it with a version number a change the Rules usage -- Gorded


Ok, Yoda has been re-pacakaged with these corrections made and an anti-surferish gun which makes it preform alot better. A full rewrite of Yoda is on its way with some insane ideas aswell as separate package for the plugin manager, if there are any other problems with yoda that prevent it from entering the roborumble just give me a shout, and for those who have kindly offered to make a plugin for beta testing, how its it coming? are there any questions or problems? -- Gorded

  • I just reloaded the Rumble to test Yoda and it failed. Are you using the Robocode client to package the bot? (Menu: Robot | Package robot for upload) It makes things simpler. - Martin
    • It may be related to the repository crashing yet again. -Martin
  • Try it again i think i accidentally packaged it wrong, i tried it again and it seems to work now --Gorded
    • It downloaded but I think it is having an issue with crashing, which is likely Robocode version related (I have 1.2.6A) -- Martin
      • Actually it works fine with 1.2.6A. I run the rumble with old faithful (1.0.7) -- Martin
        • I looked into this and it crashed because Yoda calls setAllColor which doesn't exist in 1.0.7 so i fixed this and added some energy management to the circular gun that comes with Yoda which used to fire power 3 all the time :( -- Gorded

A quick thought on "spasming": I don't think I'd call it "indecision". A bot with GoTo-style surfing chooses the safest spot and goes to it. A bot with TrueSurfing will pretty much end up at the same spot, but its algorithm will take a much weirder route to it because it's only checking 3 movement options each tick; it really is deciding on the safest spot each tick. I think this is actually advantageous in terms of throwing off enemy targeting, too.

I would say check out SilverSurfer to see a true lack of spasming, as it's the only high level surfer I know of that uses GoTo style surfing. Maybe Ascendant has some GoTo in it, too. (I agree that CassiusClay is a really fun bot to watch, though, very fluid...)

-- Voidious

It is not friday, but the school work is boring... I looked at your Plugin system and i have a few questions :) I'll add you in MSN. --Krabb

Yoda 1.0.5 is not performing as expected, and it used a HUGE amount of memory. My RR-client is crawling through the battles. -- GrubbmGait

Ya, sorry about that i went a bit wild with the segmentation, although when i put Yoda 1.0.5 against a few test bots he preformed extrodinaraly well and kicked the previous version around the sandbox with a score of 28wins - 7loses, but i will fix a few things with the segmenting and release a new version :) -- Gorded

This is probably going to be the last release of Yoda, untill after the rewrite, I'm changing alot of his strategy and making him a smarter bot. Probably going to try out Dynamic Clustering =) -- Gorded