Wallaby - Wompi/robocode-bots GitHub Wiki
The development diary of Wallaby. The official version history can be found at RoboWiki (Wallaby). The diary is just to keep track of the thoughts and odds while programming on this bot. I guess it is not appropriate for the official wiki and therefore i link it to this repository.
Current Notes: Things to try
Date: 07/09/2012 Size: v5.1 747
The 'coward' movement had the same outcome as the normal movement and the same behavior in APS loose/gain. After finishing all class related battles it was 1th at mini/micro but after this the APS went down by 0.4%. Bummer, what a letdown.
This version has a well stripped random movement change. The old random movement was depended on getOthers() and a normal random value. While thinking of it again it hit me that i could make this even simpler and now it works from the start and has 10 bytes less code. The combat setup is changed again a little (i really should let it how it is, i guess).
I'm more then ever convinced to declare Wallaby finished because it tends to take so much time with just tweaking and watching RoboRunner results that it is not worth the time. Inventing a new gun or something would way more rewarding i guess, especially if i look at my twins or Numbat. Well, but first lets see how this version does its job.
Credit: nothing changed
.. of we go
Date: 05/09/2012 Size: v5.0 747
Version 4.9 did somehow very well but lost after 14k battle a huge chunk of APS. My guess, it has a very nice APS gain to if it is fighting only micro/mini bots. Because after the 2k general battles it jumped 0.4% up while fighting class related bots. Well, there is nothing i can do about it and i guess if i let it rumble for more battles it would gain back some APS. For general it looks like i hit a hidden barrier and there is no more gain possible. So far all recent versions did the same (APS) and no matter what i have changed it ends on the same rank.
The combat setup for this version has changed to 'coward' with 65k force and 400 distance.
Credit: nothing changed
.. off we go
Date: 04/09/2012 Size: v4.9 747
Well, the last version was a mess. Thanks to RoboRunner and some intensive combat setting test i could pull this version off. It looks very promising so far and the only thing i have changed (compared to v4.4) is the force and the isClose feature. The movements profits now from a more precise detection if the enemy is close to me and therefor i should move free. This was a long time not possible to implement because of the code size it needs. But now it is in and works quite well, i guess. To my surprise the gun gains a very huge margin of his 'awesomeness' because of the 0.9 adjustment to the distance count. I had it in for quite a while but wasn't aware that it has such a huge impact. Note to myself, try to figure out why it works. I remember i had to put it in once because the gun needed a little adjustment to hit Capulet with his little corner jiggle movement and it worked well.
Credit: nothing changed
.. off we go
Date: 02/09/2012 Size: v4.8 747
Lack of time for proper bot strategies and playing with RoboRunner the last days brought me back to Wallaby and some new stuff. First i found another 10 bytes by getting rid of the distance and energy variable and changed it to one rate variable. The shooting can also live without the gunTurnRemain..() check if it is set within the radar rule. The radar should be locked long enough to adjust the gun to the right direction. After that i played with quite a bunch of new ideas like round to 0.5 bullets and some very appealing bullet hit formulas but in the end everything was not well enough thought. The only change to v4.7 is that, if Wallaby gets hit it has 15 turns free movement to find a better place or just move a little more unpredictable. Basically is it what is left from the whole danger calculation formulas (look 4.7.xx commits). The issue with the current free movement is, Wallaby gets caught quite a lot in a local maximum and stops moving at all. This tricks a lot of nano bots but if it lasts to long i get constantly hits and finally die because of sitting there and jiggling around the local maximum. This has to be fixed in later version, now i just want to see how it works against the rumble.
Credit: nothing changed
... man, i'm so overslept .. off we go
Date: 22/08/2012 Size: v4.7 747
Hmm, the last version was a complete fail. Looks like the movement change was only good against my test bet and did not work in the rumble. Well, i switched back to a little more conservative change and adjusted the combat setting of v4.4. The distance is now 400 (again) and the movement force is a little more aggressive with 45000. The heading difference is now calculated by the average absolute heading difference and the direction is taken from the last heading change. The test bed showed a minor increase in APS but i guess the rumble will tell me something different :).
Credit: nothing changed
.. off we go
Date: 21/08/2012 Size: v4.6 749
The excitement never ends :). I played almost the whole day with my again hugely changed code. Only to realize that it brought me nothing. Hang on - Nothing? After doing some math around the movement i got something that might be very nice. Wallaby was always moving 185 pixel if the risk movement decides which direction is the best. This lead to some flaws at certain distances and Wallaby can easily hit with linear targeting. What i do now is, i calculate the bullet time (right now i take my calculated bullet power) for the current target distance. Then i calculate the ticks it would last to reach me and the i calculate the distance by just doing ticks*8.0. 8.0 is the normal travel speed i travel but this could be improved by some average or a movement simulation. The effect this has is that i travel more that 185 if i'm far away from the target and less if close. Well, also this means he shoots at me but i stop right before the bullet could reach me. The basic tests around this new feature showed that this can trick quite a lot of basic guns. Especially the nano guns are very vulnerable to this movement. Because i travel a very long distance in one direction if i'm far away from the target, the nano's shoot a couple of bullets in my linear direction but if the first bullet would reach me i change the direction and all other bullets miss be by a mile. I hope i can make this more exact in the future (Numbat should also profit from this movement). One thing that comes in mind is detecting what bullet power he really shoots, calculate my distance on real movement, calculate the distance from my risk point to the enemy (right now i take the distance to me), and maybe calculate the angle that would be the savest if i change the direction. This should prevent to hit bullets that are shoot at HOT at me. Well, i'm quite excited to see how it works ...
Credit: nothing new
...of we go
Date: 20/08/2012 Size: v4.5 747
Whoooohooo the last version did very well and gained 0.3% score and that after a complete code change. I'm quite excited right now and changed the code even more. The energy target rule, if only two opponents left, got stripped and changed to a score-distance rating. Every time i hit a target the score is saved and if it comes to decide which target is nearest the distance is adjusted by the score to. Which means targets with huge score can travel away from me and are still the mainTarget. Unfortunately did the testRuns show a remarkable decrease in score but somehow i think this might work against all weak bots and could sum up somehow. Well we will see. I also pushed the velocity calculation within the lock target logic and therefore the average velocity is now the velocity of the locked state. I guess it is a little more exact but i could be wrong.
It is very interesting how many new options are open now, after the code change. I thought i'm finished with Wallaby but now i'm even more hooked. I feel like i'm improving in code writing and RoboCode in general and i have to admit that it is very satisfying for me.
Credit: nothing new
..off we go
Date: 19/08/2012 Size: v4.4 745
Well, same day and another version. Never say never and Wallaby got a huge code change :). The last version did a little better than v4.1 (best so far) but it was nothing to talk about. While looking for a better setup (back to 600 bullet distance) i convinced myself to do something that i would do for a long time. I think if a bot needs rules like, (energy > blabla), then something is not right. The code should work by himself and shouldn't need those rules. Luckily the first thing i found was 13 bytes by getting rid of the WallabyTarget class. Right after this change i stripped all minor rules, like shoot only 0.1 bullets or don't shoot if energy is low and looked at the code size i had left. Well, i got 50 bytes to play with. What do do, what do do? While working on Numbat i saw that the average heading change is something that might be rewarding and i should give it a shot. Wallaby collects now when it is locking the target all heading differences and take the average if it calculates the fire angle. In theory it looks very neat and it still fits the code size. I really hope this is working, because it looks very right :).
Credit: nothing for now
...wallaby jumps excited on the field
Date: 19/08/2012 Size: v4.3 749
Playing the whole day with RoboRunner, gave me something that might be work. After switching the main combat variables randomly it turned out, that 400 bullet distance and 3 move border gained 1% in all weight classes. I'm still a little disbelieving but i give it a shot :). The last versions changes had almost no effect on the score (beside an increased survivability of 1%). I thought i was finished with Wallaby but after the arise of RoboRunner, and a very nice test run environment for melee battles i'm convinced to find a better combat setup. I guess the code is complete how it is now and i don't want to change it anymore.
Credit: of course to Voidious for releasing his RoboRunner. Thanks man!
... off we go
Date: 18/08/2012 Size: v4.2 749
I found a little instability and want to see how it affects the score. The bulletPower for shooting should be always the power of the last tick. because the angle and distance are calculated with this bullet power. This was something i observed at Numbat and i guess it is also true for Wallaby. Overall this should made the gun a little more exact. After running some test with Voidious his shinny new RoboRunner i'm keen to give less bullet power a shoot as well. It should result in less damage but could be result in more survivability, hopefully.
Credit: ....
.. off we go
Date: 05/07/2012 Size: v4.1 745
While working on my new bot i discovered a little hopefully improvement to the movement and i'm keen to try it on wallaby to. The basic idea was to make the default movement a little bit more unpredictable and therefore i changed the perpendicular rate to something that gets randomized within a small angle area. The test shows an increase in survivabillity in 1vs1 and if the field is not crowded anymore. I guess it is a little to much for the first rounds and so i start the randomization if the field is under 6 opponents. Maybe it is possible to find a more fitting value in the future but for now i just believe my gut feeling and we will see how it works.
Credit: as usual
... jumpy jump
Date: lost Size: v4.0 741
One sleepless night later Wallaby has made another jump in reduced code size and i hope some nice goodies to. The code size is down by almost 40 byte because of the new radar. Some minor rules like shoot only e.energy/3 bullets a the target if it is almost dead, a little more force (hopefully gains some survival), the radar locks now in 1v1. Man i'm quite excited what is all possible with this small code size. I think if i strip all the rules and minor tweaks i could think of getting a PM or GF gun. This would be neat i guess. Well lets see what this version is all about.
Credit: see Wallaby at RoboWiki, Credit for the radar goe's to Simonton because i saw it in one of his bots. Well done mate
... jump
Date: lost Size: v3.9 742
Brr just a quick bug fix. The eEnergy variable was not set because the rule breaks on getOthers().
... back to work
Date: lost Size: v3.8 742
So far we tried every version something different and after playing with my new pattern matcher guns it came to me that an simple energy switch for the targeting of the last three bots might be rewarding. All other versions failed so far and i think the energy 1vs1 rule is stronger than i thought of. I'm still thinking the close combat rule is worth to put in but after the fail of the last versions i'm not that sure anymore, and raised the value to something that only happens in real close combat situations. I also checked the "trashing" and it turned out this is nothing i have to worry about. Well lest see what we get :)
Credit: see Wallaby at Robowiki
... back to work
Date: lost Size: v3.7 720
This is the last try for a longer time. If this fails again i move back to 3.1 and declare Wallaby as finished. I think i lost the point where wallaby could be made better and don't want to waste anymore time on it. I don't think this version will be an improvement to 3.1 because i just changed the fire power function to be turn based. This means it always select the fire power to reach the target in 22 turns. This leads to a very small distance window where the fire power will other than 3.0 and 0.1 (250-500). I had run a huge stats test and it turned out that this is the main combat distance in most battles. But as i said i don't think this is a remarkable improvement.
Credit: see Wallaby at RoboWiki
... off we go
Date: lost Size: v3.6 746
Never mind the last version. I guess it was to much changing and it lost huge APS. This will be almost my last try to make something better but i'm very sure i will wallaby declare finished very soon. I removed the zero shooting and change to a "cowered" movement if only 2 opponents left, because wallaby is not good at all at this state of the battle and maybe it can grab some survival points out of this.
Credit: see Wallaby at RoboWiki
... whoosh whoosh to the battle field
Date: lost Size: v3.5 742
Playing with my big bots and my twins lead again to some thoughts about wallaby and here they are :). The damage system did not that well as i hoped for, but it is sound enough to be still in, i guess. This time i got back to the v=0 handling, so it shoots still with the average velocity if the current velocity is zero (not sure how fast disabled bots get hit after this). I also took the long lost adjustment from the v1.9 gun and hope it can do some stuff. The most important change is the new anti ram behavior. The combat distance is now adjusted to the nearest target and if the maxRate reaches a certain level the movement is not longer blocked by the distance remaining and is real time until the risk decrease to a normal level. This works very well in crowded situations and as well against RamBots. It is nice to look at how easy wallaby can jump out of the danger now. The energy save on 1v1 is again gone (i'm really not sure if it is paying or not). Well lets see what we can get :)
Credit: see Wallaby at RoboWiki .. i will give credit from no on there.
.. juuuuuuummmp
Date: lost Size: v3.4 742
Just a quick change of the danger system. The danger is now a very small increase in fire power if the bot dies before me. The max increase for all 35 rounds won would be 0.35. Lets see if this is sound or just another stupid idea. It is a burden to have 30 bytes to play with :). But i'm sure i get my 0.2% score to reach the top 15 general somehow.
Credit: ....
... of we go
Date: lost Size: v3.3 746
The last version did not very well and i removed the chase bullets. This time i try the new danger rating i came up with, but i don't think it will be an improvement. Maybe i should play with the setting a little more. I think i reached the limit of my bot (again :)) and should let it how it was in v3.1 and move on to something other. Like the twins or the next class. Well we will see. The danger system counts the others if i die and adjust the target distance for the bullet power calculation. Basically this mean if i'm on the top of the list i increase my bullet power and vice versa.
Credit: as usual
.. off we go
Date: lost Size: v3.2 749
Hmm i'm curious about this one and i hope it will do well because it supports my new minimized chase bullet system. The tests where, let's say it, superior but i had to give up some minor goodies like onRobotDeath target change and 1v1 energy save (not that Wallaby was somehow good at this anyway) I played recently with a lot of stuff like GF guns (unfortunately way to big), segmentations, smaller default radar and and and. This playing lead to some very nice insides about some of the more complex parts of robocode and i hope i can use it well in the future. I found the necessary bytes to fit it in and are always surprised how many bytes i can spare just by looking at it again.
Credit: Well i saw that i should give credit to the one who invented minimum risk movement and to the one who made the goto stuff as easy as it is now. Who ever you both are - i credit you :).. i guess it is ancient robocode knowledge and only the veterans know where they are.
... another jump on the field
Date: lost Size: v3.1 739
Well this one is just a quick check if the battle average of the velocity is better as the game average. The exciting thing about this is that i have found something that could give wallaby the needed edge to reach the top15 general but for that i first have to check the velocity average against the rumble. My guess is that the average is worst against mid/top bots and somewhat better against all nano/micro movement. I hope i can bring my new danger system at work for the next version. First tests showed that it is superior and the size still fits. But i need a more sophisticated formula to hold against every possibilities and of course a whole new quite large test run.. man i'm quit excited right now. But for now ....
Credit: RoboWiki in general :) and everyone who think he deserves it
.... boing batz ... iiiiiihhhha
Date: lost Size v3.0: 742
Hmm, hmm and again hmm. As usual v2.9 was a big let down but it showed that i shoudn't mess with the movement. After a long test run with watching almost every battle it looked like that wallaby stays a little to much on the edge of the battlefield and as there it gets easy hits from whatever sits in the corner and shoots strait to the opposite corner. By lowering the target force it jumps more often out of the edge and is way more aggressive at mid game. i'm not really sure if this could help to gain some extra score but it is worth a try i think. My guess is that it now heavy depends on the opponents. So if i get most battles with strong opponents it will loose a big chunk against the lower bots. But in the opposite with only weak opponents it should score a little better. Anyway i give it a try just to see how it works. If this works i can think about a more dynamic system. Should be a combination of energy opponents left and force, so it depends what he does on the current battle state (this would be awesome i guess). I'm not very sure about the energy save if only one bot is left. On one hand it could give some survival points but on the other hand can the other bot collect more damage points and in the end it is even or less score. Well lets see how this works.
Credit: hmm nothing new
... boing boing
Date: lost Size v2.9: 743
Grr v2.8 was a complete fail. It lost almost 1%. Looks like i was wrong, as usual, with my predictions. It is sad that the zero velocity shooting doesn't worked like it should. I think to bring this to work it need more code and a lot of help from some stats about the velocity history. So i'm back to 2.5 with lot of code size to spare and no really good idea to spend it. This time i try just some little things like onDeadRobot() only changes the target if it is the current target. Also i got back to a different field for move and gun, it should bring at least some points against wall movers. Well one bigger change is the randomization for the risk distance. I brings wallaby to change the heading more often, especially at corners. Also just for curiosity i brought back the setAdjust...(true) methods. There is enough code size left for really important stuff, if i only would find it.
Credit: well everything is back to normal :(
... jumpy jump
Date: lost Size v2.8: 744
After the last both versions did not so well i got back to 2.5 and started from there again. This version holds a new, hopefully, improvement for the gun and should score a little more against nano/micro bot movements. The gun now shoots on zero velocity targets with the reversed former bot direction. This means if an oscillator moves back the gun shoots at the right direction. Against long distance mover the gun should score a little less. The average velocity is now a rolling average (by Paul Evans from the RoboWiki page). My tests showed that the normal average would be a little better, but i didn't found the required code space. The rolling average is over a very small (20) turn frame. I'm pretty sure there is space between the variables in onScannedRobot() but my brain refused to give me the right answer. Everything else is like version 2.5 and should work like it did.
Credit: Well, credit goes to Paul Evans for publishing the very code size efficiency rolling average formula.
.. off we go
Date: lost Size v2.7: 738
Today i made an interesting observation and want to give it a try. I collected some stats about my fire frequency and it turned out, that i only shoot 75% of the time. I loose a lot of turns with the getGunTurnRemain() call and the most interesting was that it happens mostly at the start of the battle. This means in this time i change the target to much often and loose the opportunity to fire. By just cutting out the function call, wallaby is shooting whenever it is possible and in the early game it has a good chance to hit something with this "air" shoots. At the end of the battle the target is mostly clear and there is no gun turning anymore. I also switched the getEnergy() < 6 call. If the energy drops under 6 i still shoot 0.1 bullets till i'm dead - somehow this makes more sense to me. By now i have huge code size left and really should think about something to use it.
Credit: see last version
.. next jump
Date: lost Size v2.6: 742
Wallaby is holding the rumble and i think it can be a little better with the changes for this version. One thing was, the fail against everything what has wall in it's name (because i only shoot if they are in 20 wall zone). I changed the wall zone rectangle to be different for move and shoot. I'm not sure if it's a good idea to stop shooting near the end but i will try it with stop shooting at 6 energy. This give some room for wall hits and a lot of 0.1 bullet hits. I have some code space left for other things but for now i have no idea how to spend it.
Credit: hmm, nothing really changed
.. off we go
Date: lost Size v2.5: 746
Uhh i'm to stupid to even bring one line of code without a bug. I forgot to set the lastScan variable in v2.4 and so it was exact the same like v2.3 just a normal linear gun. After putting this one in, i was back to code size problems for v2.5. I hope i got it finally right even without the lastScan variable. The heading difference will only kick in if it is in max turn rate limit. This solves the problem with scanned targets who haven't seen right before shooting. And also the reset on battle start. So we shoot sometimes linear and sometimes circular - i hope this make sense. Man, i'm quite a bit disappointed about my stupidity. Maybe i need a break but i'm totally be hooked and i smell somehow success :).
Credit: to all people who can code stuff without bugs :)
.. jump little wallaby jump.
Date: lost Size v2.4: 749
This one is probably the best i could come up with. I played with my nano bot (Quokka) and there i found out how to make the gun and movement smaller. I could save a lot of code size while taking out the getX() and getY() coordinate shift and just take the relative coordinates. This gave me the opportunity to fit in the heading change and the needed last scan check. The tests where superior compared to the last version but we will see how it works against the whole rumble. Wallaby has now a fully precise circular gun with wall handling and backtracking. The radar still locks on gun heat and the movement is a combination out of minimum risk, antigravity and oscillation. I have a hunch that i could save even more code size but for now i reached my personal limit. Version v2.3 did very well and scored with a measly 0.12% behind capulet.
Credit: nothing changed. But i want to give credit to all robocode veterans in general because they deserve it.
... shy wallaby jumps at the battleground.
Date: lost Size v2.3: ...
Hmm v2.2 had still a bug and under certain circumstances the radar was stuck at one point and wallaby was a sitting duck. What a bummer. I don't think the DIST=210 and DIST_REMAIN=40 values wasn't working very well either. I hope the bug fix and the v1.9 combat setting brings wallaby back to the top. If this version fails again i will go back to v1.9 and start from there again. Looks like i missing the point what had made this version so strong. Nothing else changed and i'm a little disappointed about myself. I have to find something that cheer me up.. maybe a mini or 2v2 or so.
Credit: nothing changed
Go Go Go ...
Date: lost Size v2.2: 746
I changed the combat variables a little bit to be more like version v1.9. There was not much success with the settings in v2.1 it was ok but not perfect. So hopefully this will do better. The code should be ok now and it works like v1.9. The tests show a little less performance than 1.9 but i want to see if the setup is ok.
Credit: well nothing changed :) see v2.1
Off we go ... uhh two versions on one day, i have a hunch this is not working very well
Date: lost Size v2.1: 748
The last version was a complete fail because it had way to much bugs in it. I switched back to normal precise linear targeting because it turned out that i get almost the same results with it with the advantage to have less code size. Also back to own guess variables. The radar get some love with a 0.7 gun lock and now it has enough time to search and relock the target. I also switched back to a myTarget variable to hold the current target, because this makes wallaby only shooting if the radar and the gun is pointing at the enemy. It is not very much what i get out of this but is noticeable. Otherwise sometimes the gun shoots 'blind' on an old guessed position of the target. The radarGun adjustment had to go because of code size problems, but i haven'd seen any influence so far. For maintenance reasons i put all static variables to the head. The test works very well and it could be that this one can catch up very close to Capulet. It should score way better against nano bots than the former versions.
Credit: Still CrazzyBassionist for the overall movement concept.
Off we go...
Date: lost Size v2.0: 733
Hmm looks like i was wrong at most of my guessing for v1.9. Wallaby did surprisingly good and catch almost Capulets score. I don't know why i was thinking v1.8 had a bug, because it turned out that everything was ok with it. So i decided to switch back to the precise circular targeting and hopefully this will give me some APS. It also turned out that even with a normal linear gun wallaby can still hold its score (remind this for later versions). But the biggest let down was to see that my movement isn't something new and that CrazzyBassonist did almost the same with his Mercutio bot. I didn't noticed this bot until it showed up as major thread for v1.9. Because i tend not to mix bots from same bot authors in my test runs this bot never showed up to me. So the credit goes back to CrazzyBassonist well done mate - you are still way ahead of me. After i was a little proud of me for finding a good movement i'm now back to the old thievery feeling, what a bummer. Anyway i shuffled the code to something more compact, combined the gun with the movement calculations and changed the battlefield zone for the gun and movement. I also fixed some codeparts for the gun code (same logic but smaller code). And stripped the fire power function to a minimum (it turned out that i don't need a min check because it can not fall under the min bullet power). I also changed the movement from remaining distance to zero just to see if it also works.
Credit: Well, back to CrazzyBassonist and his Mercutio 1.0 for the movement concept. Very nice mate.
And ... off we go (not as excited as last time, but still excited)
Date: lost Size v1.9: 745
I think it is time for a new version. Finally i got my own movement and i'm quite happy with that. The movement is based on MinimumRisk and combines anti gravity with oscillating. Basically what it does is to rate a couple of points around me, calculate the overall forces and the perpendicularity to the current target. That has two advantages. First wallaby stays, if the field is crowded, out of trouble and after a while the oscillating kicks in. This is mainly because the forces are not as strong as with 9 opponents. Second wallaby oscillates to close combat like version 1.8. the default combat distance can be adjusted with the default power of the enemies, and this overcomes the mid field stuck. The rating between force and perpendicularity makes this working. One major surprise was my gun. I figured out that 1.8 had a bug and so it doesn't count the heading. This means i just had a precise linear head on gun. And this worked very well so far. But this means also i could think about a calculated solution over the iterated solution. My tests showed that this version will probably do a little worse than 1.8 but i hope to see an improved survivability. I also figured out what the main difference between wallaby and the two top bots is. Both bots have way more fire power than wallaby. If i test my bot against the top ten i almost win and grab the survival points. But if it comes to pairings with other weaker bots both bots grab the survival points too, but because they make more damage they got more APS compared to wallaby. I have to look out for this in later versions. The code is ugly and unfinished and i will tweak this later, for now i only want to see how it works.
Credit: Finally i could get rid of the "stolen" movement, it showed me that i was thinking in the right direction so thanks for this again to CrazzyBassonist and MichaelDorgan. The fire power function is a little stripped but still Credit to CrazzyBassonist. I have an idea how to improve this a little but for now it has to be enough.
Well, off we go...
Date: lost Size v1.8: 748
I'm somewhat disappointed that the last version was such a mess. It scored big against all the top nano bots but it was loosing so much points against almost every low ranking robot. I don't know what's up there, my guess is, that i almost instantly die if it comes to pairings with other weight class bots, say MegaBots. Because wallaby tries to go at close combat range it has no chance against this MegaBots and so it loose a lot of scoring against the low ranking bots. I don't know if this is intended and the ranking is working this way but i have tried all pairings local and it almost ever come up as first against my own class. If it works this way i have to change the bot almost completely and have to implement somewhat of a dodge movement. After a couple of tries with MiniumRiskMovement i decided to give the AntiGravity Movement a try and it worked somehow superior. I have to say that i took the implementation of DustBunny and it is a shame (i know that). But this days it is almost impossible to invent something equal without taking the thing which are still there. It is (like almost every nano code) an impressive piece of code and i can only imagine what kind of math genius must be behind such algorithm. I still try to combine the AntiGravity with OszillatorMovement but whatever i came up with was not small enough to fit in the micro class. I decide to give this one a try as it is just to see if the combination can raise some ranking. If it works i promise to change the code to somewhat more self invented. I don't fully understand the dynamics of MeleeRumble and have no idea how to test the bot without putting him at the rumble. I have tried RoboResearch but it is not working for melee very well. Even with the changes form voidius. Like the last version i run massive test against all bots within my weight class and it worked very well. But how can i be sure about this :( ... the last one was exactly the same. Well enough whining and we will see how it works.
Credit: The movement is fully taken 'stolen?' from DustBunny and Caligula and i deeply hope you guys are ok with that. If not just give me a short message and i will instantly remove the bot and will come up with something other. I think the competition is very close to the edge and it is very hard to come up with something real new. So it is almost left to shuffle what is there a little bit and hopefully it will work. The gun is nothing new or original even if i came up with this by myself it was still there. Whoever wants to take the backtracking improvement is very welcome.
Well .. off we .. you know
Date: lost Size v1.7: 665 (yes unbelievable)
Well, let me say it first i'm not quite happy with this version, simple because it has another piece of code from CrazyBassonist in it. I was looking for a simpler version of oscillator movement and found the nano-1v1 bot caligula ... and he did exactly what i was in need for. First i used a modified version straight from the RoboWiki and it did the same what Caligula is doing. But it was 10 bytes more and i thought it would be a waste not to use it straight away. Please CrazyBassonist if you read this (or someone who knows this mate) give me a message at robocode wiki to wompi (unfortunately could'nt i found a contact otherwise i would ask you by myself). If it is against the robocode License i will change this ASAP. The last version did amazingly good and stuck at 4th with a very close look at the 3th kawigi.micro.Shiz 1.1. After this i played a little to much with the NanoBots and all this awesome pieces of codes gave me a big headache. On this playing i realized that it is only the gun that matter in melee .. every moving pattern fails if you have not the right gun at hand (or you have an excellent movement ... yes Lib again :)). So i decided to give the simplest moving that i can come up with a try ... and surprisingly did it very good ... it almost won every test match against the top10 MeleeBots even against capulet was it superior. I also adjusted the guessing of the gun a little more and now it spreads way more. This gives a slightly better hit chance against other oscillators and i think it is worth a try. By now i have plenty of bytes (something around 100 if full stripped) and have to think about something what can make my gun even better. I have something in mind (classifying the enemy movement on displacement vectors) but it is not really finished yet. I just want to see who well this version is doing at the rumble and after this i will give it a shot.
Credit: Biggest credit ever .. CrazyBassonist ... capulet, caligula. This mate has some impressive coding skills and also a very nice thinking in terms of robocodeing. Unbelievable what caligula (nano weight) is doing. Please if you have'nt seen it till yet give this piece of code its attention that it deserves. I can not say it enough - well done mate.
off we go...
Date: lost Size v1.6: 741
Oh lord what was i disappointed about the last version. Not only that i had overlooked a major bug it was also a disaster to see how terrible the survivability of this version was. After a couple of fights i canceled this robot and switched back to 1.4. I decided that i need more inspiration for the next version and found some source code of the top ranking robots. Well it turned out that my gun was nothing new or special. Capulet 1.1, the top1 micro melee robot, has exactly the same gun and so the Credit goes to this robot. My gun does the same, but with a minor advancement in backtracking the guessed Target points if the robot is near a wall. But one thing was really amazing of the Capulet gun. And this is the bulletPower function. I played the whole day to find my own .. maybe better one, but it did'nt work. I decided to take this bulletFunction. If this is a problem, please can someone give me a message on RoboWiki to Wompi. I'm not really sure what the License about this is. I really hope this is ok. The movement did very good and i did'nt change anything. The radar is still annoying me.
Credits: Big credit goes to Capulet 1.1 (CrazyBassonist) he has an amazing robot. And it is very well programmed. I wish i could write code like you. Same goes to Sprout 1.1.3 (name?). Unbelievable how this robot is programmed and it still fits the micro class. Awesome mates, it was a pleasure to read this two robots.
well off we go ..
Date: lost Size v1.5: 747
Well, that worked out pretty well 7th after 120/125 pairings micro, 14th after 156/163 pairings mini, 53th after 306/320 pairings general. I'm well excited about that and will call it for now a success. Wallaby did very good as close combat melee robots but as i guessed it lacked in survivability. After a massive test run i decided to make the gun more precise and fiddled in the targets heading change. I also changed some combat variables to fit a little more survivability (hopefully). It still is not a match for the top robots but hopefully it will raise some ranking. The code size is now pretty urgent and there is not much room for changes. The movement needs still some help and i'm quite unhappy with the radar. The radar is a little to much flickering for my taste. To find some better combat setup i need a battle script that figures out what is best and what not. But for now i'm not in the mood for this.
Credits: Nothing for today, i just watched my code an tried to make it better. No research so far. But anyway thanks for reading this :)
Maybe i should wait until the rumble is finished and all pairings equal. I'm really not sure how the ranking is working if i switch early to another version. Unfortunately there are not many contributors these days, only MN is still doing quite nice contributions to the rumble. Thanks for this, from me. I try to keep the contribution up and running but it's not enough for all rankings.
anyway off we go...
Date: lost Size v1.4: 747
Well there we are again and Wallaby still dies like a fly. After a little combat research it turned out that the circular movement is way to weak for all the corner sitters. If you want to survive you have to move to the save corner spots and try to capture the flag there. But, well that is not my kind of fun. So i tried something different and we will see how far we can get with that. From now on is Wallaby more like a Dingo and chases everyone and his dog. I implemented finally a better gun and hope this one will do. Wallaby is searching for the nearest enemy and with some fancy avoid moving it closes in to combat distance. On my test runs this was very funny to watch. Future versions need a little more survivability but for now it will do. The Radar is now way more aggressive and locks the current target until it find by accident a new one ... or of course the old one is dead. The gun gets a little help from average Velocity calculations over all battles. I don't think it is overly important but my feeling about this is good. It has still some bad behavior. Wall stuck if the Math.random() not changes in a row. The center variables are not really necessary and the Geometry is'nt perfect by now. So there is plenty of room for changes.
Credits: And again i have to thank some people for there work. First AntiGravityBot (Alisdair Owens), in the first place i took his gun. But after a while i was disappointed about my implementation and changed it to what it is now. But thanks for the inspiration. I like this robot and the movement is also very nice. I also had some code reading on certain 1v1 nano robots (sorry can't remember the names) I didn't took any code but they are always nice to look at. So thanks to all who have decided to make there source code open public.
off we go..
Date: lost Size v1.3: 748
The last version did so damn horrible wrong that i decided to change the first idea and got back to a more common robot. I changed the movement massively and i like to see that my first thought about the randomness was right. We will see what it can do at the competition. The gun is still very rude and i wouldn't call it a gun .. its more an annoyance. I included a lot of rules to help the gun a little bit, but this is not very good i think. The radar is now not only spinning ... it locks in 1on1 and in certain combat situations. Again its more of a rule base than a good program. But well you know ... sometimes you have to try out things.
I haven't really looked at the code size for this version and there are a lot of saves and things i can do better..
Credit: I will credit the Lunar robot from Sulibilune. He has a very nice implementation of anti gravity force and i liked this one so much that i had to include it. I hope it is not a problem - if so please give me a message at RoboWiki to Wompi. It is just the way how the force is calculated and i didn't took anything else.
Credit: the gun and radar are just copy past from the tutorials for linear targeting and 1on1 radar on RoboWiki. Thanks to this guys - it is a pleasure to read this site and i always discover something new.and off we go ... i'm so exited to see how it works
Date: lost Size v1.2: 415
Well from now on i include the sources manually you can see the improvements(?). This one is a little milestone, because i finally got the movement very smooth and there a lots of possibilities to randomize the straight circle. i'm sure you will see in future releases nice ram/bullet dodge actions and crazy driving patterns. The gun is still very ugly ... i don't want to talk about it right now. The credit for the gun go's to RoboWiki tutorial ... linear targeting - it is taken from there. The fire rule is something i came up with, when i saw the Wallaby constantly draining energy from missed shots. It died to most 1on1 because it shots missed shots drained the energy to zero. The rule to stop fire if energy is low would be improved in the future. The radar is still very basic, but i don't really need it right now.
Date: lost Size v1.1:
see 1.0 ... i thought i included the source but it looked like the robocode packager don't like mac's
Date: lost Size v1.0:
Unfortunately didn't i include the sources .. so this one is lost