[Home]Sunshine

Robo Home | Changes | Preferences | AllPages

Showing revision 4

Author

tfh2

What's special about it?

It's a bright happy ray of sunlight that will fill your day with the warm feeling of inner joy. (plus, I actually understand/wrote all of the code.) When the super bots thrash Sunshine down to zero energy and move in for the ram death, Sunshine will take them for a fun chase around the battlefield. Good times!

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

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

How competitive is it?

It can trash the sample bots, and does well against most "not super advanced" bots, but it's got no hope against those wave-surfing stat-gun pattern matching robot death mongers. My Un-official RoboLeague tests against the RoboRumble bots rank Sunshine in the top 100, on a good day.

How does it move?

"Random flat tank tread movement" by tracking visits to positions along the path that the tank moves, ignoring turns. I tried to add some extra weighting to get rid of spikes and patterns, but it's not working so well ... graphs of the accelerating and decelerating curves are very predictable, and my range of movement is not very "wide" and the advanced bots lay waste to me pretty fast.

Since it's a mega-monster-sized bot, I have some/various tweaks/complications like "floating toward the opposite end of the wall" against pure wall-hugging bots (so the target's escape area is narrower for my incoming shots) and actually waiting for the "time since last incoming bullet" to exceeded a time limit before moving in for the ram-death bonus-humiliation victory. I had been ramming straight into the target's last few bullets. (ouch! not a good plan.)

How does it fire?

Array of virtual guns consisting of "linear-with-turning future prediction" aiming. Different guns are instantiated with different (fixed) guessfactors and whichever has the most virtual hits (recently) is used. The first gun on the list is pure Head-on which is used by default.

How does it dodge bullets?

More or less random, but it does wait to change direction/speeds/flip until just after a shot has been fired. If no one is shooting back, then Sunshine won't flip/bounce. (Well, ok, fine, actually it will, in certain situations. )

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

It has some (attempted) checks to "run away" if it's doing poorly in a field full of more powerful robots ... but it's basically the same mode as 1v1. It tries to "do everything".

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

Some attempts to weight "whomever shot me for the most damage" when picking targets, and waits to switch until after it's finished shooting at the current target. The scanner tracking periodically turns to scan the oldest known target/enemy. (rather than spinning all the way in a circle. I heard about the trick to lock the gun with the radar for faster radar sweeps, but haven't bothered to mess with that ... )

What does it save between rounds and matches?

It doesn't save anything to data files (because of the stupid JVM bug) but it does have some static variables that hold data between rounds for virtualguns and hits-per-shot ratios per target. It's designed for an "only three rounds vs. unknown competitors" tournament, so saving out loads of data won't do me much good anyway.

Where did you get the name?

I wanted something less boring/expected than "Destroyer3000" or "Axe0fDeath". Sunshine is just a shiny happy robot who wants to be your friend, and then kill you. ( an older bot shot 0.1 power bullets and would "get mean" once someone started to hit it. )

Can I use your code?

Not yet. (It's still a huge horrible embarrassing mess!)

What's next for your robot?

My robot needs a vacation. (I'm tired of messing with it!) I guess I need to add stat-guns and wavesurfing like everyone else? (sigh) I continue to have new/different ideas for properly implementing my original movement strategy, but I think it will be as effective as plain wave surfing. I tried slapping in the FloodNano gun, which was useless. I tried segmenting the virtual-hits based on distance, but that didn't seem to make a difference. I could segment on velocity/since-last-change/etc and see what happens. Sunshine is a fairly "slow bot" so maybe I'll optimize it. a bit. maybe.

I only started on the Robocode because my school scheduled and then canceled two(2) tournaments in the last few months. These so called peers of mine are really just a bunch of feeble worthless lazy wimps! (but don't quote me.)

I might add a tweak to support "super wide" battlefields, just because that's silly and it should be an easy modification.

Does it have any WhiteWhales?

For the longest time, the spinbot was a horrible problem, but now I always use Cyprus3 as my "why is he still killing me?!?" test opponent. Testing against, say, Tron3 is totally and completely pointless.

What other robot(s) is it based on?


Comments, questions, feedback:

Why don't you add this bot to the RoboRumble@Home? That will give you feedback that probably can guide you very well on what to focus on next. If I where you I would throw the VG out the window and replace it with a GuessFactorTargeting gun instead. Since you already collect virtual stats you have most of the work for a GF gun done. -- PEZ

I don't want to spend time building a bot that moves/shoots exactly the same as all the super bots. (guessfactors plus wave surfing, how exciting is that?) Segmenting my virtualhits by distance didn't seem to make any difference. I spent a Huge amount of effort trying to get pattern movement/matching to work. I'm going to "sit and think" for a while on some new/crazy movement ideas, and meanwhile be busy with the fall semester. -- tfh2

Well, it's very exciting if you ask me. The two by far greatest inventions in robocoding. Lots and lots of room for inventions and ideas within those areas. At least pattern matching isn't all that more exciting compared to guess factor stats. But I'm glad you're ready to try think completely new. That can bring forward great stuff. It has before. I still think you should enter your bot into the RR. -- PEZ


Robo Home | Changes | Preferences | AllPages
Edit revision 4 of this page | View other revisions | View current revision
Edited August 12, 2004 18:37 EST by PEZ (diff)
Search: