The answer isn't a simple one (otherwise the question would not be 'eternal'). As mentioned is posts on the RobocodeRepository and Robocode Outpost , to answer this question the two types of battles must be separated: one-on-one and melee.
In one-on-one bullet damage determines for a large part the total score, so when your movement isn't too bad, go for Targetting.
In melee Robocode's scoring engine gives you more points for survival than for bullet damage, so Movement seems to be the answer.
Some background reading: http://robocoderepository.com/jive/thread.jsp?forum=18&thread=859
Another remark on this subject: Paul Evans (the author of you know what robot) gave the advise to work and test movement or Targeting separately as "both are independant if you optimise both the gun and movement for all distances. (I also don't use actual hits etc I just look at my gun stats to assess movement and gun).". (i think i saw it overhere http://mdouet.proboards18.com/index.cgi?board=robocodebot&action=display&num=1051306714)
-- For my part I think a good Movement strategy and a Random gun will take you farther than a bad movement strategy and a great gun. There have been several documented cases of this happening. Having said that, once you are in the top 50 or so, it takes a combination of both to get over the next hump. As for me, I have come to think of my movement platform as that which puts my gun in the best position to deal more damage than I take. I also believe that once you have tuned one gun, you have tuned one gun. It seems that there is no correlation between other peoples experiences and my own. Every one has different results and advice. The only advice I have heard (and have to offer in return) is that emerical testing with your own bots past performances is the best indicator of improvement. -- jim)
I've been thinking about the recent discussion on the repository about the correlation between movement and hitrates, and I've decided there's more to it than distance. Teancum actually misses sometimes because he moves, because your movement almost always effects their movement. -- Kawigi
I really don't think you should ever try to take one or the other. Unless you're codesize restricted, beat on both until it's obvious whether or not the direction you're going has room for success, if it does, release it, if not, drawing board. This system will produce infrequent and very high quality releases in the megabot category.
There are numerous different arguments to be made about which is more important in 1v1 versus melee. For example, 1v1 bots may need guns more, but melee guns are also much more clearly defined in terms of what's the best choice, because of the restrictions melee imposes on things like radar. Melee may need movement more, but responsive movement and many different strategies other than complete randomness go nuts when exposed to large numbers of bots. So really it's probably not as clearcut as you'd imply, but as usual, I don't have a good answer to end my banter :p
You should also seriously consider just developing an all-gun and all-move micro or mini (non-release, of course) to testbed your systems, then slapping them together.
Now, on the topic of codesize restriction, I think that matters more than 1v1 or melee. This is the place where you actually need to make the call, rather than just develop both systems and stick them together (as they are largely independent). I think if you want to debate these as a 'which is more important' this is the only way to look at it. In a nano I personally feel the gun needs alot of development, as most of the smallest guns are easy to foil with small movement, and mostly movement bots won't even be affected by them. Since you need to do damage to win, a developed gun is very important. You do need a tricky movement, but the overall gain after a certain point from movement versus gun biases me heavily towards gun. If you look at the nano pattern matchers versus the impossible to hit bots (floodnano and lemon) in minibot, this pattern also holds there. In melee there is basically no really effective nano gun, so you're better off squeezing in anti-gravity or melee random movement, but I believe this rule doesn't neccesarily hold as you get larger.
In Micros the lines become slightly more blurred, though melee bots should still probably focus on movement, and Minis are practically back to all-out on both. Though I suspect melee Minis will need a good gun more than movement with the last of their bytes, as by then everyone has fit a movement than can foil simple targeters and keep them in a good position, so the ones who can squeeze in the melee pm or other nifty gun will be the victors. Just my opinions on the matter, I'll be impressed if anyone but me can follow them. -- Kuuran
Of course movement is the most important! And the egg was before the chicken was! Seriously, in the end both are likely important. In the case of OneOnOne if you have two bots with equally good movement; Targeting will decide. (Reverse.) What's most important totally depends on what's your bots weakest spot at the movement. Run test leagues to see what your ratio your_bullet_damage/enemys_bullet_damage is against a test bed of bots and you will find the answer on what you should be working with. But, then again, I tend to work with whatever I have an idea about at the moment.
Ergo? Huh? And the egg before the chicken? No way. Anyone who's read Genesis in the Bible knows the Rooster came first. Or something. -- Kawigi
Ergo == thus ... sort of. Rooster first? No way. =) -- PEZ
Just remember Descartes: Cogito, ergo sum (I think, so I exist) :-) -- Albert
The normal English translation for that I think is "I think, therefore I am". This discussion has been revisited on the repository recently, mostly PEZ and I trying to convince some newer guy that it really is movement over aiming. Somehow, I keep thinking of FloodMicro whenever someone posts in that thread... -- Kawigi
Nice to see I was right all along. That does not happen for me in Robocode all that often. Now if I could only get Movement right I would be on top. -- jim
Alas, I have to bring this debate back. Sure you need to be able to not die all the time, but bullet damage is what makes the difference 90% of the time. -- Jokester
That depends on your gunCoolingRate?. I have experimented with <= 0 and a ramming movement will always win. However, more typical ones such as >= .6 do make bullet damage the difference many times although it is less apparent with the more inteligent robots. However, on any other setting, movement is best because the greater the number of robots, the greater the role survival takes on. -- Kinsen
Important to understand in this debate: Better Movement != Better Survival and Better Targeting != Higher Bullet Damage. If bullet damage is what makes the difference, don't you think it's important for you to keep your enemy's bullet damage down? Whichever is the correct answer in general, I think it's become accepted by most Robocoders that to be a top bot, you need both, but to do well among top bots, you need movement. Because the top bots have outstanding movement, as well, you also can't do well against them with a completely stupid gun, but once you get past the elementary stages of both movement and targeting, having the best movement will get you over more top bots than having the best gun. -- Kawigi
While that may be true, your movement (as mentioned in OneOnOne) is only as good as the assumptions you make about your enemies targeting. What I am currently toying with is a movement strategy that is tied into the targeting. Im not just talking about dynamic distancing and finding the best balance between hitting and not being hit, but using the same algorithms to guage movement as to target. Currently, all my guess factor work is done completely independent of the bot, it just takes heading, the two locations, and the previous guess factor bins. I am currently feeling that the current movement vs targeting situation is now over the choice of will I assume the gun will guess I am moving toward the high bins, or away from them. Since movement has become all about going where the opponent wont shoot, tying together your gun and movement will make your movement just as good as your targeting, and then all you need to do is have the best targeting (with little tricks like cool movement to give the movement the edge). I think its alot more difficult to do it the other way around, because if you arent able to make good assumptions about the enemies targeting you wont be able to avoid them as well.That is the reason I say targeting is more important, because if you can make the best assumptions about your opponents targeting you will be able to have the best movement. -- Jokester
I would argue that what was said about balance is true. At the moment the best common movement foils all known guns, so the best versions of that movement are at the top. Take nano as a case study. In nano for a long time the best guns foiled the best movement. Recently Freddie surpassed them, they still destroy Freddie, but his movement foils the majority of guns by a larger margin than their guns can foil movement. In the past a similar strategy was used by Lemon? (which we really should find a copy of and include in the rumble) to get to the top, but the better PatternMatchers were just a bit better at their job than Lemon?'s movement was.
So far most weight classes have undergone something like this. In mega it's when something new is invented, and in smaller classes it's when something new is shrunk down. The inventions have gone in cycles like Linear/Circular? -> Oscillation/AntiGravity? -> PM -> Stat -> WaveSurf. The lower classes have followed similar cycles with mini, micro and nano versions of those. To be fair, at some points the lower sizes 'max out' how far along this tree they can go, and systems in them become novel: for example stat requires too much segmentation to be feasible as a high-end nano, but some future innovations might not; all in all that's still pretty much the same cycle.
It's probably not too far in the future that all movement becomes trivial by some new gun made as a result of WaveSurfers, and WaveSurfing becomes a curiosity used in MicroBots only, with people scrambling for some new highly tweaked out AdaptiveMovement or flattener to get around that strategy. -- Kuuran
In my opinion we are starting to reach the end of the programming capabilities. Once we have GF guns that are highly adaptive (determining if they are surfing) and capable of pattern matching, it will be all down to the best segmentation. Once we have that down, the rest of coding will mostly be about who can make the best gun the smallest. Beyond that, who knows? -- Jokester
I don't know if current trends are completely indicative of what will be good in the future or not. I definitely thing bots are more solid now than they were a couple years ago, and while it may seem like we're planing off (top bots also have alot less variety than they had a couple years ago), I suspect that new ideas and innovations have just slowed down, not stopped. The problem may just be that as we come up with some set of random ideas and try them, we continue to use them only if they're better than something else. As we accept some of these new ideas, the bar is set higher, so a smaller percentage of random ideas will be "good" by today's standards. But I don't think we're nearing the end of the road (although I'm always interested to see what we'll be able to shrink). Your GuessFactor2D ideas and my SplitTargeting may replace both targeting and movement a year from now. (With every idea, as well, we learn things that make those ideas better, and often those things make our other ideas work better, too, so I think the quality of ideas goes up over time, too, at least in implementation). -- Kawigi
I susptect the slowdown of new ideas is only a 1v1 problem. There is plenty of scope for new and fantastic ideas in melee and team battles. Im sure team battles could be a fantastic format if a lot more of the top 1v1 people got involved. I suspect a lot of cool stuff would be done in a short space of time if that happened. Trouble is, 1v1 is the title that 80% of people want. I think that both movement and targeting are important. I am sure that one will probably have a bit more influence than the other but its not a definate as to which has the most influence at a given point. --Wolfman
I would think the one that you're *best* at would be the more important one, as long as you have a semi-decent movement. --Starrynte