Robo Home | Changes | Preferences | AllPages

He really does have a name, though.



What's special about it?

My first released bot? Other than that, not much. He uses a standard statistical (GuessFactor) gun and fairly simple random movement. He does have a simple adaptive movement system as of 1.1, however.

Version 1.2 adds an AntiMirrorSystem (detection, targeting, and movement), as well as a MusashiTrick-esque movement for both head-on and linear targeting.

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


How competitive is it?

Number 10, it looks like, now that I've ironed the really big bugs out of him. From here on out I think I'm gonna have to make actual improvements to the design to get higher.

How does it move?

Vanilla orbital random movement with a little bit of adaptivity.

How does it fire?

Heavily segmented guess factor gun.

How does it dodge bullets?

He doesn't really, but he does adapt his movement curve depending on where he detects the enemy is firing.

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

There is no melee. (Melee == Spoon?)

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

Whichever target it scans first, unless someone moves between him and his target and thus is accidentally scanned. ;)

What does it save between rounds and matches?

Nothing between matches, stats between rounds.

Where did you get the name?

I didn't. He was just supposed to be a learning experiment for me, and it ended up that I learned quickly.

Can I use your code?

Nope! :)

What's next for your robot?

I have to figure out why shooting sub-3 bullets kills my accuracy, and then put my bullet-power controls back in.

Does it have any WhiteWhales?

Version 1.02 was absolutely destroyed by any bot wearing a cx.* package. Version 1.11 had problems with mirroring and survivalist bots. Version 1.2 seems so have opened a can of worms, and he now has about 15 major problem bots, including both Raikos. :P

What other robot(s) is it based on?

FloodMini (various Targeting ideas), Raiko (WallSmoothing ideas).

Comments, questions, feedback:

Here's hoping! -- nano

Indeed. Congrats! Peculiar ProblemBot list. You lose quite big against Frankie, that's funny. Maybe your'e weak against buggy bots. =) -- PEZ

LOL. No, Unnamed 1.1 had a bug that caused him to always crash at distances greater than 800. ;) ArrayIndexOutOfBounds?. Really really dumb. It just doesn't happen that often on an 800x600 battlefield. Now that I fixed the bug, he should do a lot better against Frankie, and NaN, and a few more bots that like to hang out near walls/corners. -- nano

Hey, PEZ, could I trouble you for an American flag? :D Woo! Sitting at 12 right now and still rising! I hope he gets into the top 10! -- nano

No trouble at all. You still seem vulnerable to pattern matcher guns. I guess that makes us members of the same club. =) -- PEZ

Ouch. Not even close to top 10. I guess I have to settle for top 20. Unnamed 1.02 was at least at 15. I'll have to figure out why I lose so badly to a few of the simpler bots. -- nano

If you're detecting guess factors and adapting based on them you're going to have trouble against pm guns where the guess factor they're firing at is unrelated to their targeting data on you. Maybe you should make this behaviour have an off state that it can learn? -- Kuuran

Actually, the adaptive movement is highly segmented and seems to combat PMs fairly well. My scores against PMs are much higher now than they were before I put the adaptive movement in. My current problem seems to be that I have a huge susceptibility to linear targeting at long distances. To combat this, I am going to implement a version of the MusashiTrick on top of my movement for both head-on and linear targeting. That should keep NaN from beating me 65% to 35%. -- nano

Hrm, sorry, misinterpreted what you said. As for the MusashiTrick bit, consider doing what ABC did and generalizing to any fixed guess factor, scan through and see if all the guess factors match up within a small error, if they do, sucks to be the guy who now has no aiming options ;) -- Kuuran

It is my impression that NaN's biggest weakness is that he fires only power-3 bullets. If I can find the bug in my targeting code that is causing my low-power bullets to be inaccurate, I should be able to beat NaN the same way that SandboxDT does -- by hitting more often. :P I will eventually add AntiMirror code though, as that seems to be an easy hack. I think I will attempt ABC's generalized version of the MusashiTrick as well, after everything else. -- nano

Are you segmenting on bullet flight time or distance? -- Kuuran

I played with bullet-flight time, but here was my analysis: Bot's who tend to base their movement on distance only will smudge my stats if I segment on bullet-flight time instead (and fire low power waves). The effect would be like a smearing of stats so that their profiles appear more flat than they are. So I moved to segmentation on distance and bullet power separately. This way I can still learn just as quickly (by firing waves at each bullet power segment) and my stats are much more accurate. I am sure that somewhere in my code I am just inherently assuming power 3 bullets. I just can't figure out where. -- nano

Yeah, this is why Muffin uses only power 3 bullets and segments on only distance, only flight time seems like a poor idea at best. I hadn't thought of learning all bullet powers concurrently, though, very interesting strategy. Hope you don't mind me borrowing this idea if I ever have a bot that'll fit it ;) -- Kuuran

I don't think learning all bullet powers concurrently is a very good idea. Many, many bots use your actual fire power to guide their movement. If you learn power 3 behaviour from a Wave fired when you have bullets in the air at power 1.5 you probably are polluting the power 3 index. But, important, I have been wrong quite a few times lately. -- PEZ

Very very true, PEZ. And here I thought I had hit on the ultimate strategy. ;) I suppose it is probably a bad idea to fire waves at any other speed than your current bullet power. But then how to learn to use low-powered bullets? I suppose the only way is to try them first and see how well they do. -- nano

