Robo Home | Changes | Preferences | AllPages

One on One Competition is just your bot and one other. Field sizes vary per contest, but usually the default of 800x600 is used. These bots tend to have simpler radar and enemy storage routines due to needing to keep track of only one opponent. These also tend to be the first bots that people tend to write as they are simpler to make strong against the SampleBots.

Feel free to add examples of good 1v1 bots here. Most of the ones I can think of are good at both melee and 1v1. -- Mike Dorgan

I think there has been an specialization over time, and that good melee bots and 1v1 bots are no longer the same. In fact, only 5 bots are currently able to stay in the top 20 bot in 1v1 and melee. -- Albert

I think that's because most top bots are now mini/microbots and it's hard to fit really good melee + 1-v-1 code into a minibot. --David Alves

May 2005 - It was a while ago when most of the top bots where MiniBots. Today no mini reaches top-10 in 1-v-1. You find the first mini (cough, Pugilist) at #13 in [Genereal 1v1]. Melee is still unexplored enough for both minis and micros to reach top-10. -- PEZ

Also, it seems that WaveSurfing is an absolute necessity to reach the top. The entire top twenty bots feature some version of it. -- Alcatraz

Until some other invention supplants it (or effectively counters it). -- Kawigi

I think that there is already one type of robot that effectively counters WaveSurfing, the robots that keep track of bullets and dodge them. Those can usually counter WaveSurfing because it creates a definite "no go" location for those robots because their calculations can be slightly off from what the firing robot is using but the number of bullets drastically raises the chances that the robot will simply go to another place. It also makes the firing robot extremely vulnerable if it depends on WaveSurfing because it needs to follow a basic movement of side to side movement. -- Kinsen

I can't tell if you're using the definition of WaveSurfing or of GuessFactorTargetting. It seems to me that robots that keep track of bullets and dodge them are effectively WaveSurfers. -- Alcatraz

I've seen many robots that keep track of bullets and dodge them be WaveSurfers but there are also many that don't. The reason why I said that it was dangerous to be a WaveSurfer is because you have a basic pattern. I constantly try my robots against SilverSurfer because it is good enough for now and I've constantly noticed that if my robot would adapt its gun to have boundaries and only fire within a certain area and fire within that area, I would constantly get it, until SilverSurfer detected how I was firing and adjusted. It's just a thought and I'm not sure if I'm understanding WaveSurfing completely correct. -- Kinsen

Not all adaptive flattening movement is WaveSurfing (it didn't start out that way - see the SandboxDT page under something like "riddles"), but by definition, you have to be trying to track enemy bullets for it to be WaveSurfing - that's what the waves are that you're surfing. Now what you do with those might have a few variants - you could use WaveSurfing as a pure dodging movement (which appears to be the most effective by experimentation - you remember the gfs you were hit at and you stop going there), or you could use it as a flattener (keep full stats on yourself and try not to visit the higher hitters), or you could do a combination of those. -- Kawigi

Is it possible to avoid all bullets perfectly? It may seem like a silly question but I have run so many battles with SilverSurfer against my robots and Sandbox's, and in every single battle, if I could move a robot by dragging it around, I would be able to dodge every single bullet. I realize that adaptive firing would let the robot be hit once or twice since the robots can not technically know where the bullets are, although adaptive movement should be able to solve that, given that all the data collected is valid. However, being rather new to bullet dodging through methods besides random movement, I have not been able to really figure out what works and what does not, and it seems interesting that people constantly talk of dodging bullets as not going to the worst places instead of going to the best places. -- Kinsen

Sure, you can dodge every bullet (in one-on-one) if you know where all of them are and the opponent doesn't get too close to you. Watch a battle betweenShiz and Aristocles, for example. Actually, in that case, Aristocles doesn't know *exactly* where all the bullets are, but by avoiding the entire region of head-on, it can usually avoid being hit for the entire round. It's possible that the enduring quality of FloodMini's gun among all the wave surfers is that it misses scans ;-)

Or you can just be really lucky ;-) -- Kawigi

There was a small discussion awhile back about the merits of not going to the worst places instead of going to the best places awhile back, I believe Shiva originally tried to get to the best spots. The risk, as I see it, is that sometimes to get to the best spots on the battle field you have to risk going through the worst ones. Also, has anyone succeeding in perfectly dodging head-on aim? Is there any bot that can claim 100% perfection over say, 1000 rounds, against HOT? -- Alcatraz

I mentioned Aristocles because it at least makes the 40-50 rounds it has on the RLL quite often. There are a few things that can happen (possibly starting out really close?) that make it so that it might be harder to do sometimes, though, so I'm not sure. -- Kawigi

I know that it is rather hard to avoid all the bullets if you are extremely close but I continually see SilverSurfer avoid my robot's bullets when it is very close and my robot's gun is not directly facing it by going in a circular fashion. In addition, to go to the best places without factoring in the path of the robot does have a tendency to go through the worst spots although it should be possible to factor in the path of the robot, especially since the robot knows how it will move. -- Kinsen

