This is my first attempt at making a bot to wave surf. It is currently not nearly as bug free as the top bots, but at least I did the surfing my way! (And therein lies the problem, I'm sure.) The gun is pretty good, good enough to get it to 2k I think, but the movement needs much work.
And sure enough, it happened. (There was a major gun bug, though. Fixing that was what did it.)
Codesize of version 1.79: 6004.
1.90.b: Turned off anti-surfer gun. More aggressive against bad bots (not beneficial score wise, but more enjoyable to watch).
1.90.a: Rewrote gun and that made me happy. Most fun I've had coding in awhile. Attempted to incorporate a VirtualGuns system to fight against surfers. Gun is likely still buggy.
1.90: Reverted to 1.80.b except with a new and improved gun. 2043.
1.86.0: A lot of small movement tweaks.
1.85.1: Turned off the lowSeg gun. 2031.
1.85: Made a few movement bug fixes and added a low-segmented gun to help against other surfers. 2025.
1.82: I only ran four battles with the rolling averages in the movement very sped up, but I liked what I saw.
1.80: Cleaned up the gun a bit, and sped up the movement predictor. 2038.
1.79: Gun does not use rolling averages at all; bullet power changes.
1.78: Movement modifications. 2031.
1.77: Added some more to the movement segmentation and slightly sped up the future movement predictor.
1.76: It is a woefully slow bot. I have switched the segmentation over to what PEZ has done in Bee, but my implementation is still rather old and arcane. (Thanks for doing all that testing to find out what works, PEZ!) 2037 post-drift.
1.75.1: Only using the fast stats against difficult opponents.
1.75: Back to weighing the surfing stats equally. Changed the gun, weighing the stats and fastStats equally and rolling the latter.
1.74: OK, just working on the movement, cleaned it up and commented it and realized that I could get rid of some unnecessary stuff. Tried to get a flattener to work, but that didn't happen. Instead, the stats to surf are randomly weighted.
1.73: More of a gut feeling release that involved changing both the gun and the movement.
1.72: Worked on the movement slightly. Tried to make it faster but I think that backfired. 2053.
1.71: Increased bullet power against weak movements and fixed (I think) something in the pattern avoidance array. 2050.
1.70: Added a new fast gun and a new movement array to trick pattern matchers a bit more. 2047.
1.65: Fixed a serious targetting bug by adding a pair of parentheses. It should now perform a lot more like Raiko, the gun it was modeled after. This version broke the barrier! 2031.
1.63.1: Now just the movement fix. 1991.
1.63: Additional gun change and movement bug fix. 1976.
1.62: Failed gun change and movement bug fix. 1974.
1.61: I think I fixed the bug that caused a very rare poor showing against simple guns. 1990.
1.6: New and improved surfing. Weighting the most recent stats + segment stats. Good Dive Protection. 1965.
1.48.1 and 1.48.2: not good.
1.48: Trying to fix a bit of a bug, removed the weird flattening stuff.
1.47: Added some features. Features, bugs, same thing.
1.46.1: Forgot to keep my bullet power changes, plus there was a weird bug. Not sure if it's fixed or not.
1.46: I wonder if my new gun - dynamically segmenting on distance and rrreally easy to add segments to- is any good.
1.45.1: After awhile I start to forget what it is I'm tweaking.
1.45: New movement system (more or less). Getting closer to perfection.
1.44.4: More movement tweaks. 1975.
1.44.3: The 1.44 line is better than the 1.5 line, went back to that plus some small changes.
1.51: Some tweaks of the previous movement.
1.5: Refactored some stuff, looks neater (sort of).
1.44.2: Worked on the movement.
1.44.1: Unsuccessful gun tweak.
1.44: Didn't realize how easy it was to add in a flattener. It's not weighted very strongly though, so little improvement. 1967.
1.43: BulletHitBullet? events now update the stats array. 1.9 bullet power, slight randomness added to gun.
1.42.1: Tried adding some weirdness to the movement.
1.42: Added the most recent unsegmented gf data to the gun. 13th place, and no red scores (at the moment)! 1952.
1.41.2: Now moves as far away from an opponent when there is no enemy in the air. Improved the DiveProtection.
1.41.1: Small tweaks.
1.4: Now surfing every wave!
1.37: Different segmentations.
1.36.1: Slightly changed the segmentation structure to make segments easier to add/remove. Modifying the segments didn't do much in my meager tests, so I am releasing this version with my velocity and distance segmented.
1.36: Added some wall bouncing which has really helped, especially in the HOT evading.
1.35: The future prediction is now more precise and I continue to tweak the criteria to move forward or back.
1.34: I have improved the surfing and fixed a bullet power bug, but it is extremely vulnerable against pattern matchers.
1.3-1.33: I added a new gun - Raiko's segmentation with Kawigi's structure, but the movement tweaks only hurt it.
1.22: Reduced bullet power and added an enemy bullet power segment.
1.2: Fixed the future prediction code, but is unsegmented.
1.1: The future prediction code is still wrong.
1.0: Broken, the future prediction code is wrong.
I'm going to try redoing the segmentation in the next version. What are you guys currently using as segments in your movement now? I have my lat velocity, distance, acceleration, and enemy bullet power. -- Alcatraz
Ascendant uses only its velocity for segmentation. In addition to that it has an unsegmented gf-array for fast learning purposes. Including other segmentation dimensions is still on my totry-list though. --Mue
SS have 1 unsegmented fast learning, 1 unsegmented slow learning, 1 flattener & 1 segmented gf-array (3 distances, 5 velocities & 3 acceleration) -- Axe
Now the top 3 American bots are all lined up, and within three points of each other. --Alcatraz
And with 3 Swedish bots ahead of them. =) -- PEZ
And another 7 countries, too... --Alcatraz
But DarkHallow's mark is 2025 something. Congrats to bringing your bot up to 1975 btw. -- PEZ
Not any more. :-) I'm still nowhere near DH's record though. --David Alves
You might end up in the group of three or near DH's high. Too early to tell at 270 battles. -- PEZ
Hmm. I'm starting to feel left behind again. -- Alcatraz
Question: What is the proper way of determining where and at what angle the enemy fired at? Where does the bullet originate? -- Alcatraz
What angle it fired at you can't know unless you get hit by the bullet or a bullet of yours hits it. The bullet origin is the position of the enemy the tick before you saw it's energy drop. At least that's what my debugging tells me. (RobocodeGL seems to think the bullet's origin is bulletVelocity units advanced from the enemy position at T-1.)
But you already knew this, didn't ya? I'm curious why you ask.
I should've specified, what is the angle of guess factor 0? Is it from the enemy's position to mine 2 ticks ago, 1 tick ago, or at the current time? I ask because while the bullet is always on the right wave, the HOTs do not always fire at what I think GF0 ought to be. -- Alcatraz
It's the absolute bearing from enemy to you at T - 1. -- PEZ
Use WaveSurfingChallengeBotA to test... some bots, like Barracuda, don't always fire exactly head-on, so they can fool you. --David Alves
PERFECTION!! Finally a perfect score against HawkOnFire!! -- Alcatraz
Congratulations! How many rounds? Don't forget to show off your perfect surfing on the WaveSurfingChallenge. ;-) --David Alves
That perfection was only a fluke 35, but I have significantly improved the scores against Bot A. Now, can someone tell me why Cyanide scored 53% against Wesco, 81% against FloodMicro, and 57% against Terrible?? The scores against Barracuda and TimDog? are great and yet that? In my tests here I got around a 96% against Wesco. I have seen nothing to indicate a significant bug that's caused that, but clearly I am missing something. What's going on?? -- Alcatraz
My conclusion is that either this was bad karma from not open-sourcing version 1.6 or that someone's client downloaded Cyanide during a time frame no larger than 10 seconds in which I had a non-functioning version uploaded. Being superstitious, I have released 1.6.0. -- Alcatraz
Yes, it's truly bad Karma not to open source your code! Good that you fixed that. The 53% and 57% score against Wesco and Terrible are a bit strange. Though in 35 rounds the random beast is very present. Maybe you have some problem with certain starting positions in your bot (that can happen as a result of working with dive-in protection) and you had lots of bad luck against those bots? Run 20 35-round battles against Wesco in RoboLeague and see if you're stable around 95%. -- PEZ
Well, I was unable to recreate the bad performances, but I think I solved it by fixing how BulletHitEvents? and BulletHitBullets? are recorded. We shall see. -- Alcatraz
I guess I'll wait for another 300 battles and then join The2000Club. :-D It's been a good two days. -- Alcatraz
Fixing bugs is never wrong. =) -- PEZ
Cool, your first join must be more than 2020 score. Just waiting..., Congratulations advance! -- iiley
Congratulations, u did it. --deathcon
I think this makes you the top ranking American to date as well. I think the best I ever did was in the 2025 range +/- a point or so. Congrats and I'll be back =^> -- jim
Well done! Your rating might have been even higher if the RR@H client hadn't forced so many fights vs. ProblemBots (58 battles vs. Shadow, a -11.7 ProblemBot, and 30 vs. PhoenixRRGC?, a -10.4 ProblemBot) --David Alves
Multiple fights against ProblemBots do not affect your rating. I had the same reaction when looking at the code, but Albert asured me that all your pairings are recalculated when a new battle is submited to the server. The effect of a Problem bot fight will always be counter-ballanced by all your other pairings, making the momentm the important variable. -- ABC
That's not my impression after reading the code. Maybe I'm mistaken. --David Alves
Cool~~ First in with about 2030 high score~. -- iiley
2029 vs. 2027, let the competition for top US bot begin! ;-) --David Alves
Heh, I might not even make it to the next archived ranking as the top US bot. Maybe it's time to make a flattener that works. -- Alcatraz
Time for which one of us to make a flattener that works? I don't have a working one either. :-P Maybe we should collaborate to try and improve both of our bots... I'd like to see a US bot with the crown, even if it isn't me. :-) --David Alves
Go get 'em boys. Time to see the Starts and Stripes on top of the RR@H. -- jim
Not long ago I think Kawigi mentioned that he had some stuff he might like to put in a USA package. I suspect that either he's forgotten about that by now, or our wave surfing has surpassed that. But yeah, if either of you guys have any groundbreaking ideas... pass 'em along :-D -- Alcatraz
Hey Hey! been a lil far from rc, but seems that Alcatraz is beating u all in the usa team, is that right?... Congratulations, man, these r good news... Even more, since this may kind of challenge David, Jim & etc... Gooood mooooorning Vietnaaaam! -- Axe
And I think Alcatraz competes with ABC about having been in the Robocode game the longest, am I right? -- PEZ
I think so too, there are not many old robocoders play actively here now, ABC and Alcatraz are, maybe i am a old robocoder too, but not as old as them.:} -- iiley
Yep, we'd be the oldest. Except that ABC had one of the best bots even when I started. I might also be challenging deathcon for best score/age. 2025/17 is what? Anyway, thanks everyone for the congratulations on getting to 2k.
1st: dft.Cyanide 1.70 75529 25150 5030 40203 5146 0 0 505 495 0 2nd: pe.SandboxDT 3.02 73661 24750 4950 39093 4868 0 0 497 503 0
2048! Congrats dude! This is the fifth strongest bot ever I think. -- PEZ
Do you think the jump from 2030 -> 2048 was mostly due to better movement or better targeting? -- David Alves
Yeah, that's a very valid question. It could be that the gun lowered performance 10 points or so and the movement improvement compensated that. Or vice versa. But as long as it is a forward jump things are cool I guess. =) -- PEZ
I think it was mostly movement that helped, just adding a new array of stats to segment on. I don't think the gun changes would've made more of a 5 point difference in either direction. -- Alcatraz
Not that TC scores are really translatable to RR@H scores. But it sure looks like you have rating points to collect by working on your gun! I wonder if you have created a movement that outperforms CassiusClay's... -- PEZ
Yeah, I guess I'll have to work on that. I've never liked nor had much success with targetting. I might create a bee version of Cyanide if you don't mind in order to see how many points I may be able to gain on my own. Lately, improving the movement has been very fun because everything I've done recently seems to be an improvement. Also, I have a significantly better version of Freddie waiting in the wings if it gets challenged soon in its current form. Makes me happy. :-) -- Alcatraz
Of course I don't mind if you try a Bee version. I've designed it on purpose in such a way that such experiments should be easy to make. -- PEZ
Hey, i just wonder to try a test with Bee Gun for my Pear, I'd tested and tweaked my Pear's movement millions times, and released thousands versions, it can't up to 2040(best about 2035), i think my movement must not be bad, maybe the larger problem was my Gun, do you mind PEZ? -- iiley
Yes, everybody but you can try Bee versions of their bots, iiley. Nah! Of course I don't mind man! =). -- PEZ
Ha~~Thank you PEZ, i'd packaged it just for your admission reply.~;] -- iiley
I may have implemented Bee wrong, as there was only a 4 point rating improvement. I did use the Bee from .89, hope that wasn't a mistake. Regardless, I made a slight improvement to my own gun. -- Alcatraz
Or it might means that you have a hell of a good gun there... Your advances are quite impressive, at least iīm impressed, congratulations! (btw: about v1.73, you do know that is a VERY bad idea to mess with both gun & movement at the same time, donīt u?) -- Axe
I don't think the gun is that great, at least the results in the various targetting challenges give me no reason to think so. I'm too lazy to try the RRGC. (And yeah... I know... and the first results coming in are all lower... but hey, hope springs eternal.) -- Alcatraz
As we use to say: Hope is the last to die, but it dies too... :) Just kiddin, of course... The first rule is NOT to mess with both gun & moving at the same version (even if it result in an improvement, u will never know witch improved your ranking). But of course rules are made to be broken, and the thin air of 2050+ made people (like me) really mad and insane sometimes, so itīs very understandable... -- axe
Hmm, my hope died rather quickly. Back to 1.72 it is! -- Alcatraz
Hey, welcome back to the rumble =) That's a really nice jump for your first version upon returning. -- Voidious
Yeah, I sort of picked a bad week since I have a lot of other work I ought to be doing. But RoboCoding? is much more fun than homework programming. Anyway, that was a gun I basically had sitting around and had just never properly implemented. Question for you: you've mentioned a threshold/rating system several times with your AntiSurfer gun. Is that working on hit percentage, is it a combination of that and other things, or is it something else entirely? -- Alcatraz
Currently, it uses their VirtualGuns ratings as the threshold, but it's effectively almost exactly hit percentage because it's a RollingAverage between 0 and 1. Basically, if the Main Gun is rated over .22, I apply a penalty to the AntiSurfer gun when comparing the ratings; and now, over .26, I don't even consider the AntiSurfer gun. -- Voidious
So I ended up just recorded a VB hit if the predicted index was where the hit was or adjacent to it. I suspect there will be some troublesome switching back and forth between guns that might harm my rating. Also, rewriting guns tends to create bugs. We shall see. -- Alcatraz