Marshmallow

From Robowiki
Jump to navigation Jump to search
Marshmallow
Author(s) PEZ
Extends AdvancedRobot
Targeting VirtualGuns
Movement Lateral RandomMovement
Current Version 1.9.5 (February 20 2004)
Download
Source

/ThingsPEZRemembers - /WhatsInAName - /NotPerceptualAtAll - /MovementProfile - /DTGunTest - /CodeSnippets

A newbie attempt at creating a competitive Robocode robot. (I've earnt much experience since I started with Marshmallow so I'm not a newbie any more). -- PEZ

What's new?

  • February 20 2004 - Marshmallow 1.9.5 released
    • Movement tweaks.
  • August 3 2003 - Marshmallow 1.9.1 delayed
    • My testing doesn't show the clear improvement I had hoped for.
  • July 30 2003 - Marshmallow 1.9.1 looks promising in development. I'll be away from Robocoding and the net until Saturday, but to keep you others on your toes, here are some news:
    • I'm continuing my work with shielding the statistics from contamination and also trying to perform some survivalist tricks of my own invention.
    • This actually performs a bit worse (than 1.9) against Kawigis F bots. While it performs 'much better against the chinese bots so its ER ranking might improve as it is. But I'll try to see if I can have both the American and Chinese bots on the same plate. =)
  • July 27 2003 - Marshmallow 1.9 released
    • Let's see if that #2 spot can be reclaimed.
  • July 25 2003 - Marshmallow 1.9 close to release
    • Now five distance segments.
    • Statistics shielded against contamination.
    • Now and then fires sub power 3 bullets.
  • July 19 2003 - Marshmallow 1.8 released.
    • Tweaked movement for sub power 3 bullet fire.
    • I had to nail a small bug, current version is 1.8.1.
  • July 15 2003 - Marshmallow 1.7 released.
    • New movement. Dunno if it's better than the last, but it aint much worse.
      • Trashed the DynamicDistancing stuff. It seems to work better without it. This also saves a few bytes in my data directory.
    • Can't beat DT, Chameleon or FloodHT yet, but maybe it can go back to #4.
  • June 26 2003 - Dropped to #5 in EternalRumble. =(
  • June 14 2003 - Marshmallow 1.6.1 squeezes itself in on EternalRumble #2 ranking! WHOOOOO!
    • It almost beat DT again. Actually it lost only to DT, Princess and Tron, all with quite small margins. And it took care of the two Cigarets quite comfortably, must have gotten a bit lucky there. I'm a bit surprised that it ran against so few opponents. I guess the neighbourhood is smaller at the very top and bottom.
    • I think Marshmallow really shows how important movement is in the current evolutionary time frame of Robocoding. Its guns have been practically unchanged for months and months. The same guns was used when M was in #56 or whatever it was.
    • Apart from movement I think ManagingEnergy in general and TheEndGame strategies in particular are important. When your guns can only inflict so much damage it becomes important to try outsurvive your opponent by not doing stupid things like shoot yourself to death against an exhausted enemy.
  • June 13 2003 - Marshmallow 1.6 keeps it's #4 ranking on EternalRumble
    • It almost, almost, almost beat SandboxDT!
    • I hope 1.6.1 will perform better.
  • June 11 2003 - Version 1.6.1 released.
    • Tuned movement. Now pretty flat against power 3.0 bullets. (Have no idea how it looks against weaker bullets.)
    • Tuned end game behaviour.
    • Replaced scanner. Thanks Jim!
    • Somehow it seems I have broken the guns. I can't seem to hit my enemies any longer...
      • This goes specifically for the SymbolicPatternMatcher which was pretty good a short while, but now seem totally lame.
  • June 09 2003 - Version 1.6 released.
    • New flattening mechanism again. Thanks to a suggestion from Crippa I managed to get Mako's profile quite flat and this is an attempt to move that into Marshmallow. Only half succeeding though...
    • Sports a new PatternMatching gun, replacing the previous one. Seems even less effective though.

Bot Information

What's special about it?

It's my first bot. And it tends to run like a yo-yo up and down the EternalRumble rankings. Has stabilized somewhat to belong in the top-10 lately.

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

http://www.robocoderepository.com/BotDetail.jsp?id=1220

How competitive is it?

Still a top-10 bot in ER! Saving data pays much more in ER than it does in RoboRumble@Home

How does it move?

It uses a lateral RandomMovement.

How does it fire?

Using 8 VirtualGuns, some of which are HeadOnTargeting, RandomTargeting, SymbolicPatternMatching, AveragedBearingOffsetTargeting, LaserTargeting, EscapeAreaTargeting and an AntiMirrorGun.

You could sometimes think it uses Marshmallow Guns, but it's not. Promise. =)

How does it dodge bullets?

It tries to be as random as possible. Varies its velocity and lateral travel distances to create an unpredictable movement for PatternMatching and a Movement/FlatMovementProfile for StatisticalTargeting to have troubles with. It reacts on enemy fire in two ways:

  1. Chooses a new, random, velocity (though it often chooses max velocity, so you can't always see this reaction)
  2. Now and then enemy fire causes M to stop its current move and choose a new one

Additionally, the bullet power of the enemy is used for knowing what the min and max lateral angles are. This helps the flattening mechanism.

How does the melee strategy differ from one-on-one strategy?

It doesn't have much Melee strategy.

How does it select a target to attack/avoid in melee?

Closest. Though it's Melee Radar scheme is broken so it only sees one enemy at a time.

What does it save between matches?

  • Stats for its StatisticalTargeting
  • VirtualGuns rating
  • DynamicDistance info

Where did you get the name?

When I started with Robocode I figured my bot would get toasted out there.

Can I use your code?

Some of it. It's spread all over the wiki.

What's next for your robot?

  • GuessFactorTargeting
  • A new type of gun that I haven't seen anybody else talking about so it's secret for the time being.

Does it have any WhiteWhales?

That would be SandboxDT.

What other robot(s) is it based on?

The code base is from MyFirstRobot. Then I have hamstered ideas shared by Albert, iiley, David Alves and others. I think of these David Alves have influenced Marshmallow the most.