[Home]Gwynfor

Robo Home | Changes | Preferences | AllPages

Showing revision 28

Gwynfor

by Rednaxela

What's special about it?

Well, not too much really. It's my first bot that will go public. Pretty boring... so far...

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

You'll have to wait for a moment, as I've yet to release it, but it should be out there shortly... just as soon as I get a decent movement.

How competitive is it?

Hard to say as it isn't in the RoboRumble yet, but currently it performs half-decent against mid-ranking bots, but gets slaughtered by the top bots. I hope for this to change with better movement because I have higher bullet damage despite lower score...

How does it move?

Currently? Pretty badly. What's that mean? Running into walls :)

How does it fire?

Currently uses a VirtualGuns array of CircularTargeting and GuessFactorTargeting with some inspiration from AutomatedSegmentation.

How does it dodge bullets?

Currently uses a variation of goto style wavesufing, that is broken in various ways.

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

Well, not at all. It can handle storing stats for multiple enemies and dealing with everything, but I'm suspecting it'll likely skip turns alot in that case, and certainly wouldn't perform well. I'm only developing for one-on-one so far.

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

Targets the nearest known enemy. Not very smart, but again, not built for melee yet

What does it save between rounds and matches?

Currently it saves all GuessFactor data between rounds and matches. I plan to make it only save between rounds in the future to stop the data from overflowing

Where did you get the name?

Well, it's a Welsh name, which I felt represented my hopes for this bot sort-of. Kind of silly.

Can I use your code?

No, it's not released yet after all.

What's next for your robot?

Movement, movement, and more movement. After that's somewhat livable? I'm thinking about a NeuralPatternMatcher as well a little idea I cheekily call "Second Guessing".

Does it have any WhiteWhales?

All the top bots? :) I often test/lose against SilverSurfer, Shadow, and Dookious but I'm catching up, even if slowly.

What other robot(s) is it based on?

The code architecture is somewhat inspired by my old Mervin robot (see Rednaxela) but it's all new code.


Comments, questions, feedback:

Just WRT your hitting walls problem, you do have WallSmoothing implemented, don't you? -- Skilgannon

Nope, haven't implemented WallSmoothing, nor any other form of WallAvoidance (i.e. limiting goal guess factors via PrecisePrediction that accounts for walls). I do have a form of WallSmoothing planned for the new movement method I'm working on. At some point I may add PrecisePrediction and/or WallSmoothing to my goto style wavesufing, but for the moment I see more potential in a new movement that I've just started coding. -- Rednaxela

If you're doing a style of goto wavesurfing, it's fairly simple to 'warp' any points you are aiming at inside the field, so you don't hit the walls. But good luck for getting your wavesurfing working, and if my 'reachable' method will come useful for you goto-surfing (it's what both DrussGT and Stormrider use), feel free to use it. -- Skilgannon

Thanks, I'll keep that in mind. First though I'm going to to experiment with a hybrid/combination of AntiGravity Movement and True Surfing that I have some high hopes for. Hopefully this idea won't flop... :)

Hmm, after looking at more stuff on the wiki, I see a few have tried a combination of AntiGravityMovement and WaveSurfing before... however from what I see, everyone who's tried that combination before has failed to some extend or another. I wonder if this will be worth trying or not. -- Rednaxela

Well... after some work I got my AntiGravityMovement working, and wavesurfing (using "True Surfing" which moves to local minima on the movement profile instead of the global minima). It seems to surf as intended, however: 1) This surfing style doesn't seem as effective, and 2) I'm not having much success making a "Gravity Source" to do effective wallsmoothing. In particular it seems to get stuck in the corners where it's close to two walls at once. If anyone has any tips they're welcome of course. In the meantime I'll probably leave this code and go back to working the goto wavesurfing -- Rednaxela

Okay! I finally got a working TrueSurfing implementation made from scratch (well, with a little code reuse from my old CircularTargeting code to do the precise prediction)! And damn... this thing is creating a really flat movement profile according to my builtin profile monitor (Well, a compliment to Voidious though: I've yet to see a flatter profile than Dookious's profile). I'm quite proud of my predictor code, which is a little sluggish, but fully accounts for everything except for robot-robot collisions (yes, it does include accurate turning speed limits). I haven't implemented WallSmoothing yet, so it's performance is still not so great though. Actually, against Shadow anyways, it wins a couple matches out of 35, but in a majority of the cases where it loses, it's either a close match where it just can't win (my lack of energy management could be alot of the issue) or getting stuck in a corner. It's encouraging that matches against Shadow end up fairly close when I don't get stuck in a corner, even if I very rarely win in those "close" situations. Thanks alot to everyone who's given tips! Next stop? WallSmoothing!

Hmm, One thing I haven't seen much on, is what to do after the enemy has fired a first shot, but my movement profile is flat so far. In the "GoTo? Surfing" I'd select a random guessfactor to go for, but as TrueSurfing doesn't use "goal guessfactors" in the same way, I suppose any sort of randomized perpendicular movement that doesn't run into walls would do the job fine? One other thought I've had is, do people usually save their own movement profile between rounds? Currently I don't, but I ponder if it might help, at least to avoid the points it visits early in the round from being as predictable. -- Rednaxela

Interesting... I just added some energy management code which roughly means: 1) Don't fire more powerful bullets than needed to kill it, and 2) Avoid firing bullets that would use more than 10% of our energy left. The effect of this, was a drastic drop in score against Shadow but a drastic increase in scorn against Duelist. I wonder what the right balance is or if there is an effective way method to manage energy against both bots... -- Rednaxela


Robo Home | Changes | Preferences | AllPages
Edit revision 28 of this page | View other revisions | View current revision
Edited January 30, 2008 6:53 EST by Rednaxela (diff)
Search: