Robo Home | WaveSurfing | Changes | Preferences | AllPages

Pugilist picks the closest wave carrying a bullet. Then it iterates a test position backwards and forwards from itself going MAX_VELOCITY and WallSmoothing searching for the bin with the lowest number of hits it could possibly reach. Then it goes there and not until the surfed wave hits Pugilist it chooses a new destination to go to. It's still surfing I think, but not /TrueSurf. It takes some extra work to get the bot to move smoothly and not stand still too often and thus limiting it's possible reach. -- PEZ

which of the two surfing styles is easier to implement? --andrew

I think they are about equally easy to implement. Or equally hard I would say. At least it wasn't easy for me. But then I had decided to fit it in a MiniBot directly, which might have done things even more bug prone... The techniques RaikoMX and Pugilist uses to check the bins are a bit different too. But they could switch those and still use their choosen surfing style. I have no math training at all so I went for the iterative technique. In a MegaBot I could fit much more accurate extrapolation of my current movement. I'll maybe try that next. -- PEZ

I've been working on a WaveSurfing/GoToStyle movement, but there's a lot of nasty issues... I don't think either way is easy at all. --David Alves

Yes, 'easy' doesn't really apply to WaveSurfing I think. The least difficult way would probably be to use AntiGravity. It would simplify a whole range of issues, and should be fairly effective. -- Jamougha

That's what Lacrimas does I think. -- PEZ

that's what fusion is going to do i think...once gu gets the bug out.--andrew

This is also what Aleph does. Just because I allready had all the work done in GlowBlowAPM if it comes to calculating the FuturePosition (if you want to make this thing as accurate as possible). -- rozu

And we're all waiting for Axe to write that SilverSurfer/WaveSuffering page so that we know how state-of-the-bleeding-art /GoToStyle WaveSurfing is performed. -- PEZ

I finally got around to implementing this in Druss. What I do is, for each time I see a new wave, have my precise prediction return an ArrayList of points that it visits, and I evaluate each one according to the normal algorithm used in TrueSurfing. I then set a Point2D.Double in the enemy wave called safePoint at the safest of all the predicted points, and each turn I just say goTo(surfWave.safePoint);. I'm getting over 99% over 35 rounds agains HawkOnFire, and around 98% against DoctorBob (no firing!). Best of all: it's FAST!. So now I can put about 42 guns in here, and still not skip any turns =). -- Skilgannon

But i think this method will get slow if you want to surf multiple waves (at least as slow as the traditional way). --Krabb

I still don't get how surfing multiple waves will help. Then again, I hate stats, and haven't covered any in school, so that's probably just me. From what I understand, you just go to the safest place in this wave. Deal with the next wave when we get there, kind of thing. Trying to surf later waves could screw up where the safest place is for this wave, and you might slow down, or stop, in a dangerous place.

However, using Goto gives me an advantage: I am stopped when the wave passes over me, ALWAYS. This reduces the possible places my bot can be hit at, because I'm not moving as the bullet passes next to me. The disadvantage is that my maximum guess factor is reduced a bit, but it's all tradeoffs =) -- Skilgannon

Surfing multiple waves will help when bullets of different power are fired, usually during the endgame. It may happen that two bullets will arrive at (almost) the same time, so you won't have time to surf the 'second' wave. Also, the second wave usually is weighted less, according to distance or time-to-arrive, so it will have just a minor influence. As for being stopped when reaching the 'safe place', my implementation (which is still not ready yet) will adjust the botspeed to arrive at the safe spot as the wave will hit, so the bot will still have a velocity. -- GrubbmGait

Surfing multiple waves does more good than that. It handles the situation like "what if a slightly worse position on the next wave will allow me to get to a much better position on the second and third". WeeksOnEnd surfs X ticks forward, and speaking from experience, its performance noticeably improves as X increases. -- Simonton

The way I see it, TrueSurfing will get to the same spot on wave 1 as go-to surfing and it can account for multiple waves without being crazy slow. Sure the first wave is the most important, but in those last few ticks surfing a wave, anything you do might land you in an equally safe spot, so why not account for the next wave and start surfing it too? Anyway, glad to hear you are having success. Surfing one wave perfectly (i.e., bug-free) would be a powerful movement no matter how you do it - as long as you do it right.

One other thought: I'll put my two guns in Dookious up against your 42 guns any day. ;) Just kidding, but what I mean is that one good gun is usually better than lots of decent guns, so you might reconsider simply stuffing tons of guns in your tank and focus on tuning one of them.

-- Voidious

Yeah, but remember, different types of guns hit different movement better. A pattern matcher will hit a double-oscillator style movement better than either of your GF guns, for example. And 42, well I figured that is the answer to LifeTheUniverseAndEverything?, so it is a good number. =). I'll tune each of them against a certain type of movement, and that type only, and then let VG decide what to use. Imagine a combination of NT, GF, PM and DC, all on top of a bug free movement. THAT is my goal. =). -- Skilgannon

Robo Home | WaveSurfing | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited September 12, 2007 23:28 EST by Krabb (diff)