The big problem with avoiding bullets altogether is that you have no way to know where the enemy is shooting until you are hit. Alot of robots assume that their opponent is using headon until they are hit somewhere else, at which point they enter a different movement strategy. But unless you are being hit all you can do is make assumptions of your enemy, and if the enemy is adaptive then at some point that assumption will fail and you will have to make new ones. That is also where the downfall of wave surfers will be. WaveSurfers make the assumption that the enemy will fire where it has the best chance of hitting it, and so move elsewhere. If the shooter recognizes that it is up against a WaveSurfer, it can then start shooting where it has previously had the least chance of hitting it, for that will be the same location the WaveSurfer will be headed. The only reason I feel this hasnt come about already is because of the logic and segmentation required to make that deduction and then act upon it, for it goes against nature to fire where you have the statiscally lowest chance of hitting. -- Jokester

I do not think that robots have to assume that the enemy is firing head on if you keep track of an array of bullets because you can deduce how a bullet was fired once you are hit and then you can adapt. I have not tried with WaveSurfing but with what I have read about, there should not be much of a problem except for the loop which has a condition that depends on the enemy's prediction which depends on the first robot's prediction, and so on. -- Kinsen

They don't have to assume anything in particular, Jokester is just saying that before they get hit the first time, they normally assume they're being fired at head-on. Once they're hit, they have some information about how their enemy is firing, but until then, if they're wrong about whatever their initial assumption is, they're just waiting for the inevitable time that they'll get hit, so there can't really be a robot that just never gets hit in general. However, if a robot makes the correct assumptions against a particular bot, it might go without being hit in a battle with that bot. -- Kawigi

Why do they have to assume that they're being fired at head-on? Although it may use up a bit of memory, my new robot assumes that it fires head-on, linear prediction, and more at the same time. Any robot that does only assume that they are being fired at head-on will really lose quickly at first. -- Kinsen

They assume it because it is very simple to avoid and to test. Using the MusashiTrick you stop using the full-speed orbital movement once you are hit onetime with a non-HOT bullet. I've tried to avoid the other simple targetters (linear and circular) together with head-on with one movement and ended up with Stop'nGo. Alas this movement is an invitation to PM and GF guns to put their barrels on my forehead, so you need more movements to survive the rumble. -- GrubbmGait

They also assume it because it's probably true the highest percentage of the time ;-) But really, you're right - you could (in most cases) potentially dodge a small collection of targeting algorithms at once. For instance, I was experimenting with trying to dodge GF targeting and head on at the same time. It worked ok, but not as good as just dodging GF unless there was no data in the segment as I was guessing they had (basically assuming that if they have no data, they'll shoot head on, because that's what I do). It also didn't perform much better against head-on (although my head-on test was Shiz, who is only approximately head on because of scan delay and just not caring about accuracy). -- Kawigi

I think assuming linear would be more effective, but a little harder to check. To see the effectiveness of dodging head-on and LT/CT, check this:

or for just the highlight:
Grb 1.0.5 Grb 1.0.0
enemy % score battles % score battles Diff
radnor.[DoctorBob 1]?.42 98.0 7 27.5 5 70.5
dft.Freddie_1.32 90.8 5 36.1 5 54.7
rz.[HawkOnFire 0]?.1 96.5 6 73.8 2 22.7
kawigi.micro.Shiz_1.1 96.1 3 81.4 2 14.6
This got me 70 points, much more than the assumed 30 (and for me only 20) points of the MusashiTrick. -- GrubbmGait

Regarding wavesurfing earlier... If you used your own movement as input and had your own wavesurfer detection algorithm it would be possible to adapt before your enemy decides you are wavesurfing. Ofcourse when it comes to probing your enemies targeting algorithm you MUST take hits in order to achieve accurate data. I believe that there is possible (yet maybe very unlikely) to dodge every single bullet from an enemy which you might have spent a number of rounds probing. The difficulty lies in 1:how to probe, and 2:what to store so you dont loose any probing data to next fight. Just as some robots store info about how their enemies move, one can store info about how your enemies shoot and thus dodge them in advance. Remember the best way to think up a defence (in this case dodging) is to consider yourself from an enemy perspective. Also takng this further a very advanced bot could make up "smokescreens" of how he moves by taking hits which could be avoided just to stable the other bots targeting so it will be missleading in those vital situations..... Any one up for trying this in practice? :P Jimpa

I think that you put that in just in time. I have a "WaveSurfing" robot that actually oscillates for the mean time, and I want to add bullet dodging to it to make it better. I think that I could try doing that. By the way, can you save things between rounds using:

static double predictionVelocity[];
-- Kinsen

Yes you can! I think its impossible to avoid every bullet by recording the aiming of the enemy, but you can trick him with some kind of MultiMode Movement. You just have to find the right moment to change your movement :D IŽm currently working on such kind of movement, weŽll see :) --Krabb

I think that it is rather interesting. I have tried putting my robot against the PatternMatchingRobot? and it picks it up right away but many robots can't figure it out. It could be that its movement is partly dependent on the opponent. -- Kinsen

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 6, 2006 4:44 EST by Wcsv (diff)