Robo Home | Changes | Preferences | AllPages


"RoboWiki Donor"
Real Name: Mattias
Location: Goteborg, Sweden, Europe
Born in: 1977


Name Category Best Ranking Current Ranking Score Notes
PulsarMax 1-on-1 MegaBot 3rd (Feb 24, 2005) 3rd 2065
PulsarNano 1-on-1 NanoBot 1st (Aug 23, 2004) 6th 1813 Holds several RobocodeLittleLeague titles (nano: 1-on-1, overall & micro: 1-on-1) and two [records]
PulsarNanis? 1-on-1 NanoBot 2nd (May , 2005) 2nd 1802 Holds several RobocodeLittleLeague titles (nano: 1-on-1, overall: 1-on-1)

A picture to celebrate reaching top nano position :)

Robocode background:

When I last tried robocode in the fall of 2003 I started out with the basics. from head on targeting, to linear and circular targeting in a virtual gun array. Then converted them all to gf targeting with virtual bullets (instead of using the max escape angle they used max velocity from that heading both forward and backwards). But I never took it beyond distance segmentation for some reason. Maybe I didn't think of it at that time. Instead I tried to predict the enemies position more and more accurately with time since stop on average, avg speed etc etc and put that into the circular targeting stuff. At least that ended up with 28% hitrate against ArtOfWar?. But then everything I tried in movement failed to improve and I got tired of being beat by the good bots. SandboxDT seemed unbeatable and no really new ideas could be seen (from my limited view of it all), and it seemed that it the only way was hard work to copy sandbox dt and improve small details to be able to win.

Then one day in beginning of april 2004 I saw the wiki bookmark and went back and too my surprise SandboxDT wasn't the leader anymore. That inspired me to start coding on a new bot. But carefully this time and not wanting to rush it. Read a lot of things on the wiki (great resource) experimented, watched robots and took notes. Eventually I started to understand what wave surfing was, but it wasn't until I started to almost get it to work that I understood how such a neat idea could be so hard to actually implement. Seemed easy enough! But I started with wave based GF gun this time, with a few more segments than distance this time around :) But having no idea what segments were good and there was no way I was going to recode my robot everytime I thought of a new segment or read about one I made a guessfactor targeting virtual gun array where I just state how many and what segments I want to have. Java reflection made it possible to dynamically pick the number of dimensions and sizes easily for this. A month later PulsarMax 0.1 was released! <i>Note: I am not using reflection any more, the core functionality I was looking for could just as well be implemented with Lists of Lists (etc) holding arrays.

I've learned a lot from this wiki and while my actual robocoding haven't created anything groundbreaking or inspiring for anyone (yet!) I hope to be able to give back some things however small to the community. Things such as RoboRumble/RatingDetailsComparisonServlet and the rewrite of the RoboRumble server DataManager? for better performance and reliability hopefully helps some.


My current robocode ideas that have yet to be implemented and tested involve dynamic data segmentation, virtual guns that are sort of situational based, one thing I'll keep secret for now (ooh the suspense..., it works doesn't it? or not...), and other things!

Archived Chat 1


Hi Pulsar, take a look on some of the last comments on the [RobocodeNG] page. I want to somehow integrate RR@H or build a even better system directly into Robocode. I have been told that you work on a new Robocode Repository and also a new client/server system. I suggest that we cooperate and put things into Robocode. Are you interessted? :-) --Fnl

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited September 27, 2006 20:09 EST by Fnl (diff)