Talk:Neuromancer
- [View source↑]
- [History↑]
Contents
| Thread title | Replies | Last modified |
|---|---|---|
| Melee WaveSuffering | 6 | 19:32, 27 August 2012 |
| Welcome to MeleeRumble! :-) | 11 | 12:18, 20 May 2012 |
| 0.6 update | 2 | 20:42, 14 May 2012 |
| Penny Arcade | 1 | 16:58, 18 April 2012 |
![]() First page |
![]() Previous page |
![]() Next page |
![]() Last page |
I just want to say, if you thought 1v1 WaveSuffering was bad, melee is on a whole different level. For instance, in 1v1 the changes I made from 1.1 to 1.2 would probably boost my score by over 1%, but in melee it got lost in the noise. I've done a major restructure to allow me to keep post-scantime-interpolated snapshots of where everybody is on the battlefield, and to let my wavesurfing get updated by it to use the improved wave centres, enemy locations at fire etc. As far as I can tell everything is working perfectly, but it now tanks fairly horribly against simple targeters outside of the 1v1 context.
I can only imagine. And you're making me feel pretty good about my hunch that there's not enough data in Melee to effectively surf. :-) But if your score is tanking vs simple targeters, I have to think you have introduced a bug somewhere. How could it be otherwise?
Unless there's a side effect to the predictability of your movement profile, or other risk factors are now being under-weighted... I guess there's a lot to consider. But if it's really that much more accurate, I'd expect the scores to improve after some re-tuning, right?
There is less data to surf in melee, but completely ignoring opponents energy drops and bullet hits is counter-intuitive. Changing your movement when you are hit contributes to being less predictable at least, even if only at the end of a round.
Maybe some weighting according to number of opponents?
I've tried making the weighting change based on the number of enemies, but it seems that for all of them just having a touch of regular minimum-risk is better than any sort of weighting. Maybe my non-wave minimum risk is just really bad.
However, the fact that my score went up considerably by making my firetimes more accurate makes me fairly sure that my waves are making my movement better.
The only catch is the one arguing against melee surfing, Voidious, have a bot in 1st place in meleerumble, and my bot is 12th. Intuition says one thing, the numbers say another.
My bot uses neither wave surfing, nor minimum-risk, but anti-gravity with shrapnel dodging instead. The idea is the same, but with a lot less code, and lower accuracy. Try to stay away from other bots, and stay away from points in waves where you expect to have bullets in it. Dodging incoming waves at least help the bot not getting stuck in stationary local minima, the worst problem with anti-gravity movement.
I guess, in melee you have to be careful with wave surfing taken from 1v1, because you can not just move to the least dangerous position. The field changes sometimes very quickly, especially in the first rounds, that it would be better to do some sort of weighting between defense and offense. Most bots that only avoiding confrontations get caught on a local maximum and if the whole field changes it position they are in a very bad position. A nice example is, if Wallaby goes for a corner and moves closer and closer, most bots get out of the corner because the risk raises and end up in the open field. I guess a well weighted wave surfing combined with a nice minimum risk would be awesome if not to say superior :). Just my 2cents.
My observation for simple targeters is, that because of the radar sweeps most guns shoot not straight HOT or linear. There is always a little shift. Especially nano bots have not very reliable (from defenders point of view) simple targeting. The fact that most nano bots don't have the setAdjustXX() methods set is also one thing that they don't shoot 'straight'.
I've seen this happening many times. A bot will move and fire towards a nice corner position that Neuromancer has, and Neuromancer will dodge the bullets out of the corner and end up going right across the field dodging bullets the whole way, bullets which wouldn't have been aimed at him if he had stayed in the corner. Mostly when Neuromancer gets killed it is because of bad positioning, being so close to an enemy that it was impossible to sense the bullet drop and dodge in time, but can't go in the other direction because of a wall or other bots. It is also a problem when about 5 waves are converging at once, it is difficult to weight which direction is best, although I have an idea for both of these problems...
Nice entrance! Excited to see where this goes. :-)
Now that you're further along, what's your current view on the potential of Melee surfing? Do you think you can effectively dodge simple targeters beyond HOT, or simple learning guns, or even good learning guns? It seems that you and a couple others have proven you can dodge HOT fairly well in Melee...
Of course, there's also the question of whether it's worth it, for what you may sacrifice in good positioning. But that could take a long time to answer.
First off, I'm not purely surfing. I'm doing a minimum-risk movement which has a weighting of wave dangers as well as position dangers, so hopefully my wave dangers don't cause too much of a problem with the positioning, avoiding being targeted etc. If nothing else, hopefully it will take the least dangerous position that doesn't let me be hit by the wave.
As for the potential, from what I've seen the limitation is how much information can be gathered. I'm surfing every bullet fired at every bot by every bot, so theoretically, if I can see all of the waves, I can dodge all of the bullets. I'm not doing energy-bonuses for hits, bactracking chains of energy drops or anything like that, and given the big scan gaps that means I'm missing a lot of the bullet firings. I think there is still a lot of performance that can be eked out of the movement, tracking and weighting still, although it will have to become much much much more complex. I'm not sure if what I envision will successfully run without skipping turns; certainly not without being quite a slowbot. But then, compare any 1v1 surfing movement to a decent 1v1 random movement and the same parallels and trade-offs are also made.
As I said earlier, the cap is the stats gathering. I am simultaneously learning every bot's targeting preferences against each of its opponents, so there is a lot of info that needs to be acquired, and given the big scan gaps, not much data to go on. This will be improved slightly once I get the energy tracking due to more waves being fired, but remains what I think is the main limitation against complex targeters. I don't think it will ever get to a point where it is useful, for example, to add a flattener just against the stats of certain bots but not others. On the other hand, I do think it gives the best possible potential for dodging complex targeters that we're going to get. Anti-gravity-with-perpendicularity type minimum risk movement certainly isn't going to be less predictable, and that is essentially the state of the art when it comes to melee right now.
My feeling from watching matches is that this works extremely well towards the endgame, when there are 5 or less bots on the field. In the beginning it is often too crowded to successfully surf without becoming an easy target, but once there is a bit of space this movement really comes into its own.
Interpolation may help guess what is happening between scans.
Congradulations! I'm eager to reinstal robocode and watch Neuromancer in action! :) Reguarding your 5 bot or less comment: I wonder; Are you effectively doing (minimumRisk*waveRisk = totalRisk), or some sort of wieghted addition instead ? "Limited and sh@#ty info" - Yep, Welcome to MeleeRumble ! :D -Jlm0924
I'm doing an addition, since I don't think the two risks are interdependent. Currently I'm normalising each of them with respect to the median dangers and then doing danger = 3*waveDanger + 1*positionDanger.
Right now I'm just scratching my head as to how I can get better/more information, and besides hardcoding lots of cases of 'they fired once and were hit twice', 'they fired once and were hit 3 times', 'they didn't fire but were hit twice', 'they didn't fire but were hit 3 times' etc I don't know where that info is going to come from.
I'm still just dealing with regular old 1-tick-wide waves, which does need to change, but that can wait for some gun improvements.
Try tracking all waves from all opponents, and if opponent´s A energy drops the same as opponent´s B wave damage passing over opponent´s A, it is probably a hit?
That may work... or open a vulnerability where opponent A shoots an undetected bullet with power equal to opponent´s B wave damage.
That's what I do. I also track gunheat to eliminate invalid waves, and account for the case of them being hit and firing at the same time (or at least, between two consecutive scans).
For that vulnerability to occur the enemy wave would have to be very low power - bullet less than 0.75 - and they'd have to wait for it before they shoot. Eventually I want to check for bullet bonus before I count a wave as hit, it would be much more complex but could lead to a significant score increase. The trouble is that I don't know if it would help much because I don't know how many waves are incorrectly labelled as 'hit', so I'm not sure if this is worth it.
I've heard that gun accuracy can go up by scanning targets just before fire time, so maybe I'll give that a shot next.
I'm still very curious how much true bullet dodging value you're getting from this, but I guess I'll need to get down and dirty and investigate it myself if I want to know for sure. :-) Obviously the end result of your movement algorithm is a very powerful one, so huge props on that regardless.
But for instance, I wonder if you fed the wave surfing false (but realistic) data about enemy energy levels, how much would it affect performance? It still seems very possible to me that the net of all this "surfing extremely noisy data" + the MR elements is about equivalent to a nicely randomish minimum risk movement.
Well, watching Neuromancer in a battle is quite interesting. There is none of the usual 'stick in a corner and avoid other bots' mentality that I tend to see with regular MR, instead it is all over the place, right through the middle of the field, for the most part missing bullets that seem to fly all around it. I think Neuromancer tends to get a lot more bullets fired at it than most bots because the MR isn't the only thing that's directing it, but still manages to do a brilliant job of racking up the survival points. So yes, I think I am getting some very real bullet dodging, but it is at least partly offset by the increased 'targetability' created by that same dodging.
That sounds like an interesting experiment, but I think more conclusive would be releasing a version using Diamond's gun - is that OK with you? Would I need to use Diamond's radar as well?
Wow, that actually sounds really interesting. Maybe I'll watch some battles.
Sure, you're free to test with Diamond's gun, would be cool to see the results. I don't think you need the radar - it doesn't look like they're even connected now that I do Shadow/Melee Gun. The only gun/movement/radar connection is the gun reporting to the movement for Bullet Shadows, so if you're doing that you'll need to rig something up.
I'm also going to get a Melee client going and try to get the latest Diamond into MeleeRumble... It's possible I've broken something since 1.5.30, I'm not sure.
Cool thought on feeding it false bullet drops :P (No wonder I have no tools to test:) but I think you'd be surprised Void.. In Diamond I believe you used a random "push", to modivate and randomise it's minimumRisk. Melee surfing is simply replacing that random push; using additional risk based on the danger of crossing waves. (IMO) As long as you collect good wave data (in melee) I don't think it will matter if it is perfectly accurate.. (It will still "push" the minimumRisk in a smarter direction) On the other hand, the surfing data doesn't need to be noisy ether. eg: If you detect a bullet drop, but it's been a few ticks since you last scanned the bot, you could simply throw it away.. :)Keep in mind: even if your still missing 3 scans, simply choosing the middle missing scan (as the fireTime and position) means you'll only be out 1 tick max. (Good in my books:) I remember testing with spinning radar) @Skilgannon: Yeah, I also use a similar addition for total Risk,(using standard deviation ). You might wanna try multipling if you haven't tried it already (without zeros). Reguarding your "regular old 1-tick-wide waves" : I though about that, but I just binn smooth to hell anyway :) -Jlm0924
Nice update with version 0.6 there! I'm curious, how much local testing have you been doing with Neuromancer between versions?
By the way, it looks to me like it's still slightly behind Shadow contrary to the description thing.
Yeah, between 3000 and 4000 battles it dipped from just above Shadow to a little ways below. I'll wait for this version to stabilise and then see if I need to change that =) My testing is fairly minimal. I do a few battles with some HOF, some Shiz, some DoctorBob, a sample bot and a top bot, just to check I haven't broken anything major and that the changes made some sort of difference, but I haven't had time to do any proper testing. I'm still at a stage of adding major features, once I get on to tweaking the testing will be more important I think.
In future I'll wait for 4000 battles before making any conclusions... sigh.
Ahh, interesting.
Hmm... that number of battles issues makes me wonder if I should experiment with making the rumble server show statistical significance information when comparing versions.
Dunno if any of you read PA, but this seemed timely. =) Comic: One Explanation
![]() First page |
![]() Previous page |
![]() Next page |
![]() Last page |



