Welcome to MeleeRumble! :-)
Nice entrance! Excited to see where this goes. :-)
Now that you're further along, what's your current view on the potential of Melee surfing? Do you think you can effectively dodge simple targeters beyond HOT, or simple learning guns, or even good learning guns? It seems that you and a couple others have proven you can dodge HOT fairly well in Melee...
Of course, there's also the question of whether it's worth it, for what you may sacrifice in good positioning. But that could take a long time to answer.
First off, I'm not purely surfing. I'm doing a minimum-risk movement which has a weighting of wave dangers as well as position dangers, so hopefully my wave dangers don't cause too much of a problem with the positioning, avoiding being targeted etc. If nothing else, hopefully it will take the least dangerous position that doesn't let me be hit by the wave.
As for the potential, from what I've seen the limitation is how much information can be gathered. I'm surfing every bullet fired at every bot by every bot, so theoretically, if I can see all of the waves, I can dodge all of the bullets. I'm not doing energy-bonuses for hits, bactracking chains of energy drops or anything like that, and given the big scan gaps that means I'm missing a lot of the bullet firings. I think there is still a lot of performance that can be eked out of the movement, tracking and weighting still, although it will have to become much much much more complex. I'm not sure if what I envision will successfully run without skipping turns; certainly not without being quite a slowbot. But then, compare any 1v1 surfing movement to a decent 1v1 random movement and the same parallels and trade-offs are also made.
As I said earlier, the cap is the stats gathering. I am simultaneously learning every bot's targeting preferences against each of its opponents, so there is a lot of info that needs to be acquired, and given the big scan gaps, not much data to go on. This will be improved slightly once I get the energy tracking due to more waves being fired, but remains what I think is the main limitation against complex targeters. I don't think it will ever get to a point where it is useful, for example, to add a flattener just against the stats of certain bots but not others. On the other hand, I do think it gives the best possible potential for dodging complex targeters that we're going to get. Anti-gravity-with-perpendicularity type minimum risk movement certainly isn't going to be less predictable, and that is essentially the state of the art when it comes to melee right now.
My feeling from watching matches is that this works extremely well towards the endgame, when there are 5 or less bots on the field. In the beginning it is often too crowded to successfully surf without becoming an easy target, but once there is a bit of space this movement really comes into its own.
Congradulations! I'm eager to reinstal robocode and watch Neuromancer in action! :) Reguarding your 5 bot or less comment: I wonder; Are you effectively doing (minimumRisk*waveRisk = totalRisk), or some sort of wieghted addition instead ? "Limited and sh@#ty info" - Yep, Welcome to MeleeRumble ! :D -Jlm0924
I'm doing an addition, since I don't think the two risks are interdependent. Currently I'm normalising each of them with respect to the median dangers and then doing
danger = 3*waveDanger + 1*positionDanger.
Right now I'm just scratching my head as to how I can get better/more information, and besides hardcoding lots of cases of 'they fired once and were hit twice', 'they fired once and were hit 3 times', 'they didn't fire but were hit twice', 'they didn't fire but were hit 3 times' etc I don't know where that info is going to come from.
I'm still just dealing with regular old 1-tick-wide waves, which does need to change, but that can wait for some gun improvements.
Try tracking all waves from all opponents, and if opponent´s A energy drops the same as opponent´s B wave damage passing over opponent´s A, it is probably a hit?
That may work... or open a vulnerability where opponent A shoots an undetected bullet with power equal to opponent´s B wave damage.
That's what I do. I also track gunheat to eliminate invalid waves, and account for the case of them being hit and firing at the same time (or at least, between two consecutive scans).
For that vulnerability to occur the enemy wave would have to be very low power - bullet less than 0.75 - and they'd have to wait for it before they shoot. Eventually I want to check for bullet bonus before I count a wave as hit, it would be much more complex but could lead to a significant score increase. The trouble is that I don't know if it would help much because I don't know how many waves are incorrectly labelled as 'hit', so I'm not sure if this is worth it.
I've heard that gun accuracy can go up by scanning targets just before fire time, so maybe I'll give that a shot next.
I'm still very curious how much true bullet dodging value you're getting from this, but I guess I'll need to get down and dirty and investigate it myself if I want to know for sure. :-) Obviously the end result of your movement algorithm is a very powerful one, so huge props on that regardless.
But for instance, I wonder if you fed the wave surfing false (but realistic) data about enemy energy levels, how much would it affect performance? It still seems very possible to me that the net of all this "surfing extremely noisy data" + the MR elements is about equivalent to a nicely randomish minimum risk movement.
Well, watching Neuromancer in a battle is quite interesting. There is none of the usual 'stick in a corner and avoid other bots' mentality that I tend to see with regular MR, instead it is all over the place, right through the middle of the field, for the most part missing bullets that seem to fly all around it. I think Neuromancer tends to get a lot more bullets fired at it than most bots because the MR isn't the only thing that's directing it, but still manages to do a brilliant job of racking up the survival points. So yes, I think I am getting some very real bullet dodging, but it is at least partly offset by the increased 'targetability' created by that same dodging.
That sounds like an interesting experiment, but I think more conclusive would be releasing a version using Diamond's gun - is that OK with you? Would I need to use Diamond's radar as well?
Wow, that actually sounds really interesting. Maybe I'll watch some battles.
Sure, you're free to test with Diamond's gun, would be cool to see the results. I don't think you need the radar - it doesn't look like they're even connected now that I do Shadow/Melee Gun. The only gun/movement/radar connection is the gun reporting to the movement for Bullet Shadows, so if you're doing that you'll need to rig something up.
I'm also going to get a Melee client going and try to get the latest Diamond into MeleeRumble... It's possible I've broken something since 1.5.30, I'm not sure.
Cool thought on feeding it false bullet drops :P (No wonder I have no tools to test:) but I think you'd be surprised Void.. In Diamond I believe you used a random "push", to modivate and randomise it's minimumRisk. Melee surfing is simply replacing that random push; using additional risk based on the danger of crossing waves. (IMO) As long as you collect good wave data (in melee) I don't think it will matter if it is perfectly accurate.. (It will still "push" the minimumRisk in a smarter direction) On the other hand, the surfing data doesn't need to be noisy ether. eg: If you detect a bullet drop, but it's been a few ticks since you last scanned the bot, you could simply throw it away.. :)Keep in mind: even if your still missing 3 scans, simply choosing the middle missing scan (as the fireTime and position) means you'll only be out 1 tick max. (Good in my books:) I remember testing with spinning radar) @Skilgannon: Yeah, I also use a similar addition for total Risk,(using standard deviation ). You might wanna try multipling if you haven't tried it already (without zeros). Reguarding your "regular old 1-tick-wide waves" : I though about that, but I just binn smooth to hell anyway :) -Jlm0924