What I do in Tityus is to choose fire power based on distanceIndex. That way T always fire the same power at a given distance. Very simple approach, but I think it works. Looks like so in current Ts:

    double bulletPower(int distanceIndex) {
	return 3.0 - 1.6 * ((double)distanceIndex / (double)DISTANCE_INDEXES);
Then I also make sure I don't fire waves when energy management makes T lower the bullet power. Something like so:
        double bulletPower = Math.min(getEnergy() / 5, Math.min(enemyEnergy / 4, bulletPower(distanceIndex())));
		if (bulletPower == bulletPower(distanceIndex())) {
		    Wave wave = new Wave();

-- PEZ

What I'm going for though is a SandboxDT-style way of selecting the right bullet power for the job. He seems to vary his bullet power to great effectiveness, and I thought perhaps I could find a way to do it as effectively. -- nano

Oh, and I found two giant bugs in Unnamed 1.11's gun code. I knew he was better than this. I'm surprised he can hit anything at all with the way I completely screwed up my guess factor code. To clarify, it was correct in 1.0, and then I modified it and didn't re-read it or regression test it, and so I was just re-reading it today and I was like, "WHAT IS THAT?" Ah well. -- nano

1.2's gun looks better, but I think you have a slight problem with your movement. :-) If you can get the two of them right together then this will be a scary bot - 1.11 has one of the best movements I've seen. - Jamougha

Thanks for the encouragement! I did screw up my movement I think. I added in a bunch of "strategy" to my movement code, including anti-mirroring, and trying to dodge head-on and linear targeting bots. My head-on dodging works well, but I never did test the linear targeting one, and I think it's screwing me up. And there's still a problem with my gun somewhere -- I should be getting much higher accuracy rates. Watch this space for 1.21! :) -- nano

Wow. "Slight problem" was an understatement of planet-sized proportions. I don't know how that got there. Maybe next time I won't release a bot before graphing it. -- nano

Beware of that implementing. When u introduce a "strategy" moding like MusashiTrick or AntiMirrorSystem, u have first to be sure that the "detection" system that ativate that modes is good enough. An example: MusashiTrick pure by itself is perfect to Musashi's 2.15 movement. When i came up with 2.18, that added some wall-smothing feature, it started to fail (didn't understood yet why), the solution: No wall-smoothing while in MusashiTrick.
What i want to say with that is that these kind of features are potentialy harmfull to your "Pure Movement" (and vice-versa), you have to be very sure that these strategies doesn't have a negative image against bots that doesn't require them: That is a Good detection system.
Another example: Musashi's actual version does not detect OldManXP mirror movement (the real fact is that detects only sometimes), that is because it is a "loosen" mirror. But if i turn my mirror detection sys to be more "loosen", i start loosing points against every one else. -- Axe

To me the MusashiTrick is the detection system. And only necessary in a mini-bot really, since a big bot can afford EnemyWaves. In the dev version of Tityus i no longer use the MusashiTrick btw, but I can still detect quite accurately if I'm being hit at GF1. More on that when dev T is out of the door. -- PEZ

Yes, u r right, of course... And also about enemy waves, of course also. I was only saying that these tricks like MusashiTrick have to be "tunned" to your own bot. MusashiTrick (the original code) was writen for Musashi, if the bot implementing it does not fit in the movement requirements for MusashiTrick, u will have to make some changes. These changes have to be tested and re-tested. If not, these tricks might have a negative image (as i said, i can beat OldManXP in dev. version, but if i tune my AntiMirrorSystem to get it, i then start to detecting other bots (that aren't) as mirrors, and then my score against the others goes down). It isn't a great barrier, i am only recommending caution.
PEZ: About enemy waves, i'll request you soon some advicements, if u don't mind. I have some history doubts about synchronizing(?) them with the real bullets... -- Axe

When you detect EnergyDrop move the wave ahead by two ticks from the enemy position of one tick ago, that is the correct location for the tick you detect EnergyDrop. Move it ahead normally after that. -- Kuuran

Is it incorrect then to call the detection and dodging of head-on targeting "MusashiTrick-esque"? I definitely don't use Musashi's detection mechanism. I use EnemyWaves. In other news, I am discontinuing development on Unnamed (except perhaps a 1.3 release that includes final bug-fixes and tweaks). As Unnamed was originally intended merely as an experimentation and testing platform, his codebase is very spartan and straightforward, and very difficult to modify and maintain. Further development will happen in a new bot, on new movement and targeting ideas, and with a more structured platform. -- nano

Well, I think that would be incorrect yes. What the MusashiTrick gives us is a codesize minimal way of making a very well guided guess on when we have been hit at GF1. If you're not using that detection trick you're not the least MusashiTrick-esque in my book. BTW, the dev-T doesn't use neither EnemyWaves or MusashiTrick.

I think the person to ask advice on EnemyWaves is ABC, he seems to truly master them.

-- PEZ

I think Vuen is the person to ask on EnemyWaves, he did the 100% aligned EnemyWaves for his bullet shield bot. I based my implementation on information he wrote here, and never used RobocodeGLV014 like he did for fine-tuning. I still get miss-aligned enemy bullets, sometimes up to 50% angle from HeadOnTargeting bots at close range. -- ABC

Btw: I didn't "heard" Vuen since a quite time... Does anyone have notices 'bout him? -- Axe

Not since he went to university. Maybe some greedy girl is hogging Vuen away from us. -- Kuuran

Arg! Unnamed is so ugly! I am going to start a new bot. -- nano

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited February 16, 2004 16:46 EST by Nano (diff)