Talk:Jokester

From Robowiki
Revision as of 21:05, 27 August 2009 by Voidious (talk | contribs) (migrating talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

From old wiki

Chat

Now that you completely read the wiki, is there any info missing and/or hidden in obscure pages? -- GrubbmGait

Well I am still processing, but theres alot of interesting stuff out there. Theres alot of stuff I would love to go through and restructure, and I plan on making a significant contribution to GoodWikiPages soon. I have found a couple of obscure/hidden pages dealing with some theory, a ton of open source code I plan on poking through, and alot of great stuff on segmentation (a pet project of mine while I implement GuessFactor2D) the two pages that have struck me at the moment are WikiTargeting and MeleeStrategy but there are several others -- Jokester

Well, those are pretty theory-centric pages - I'm honored to have written one of your favorites :-) -- Kawigi

Congratulations for the good work on rewriting the wiki. Pretty awesome. -- lRem

Thanks, I have been a little unsure lately about some of the changes. Its mostly been trying to balance getting the most information out in the clearest way with keeping the roots and brainstorming of the past. Also, if anyone knows if I can have links to topics within a page (ie a link that will take you lower down etc) that would be great. -- Jokester

Check CassiusClay for links to topics within a page. Your effort really makes things easier to find. -- GrubbmGait

Excellent, thank you. You wouldnt happen to know how I could access those from an external link (eg link to one of those from this page) -- Jokester

Simply add CassiusClay#Design_metaphore, or maybe [CassiusClay#Design_metaphore some words to be link text] like this. -- Kawigi

I'd like to extend a thanks to Jokester for his work with tidying up the wiki. Great work dude. It sure is needed. -- PEZ

Hear, hear -- GrubbmGait

OK, I have gone through my preliminary work. I am fairly satisfied with the home page (I would like to remove the resources section, but that will be done when I better organize the Resources page). I think I will leave the wiki alone for a little bit, because with all these pages I have a ton of ideas, and its been nearly 2 weeks since I have done some actual coding. -- Jokester

Gotten pretty bored this summer and decided to play around with this stuff again. Any big changes in the past year? BTW, i managed to fail the consciousness check on my first try to post... hehe -- Jokester

I may not be the most qualified to recap, but we've definitely got some new challenges and a half dozen more bots above 2K in general 1v1. There was also a killer SPAM attack that resulted in the Consciousess Check that's now in place. Welcome back ;) -- Voidious

Movement

I think the usefulness of 2D flattening might not be so great, because the premise of it as well as your targeting is probably wrong unless you 1-dimensionalize it. In your targeting algorithm, you should be checking angles to see which set of 2D GF buckets they hit and look at the sum of hits in each bucket that each possible angle can hit when you're looking for a shot angle. In the end, the important part of the flattening is 2D. -- Kawigi

Ya, your probably right. My targeting is mostly based around selecting the firing angle that intersects the highest number of buckets. That probably wouldnt work too well for movement, but I really need to look at another good guess factor gun. I have a vague idea about how most of them work, and I am trying to fix the flaws I see with that generalization, but Im sure that other people have done things to fix the same flaws in their guns, so I need to know exactly what I am up against rather than designing a movement around some imagined problems. -- Jokester

;-) My GuessFactor Targeting Tutorial might be a fine place to look to see how alot of those sorts of things are solved in guess factor guns. -- Kawigi

Questions

My Questions

Currently this is mostly theoretical, but some basic tests look fairly promising. I just need to have a few questions answered before I can continue.

  1. I understand that acceleration, velocity, position, etc occur as a result of discrete ticks, in the order that I wrote them, but how does turning get factored into this. Turning speed is a factor of velocity, but is the robots heading changed before or after the velocity is calculated, etc??
  2. I am a little unsure as to how most guess factor guns scale the -1 to 1 arc. For those that base it off of the bots heading, wouldnt it return the same angle no matter what guess factor if the bot was heading towards you? Do the good guns take into account the maximum area the bot could travel, or do they assume a circle for a velocity of 8 in all directions? I would really like to know this so that I can decide whether to apply my firing data directly onto my possible arc, or whether I should apply it as if I was able to move at full velocity in all directions.
  3. Is there a way I can use Java's geometry to make my calculations easier. Can I use Circle, Elipse and etc to give me the polygons, or is that too much to ask...

-- Jokester

(Fixing your formatting on the questions to use a wiki-style ordered list)

  1. Turning is done before the new velocity is calculated, so your turning speed for the next tick is based on your velocity on the current tick.
  2. What you are describing sounds like the linear guessfactors that SandboxMini has. What has been more common (especially since FloodMini) is to make GF 1 the angle they could get to if they could instantly move at speed 8 at the optimal angle in the lateral direction that they are currently moving in. GF -1 is just the negative of that. The theoretical GF 1 (also known as the "max escape angle") is offset asin(8/bullet speed) from head-on (in one direction or another), which should actually make some sense if you've figured out how you calculate the gf based on their going in a straight line (however it's not obvious, and there's been a reasonable amount of arguing about it).
  3. Yes. You'll see plenty of Robocode code use at least Rectangle2D, Point2D and Line2D. As for Polygons, you could use a java.awt.Polygon (but you're limited to integer coordinates). There also might be a general shape that's semi-useful. I'm not sure how much functionality java.awt.Polygon gives you aside from letting you check if a single point is contained by the polygon.

--Kawigi

Thanks alot. So I just want to check this, is this the correct order for events. Robots get updated in order of the list, with the ticks increasing when the list is ended. First events. Second while loop stuff then at end of turn: Turning (not sure the order of Radar, gun, bot, I think simultaneously) Acceleration Velocity Position -- Jokester

The Robocode/Game Physics page would be the place to check that. -- Kawigi