[Home]Ugluk/Chat Log 1

Robo Home | Ugluk | Changes | Preferences | AllPages

Difference (from prior author revision) (no other diffs)

Changed: 1,208c1
I enjoy your enthusiasm. <removed obsolete comments> If you want a good indication of Ugluk's melee strength, you might want to start with some classic well-rounded competitors: gg.Wolverine, intruder.PrairieWolf, emp.Yngwie and tzu.TheArtOfWar come to mind. Cheers. --Corbos

I was running Ugluk 0.4.0 against Stampede2 1.1.0 and I noticed that when Ugluk is entered second into the battle, it doesn't fire at all for the first 2-3 rounds. This happens consistently, but only against Stampede2(as far as i know). I ran Ugluk against several other bots with the same setup but could not recreate the results. Anyway, just letting you know about a potential bug.
EDIT: I ran a few more tests, it looks like it has something to do with the fact that Stampede2 only moves when fired at. --wcsv

I noticed some odd reluctance to fire as well, and eventually I tracked it down to a line that basically says if the expected hit percentage is too low, don't take the shot. After commenting out that line Ugluk was firing once again. Last night I uncommented the same code and Ugluk is still firing, but at a better hit rate. I recently added energy management statistics and overhauled the internal movement prediction engine, but at some point I dropped from second place against the Freya line of bots (Freya in 1st) to dead last. I am trapped in a cycle of playing with movement combinations and other settings. Also known as polishing a turd. -- Martin Alan Pedersen

I found the bug causing Ugluk not to fire against a non-moving target. Three factors went into it. I was dividing a long by a double of the same value when I had a 100% virtual bullet success rate, which evidently was the root of the issue. Also against a sitting duck there are only two guns that I have that won't hit 100% of the time; tangental oscillation and mirror guns. In 0.4.0 those guns were disabled to reduce computation time. If they hadn't, one would have fired at some point and made you move, which would have snowballed into all guns being fully operational (and rather over-confident). I've a few more bugs to ferret out before I release 0.5 though. -- Martin Alan Pedersen

While refreshing my memory of the virtual bullet engine, recently refactored to better compliment the wave system I'll use for guess factor targeting, I noticed a nasty redundancy that I thought has been cleaned up in an earlier fix. The short of it is that my targeting statistics and wave surfing data were garbage. With a quick repair I turned Ugluk's performance around and made him the star performer I knew he should be. While 0.4.3 was trailing about 100 ranking points compared to 0.4.0, 0.4.4 is leaps ahead. --Martin Alan Pedersen

Found another bug, this time in my linear and circular mean targeting methods. Maybe they won't suck so much now. I overhauled my firepower selection mechanism to shoot at the best product of hit percentage and damage. Should make for higher powered shots (but not much higher) in the opening ticks of melee battles where things are packed together, and higher velocity shots as things thin out. Testing it now against the bvh.* crew. I've also earmarked my present virtual bullet system as 'virtual', and shots actually fired as 'actual'. My virtual bullets will feed my regular battery, which will fire actual bullets which will feed my fired bullet stats, which will feed my guess-factor gun (which will also be part of the virtual gun array). After a little while the guess factor gun may become favored over the other guns and take over. Then your bot will be a smouldering heap of rubble. --Martin Alan Pedersen

It was nice to see Ugluk taking first place in melee battles in the Rumble for a change, though I'd seen many 2nd place finishes before. 2nd place is 1st place for losers. --Martin Alan Pedersen

Freya - Diety or no, I shall eventually crush you under my heel. Thus far you have eluded me, but there are only so many blindspots to hide in. As the veils of my ignorance are lifted, your destiny may be more clearly seen.

Not before the ["Gotterdammerung"] if i have it my way. So i will take up the challenge. I guess i have at least 20 'blindspots' left in melee to hide. ;) --Loki

I haven't been actively coding lately, having purchased a new machine that took about 4 days to get running. I'm also low on ideas of how to improve Ugluk's performance. I made a significant leap with Ugluk's movement but the guess-factor-like gun has not been the gun of choice against any opponents thus far. I think my next step is to make the bin divisions parameter driven so that I can have multiple guns and eventually dynamically segment (or implement some other catch-phrase). -- Martin Alan Pedersen

Well, I made an innocuous adjustment in melee and it went awry, but my dueling tweaks were an astounding success (v0.6.1). -- Martin Alan Pedersen

Melee is hard to grasp, small improvements tend to let you loose 10 places. One-on-one is a lot easier to improve. By the way, what do you mean with 'Domination'. -- GrubbmGait

Well, each rumble has a different number of opponents, so my getting 38th in melee looks a lot better than 123rd in duels, though they are about the same in terms of what percentage of the competition I am doing better than, which is my 'domination' figgure. My best melee bot (so far) can beat out 75% of the melee rumble entries, and my best one on one bot can beat out 69% of the opponents. When I hit 100%, it means I've finally beaten Ascendant (or whomever beat me to it). So.. it is just my way of putting Ugluk's ranking into prespective. -- Martin Alan Pedersen

Ugluk 0.6.6 simply does nothing in most matches on my system... So every result comes back with Ugluk losing 6,000-something to 0 (which I think just discounts the match completely because of the zero). No errors printed to the console or anything. I'm using Java 1.5 to run Robocode, FYI. (I actually just noticed a match vs TheBrainPi where it didn't get 0, but that was the first I noticed that wasn't.) -- Voidious

Part of that is me being mean. He won't even try if the battle is not 35 rounds long. It hampers exhaustive tests against him, while still allowing him to compete in the rumbles. Evidently I failed to test my recent modifications to the kill switch implementation. Doh. Ah well. It was pretty funny to barely beat SittingDuck. -- Martin Alan Pedersen

Hm.. I removed 3 guns that I didn't think we all that necessary .. and it turns out I was wrong... good thing I make regular backups of my code. -- Martin Alan Pedersen

Re: "me being mean..."
Martin, if you ever do make it to #1 in these rankings, I'm going to dub you "the Bill Gates of Robocode". :) -- Voidious

A small price to pay.
I fixed some errors and added the mostly useless pattern matcher. -- Martin Alan Pedersen

"Momentum = 1.9273471707492718E-13" .. I'd say that's pretty stable. -- Martin

Congratulations for breaching the 1700-barrier, next goal 1800?? or maybe 1700 in melee?? -- GrubbmGait

Thanks. I'm looking to get in the top 20% of melee, which would be ~1666. Not sure how it's gonna happen though. I still only rarely beat Freya 0.31 in my test melee battles. -- Martin

Martin, i allways get a NullPointerException in "setPerformanceStatisticsTracking?" with Ugluk 0.7.2 (in melee). But as it is currently ranked 45 in melee, it has to do with my set-up (Java 1.5.0) and not with Ugluk. Any ideas? --Loki

Heh .. just me being a jerk again, though I wasn't being as clean about it. I've fixed the code so Ugluk will just sit there doing nothing and not throw the exception. Ugluk won't participate in battles that aren't 35 rounds long! He's sneaky that way. -- Martin
* mmmm, so except for a fighting-strategy you also have included a strategy to hinder me developing new ideas and test them... ;) Well, now i understand why in my normal testing (50 times a 35-round battle) i got normal scores for Ugluk, but when i ran some 1000-round battles today with Robocode to watch my new movement i saw a rather unconvincing 'sitting duck'. --Loki
** well, in terms of testing against someone you will be competing with in the Rumble, a 1000 round battle gives you tainted information. My guns have more data to work with and will be firing more accurately, as will yours (though I've found yours are better than mine in 1000 round battles), so the scores may be more stable but don't reflect scores of Rumble battles. I set my battles-per-bot to 1200 so I'll fight all my opponents three times (on average) before I mark down a 'final' rating. Three fights leaves a lot of wiggle room.

I guess the Roborumble isn't everything though. I should be flattered that you want to secure dominance over Ugluk. Then again, I've got the same ideas about your bots... -- Martin

I refactored my bearing offset gun segmentation to represent the segments as objects instead of a multidimensional array. This was a brain draining undertaking, but it should help the cleanliness of trying out new segments. I'm submitting v0.7.3 as a baseline for the changes, and v0.7.4 will likely have new segments that have promise. -- Martin

Hey, welcome back from your brief absence. By the way, I'm honored that you find my bots to be a worthy challenge. --wcsv

I remember getting Stampede2 from the repository when I was just getting started with Robocode and I didn't realize how strong it was because I was running melee battles. When I decided to work on duels I did some 25 round tests against Stampede2 and Chomsky. Once in a while I'd get one or two wins against Chomsky, but Stampede2 shut me out every time. I can beat Stampede 1.3.3 now, but your other two bots are leaving welts on my hindside. ( I can also nearly beat Chomsky 1.5 but Chalk is out of my league for now. ) - Martin

Ya know, I had a dream last night where I saw some kind of sign post labeled "Ugluk"... And I thought to myself, in the dream, "Oh, that's weird! That's the same name as Martin's tank." Maybe it's time to spend less time on this wiki... ;) -- Voidious

Added a screenshot from World of Warcraft. Now you can dream of Ugluk himself. -- Martin

Fighting battle 21 ... pedersen.Ugluk 0.7.5,kawigi.sbf.FloodHT 0.9.2
RESULT = pedersen.Ugluk 0.7.5 wins 2623 to 2518

Cool. I grabbed this version and ran a few battles with it. I'm pretty impressed; 0.7.5 seems to be much better than previous versions in duels. FloodHT is a really strong bot, keep up the good work! --wcsv

Thanks. I introduced two new segments to my bearing offset gun with 0.7.4 but nothing happened. With 0.7.5 I added some decay to the movement stats (introduced with Butterfly 2.0) and a new wave surfing movement that waits until the last moment to go to the bearing offset, rather than going immediately and waiting for the wave. Evidently it works. I also did some tuning against the lowest ranked bots in the rumble to squeeze the most points I could out of them, but I doubt that was a significant portion of the boost to Ugluk's rating. -- Martin

Top 100 with over 500 battles! Congratulations! --wcsv

Welcome to the RobocodeHigh School by entering the top-100! You sneaked up on me while I was busy with melee, no hard feelings for that, and I intend to improve GrypRepetyf shortly so be warned. You can easily compare two versions of Ugluk to see the impact of your changes. Click http://rumble.fervir.com/rumble/RatingDetailsComparison?game=roborumble&name1=pedersen.Ugluk%200.7.5&name2=pedersen.Ugluk%200.7.4 to see the difference between 0.7.5 and 0.7.4. -- GrubbmGait

That link (modified) will come in handy soon. I just placed two 'new' version of Ugluk in the Rumble. Ugluk v0.7.5a has some additional tuning against below-average bots. Ugluk v0.7.5x has all opponent-specific tuning turned off. It is 60% of the size of the tuned version. This comparison should tell me two things: How much my rating is improved / inflated by the tuning, and what tuning is obsolete due to advancements in the bot since I started. -- Martin

So far the results are unsettling. The ratings are within 5 points of one another after over 300 battles each. I'll see if there is any information to glean from the comparison of 1200+ battles each, but so far it looks like I need to retest each of the opponents (unless I am already crushing them) with each advancement in movement or targeting. Ah well. -- Martin

Ultimately, I don't know if a bot-specific approach is scalable. Better to work your ass off figuring out a generalized strategy. I noticed your 'profile' classes and wonder if it's worth it. Bot-specific logic is rigid. Seems like the holy grail is ultimate flexibility. --Corbos

If by scalable you mean that as time marches on the bot can adapt .. well .. if I'm not paying attention I don't much care how well I am doing. Also advances in movements and targeting over time mean your bot is going to go by the wayside if you aren't developing it (eventually).

My approach to the tuning takes manual repetition of running battles, adjusting, and running more battles. For each opponent. It is time intensive and the Rumble rating gap is telling me it ain't fricken worth the trouble. I am guessing that my primary boost came from the dynamic elimination of inferior movement techniques. The more adaptive Ugluk gets the less of a need for hard-coding.

That said, I still plan to revisit pre-loaded enemy data when I implement a crib sheet or something like it that I can use to tune a statistical gun with x rounds of test data. -- Martin

I'm sure the data is valuable. Still, hard-coding == bad ju-ju. ;) --Corbos

Did some crazy wide-scale seat of the pants refactoring to allow my guns to target Ugluk. I also added a movement method intended to dodge all incomming virtual bullets fired with those guns. It is not very mature, but my score climbed back up to the enemy profile version, though profiles are presently not used. I will probably leave them disabled until I get a real statistical wave surfing movement, rather than just the two styles of random offset go-to's I have now. Right now it feels like I'm doing everything I can to put off my next overhaul of my statistical guns, though the recent changes are groundwork for it. -- Martin

I've been making tweaks to my melee movement and nothing is having a tangible impact on my rating. It is quite frustrating. -- Martin

I know the feeling, the one-on-one changes to Gruwel should not have impact on its melee-performance, but it dropped from 29 (0.2) to 40 and I never got it back on its level (yet). -- GrubbmGait

I'm gonna be working on a redesign of my bearing offset gun for a few more days. I am designing it to allow the segmentation granularity to be adjustable as the population increases. At this point I do not know how I'm going to decide when to make that adjustment. I'll probably have to do some measurements akin to those discussed on the entropy page. -- Martin

I've introduced some nifty stuff in terms of my bearing offset gun with v0.8.0. I am hoping it can tackle some of trickier movement algorithms out there, and maybe catch some napping surfers. Time will tell... -- Martin

Whoah, some weird stuff going on with Ugluk's ranking... He's "at 1990", but underperforming by 10+ points against everyone in his list but 1. (That just doesn't make sense.) Any idea what's up? -- Voidious

I'm more curious than anything, as I know it will stabilize. Maybe the first match was vs FlamingKombat, and skyrocketed the ranking immediately? -- Voidious

First two matches were Shiva and micro.Freya, uploaded with a 2012 rating, both 20 points in the red. I dunno how the rating thing makes the original ratings, but it's pretty nuts in the beginning. -- Martin

Weird indeed! I thought it started you at 1600 and adjusted from there? *shrug* -- Voidious

New bots should start with 1600, updated bots should start with the rating of its previous version. Alas there is some flaw somewhere, so Ugluk started with the rating of the old Pugilist or Dookious or so. If the momentum is high ( > 15) positive or negative, the rating has not stabilized yet. If you have a momentum of -300, your next battle will let your rating drop by 3 points! -- GrubbmGait

By the way, twice throughout the night, Ugluk crashed with an "Out of Memory" error, and I had to restart my RR@Home client. -- Voidious

I also saw this error last night, but I couldn't get it to happen again so I ignored it. --wcsv

Hm.. sorry about that. He's started logging more wave data but in tests he didn't start having heap errors until around 200 battles. I have my batch files allow 512 megs instead of 256 so maybe that's why I haven't seen it crash any of my Roborumble machines. I'll see what I can do about managing the memory better .. -Martin

It turns out I was logging all waves instead of just the non-virtual ones, so that's about 100x as many as I was expecting. 0.8.1 will address this problem (after some more tuning). -- Martin

Hmm, sorry to nitpick, but... Isn't it a max of 16 ticks between bullets at maximum fire rate? =) -- Voidious

A while ago I reworked my virtual bullets and waves so that all bullets (virtual or not) are just a firing angle attached to a wave. This is really smooth for non-virtual waves because the firing solution that is selected for the shot becomes the wave and then all targeting systems are repolled with an exact bullet velocity constraint, each targeting system returns one (or no) firing angle that it would use, and all of those angles (and a reference to the source targeting system) are attached to the wave.
With virtual bullets each targeting system can have tens of firing solutions each round, none of which are coordinated with one another (sharing a wave). Typically I've got 9 targeting systems, so let's say each produces 25 firing solutions for 16 ticks. That's 3600 waves with one firing angle attached. One of those is selected (in tick 16) as the primary and flagged as non-virtual. So really I've reduced my storage to 1/3600th, not 1/100th, but I didn't feel like doing the math at the time. It's an area I could tidy up a bit, but I don't think it will affect my rating. -- Martin

Ah, I see what you mean now. Yeah, I use a similar integration of Waves and VirtualGuns, except I've only got 2 guns each with 1 firing solution attached to each wave ;) -- Voidious

Finally.. I win!

Well, I screwed something up with 0.8.2. I removed the breakdown of hit percentages by bullet flight time and started playing with rolling averages. Oh, and I revamped the targeting engine. And altered the functionality of two guns. Hmm.. well, good thing I have make regular backups... -- Martin

With 0.8.2 I revamped the targeting engine, affected the stats feeding my two Mean guns, did some tweaking to my latest movement, and eliminated all virtual wave creation / processing. (I still have waves based on actual shots taken.) It cost me 8 points, but I lost them really really fast. I'm sure the point loss is a combination of the tweaked guns and movement, complicated by hard-coded enemy profiles. The main reason for the rating plummet with 0.8.2 was that I'd eliminated the timeToTarget range aspect of my statistics, lumping them all together. It was a bad move, and one I had to manually restore from a backup.

I'm presently tuning a new movement for melee and I need to debug / improve the implementation of my top secret (until it works) organically segmented bearing offset gun (which paid an unsatisfying 10 rating points upon introduction). -- Martin

Have you done something special to upload only single results in melee, I have always and still am uploading the double results. This means I generate 18 results per bot per battle. I assume you are running meleebattles today, as Ugluk is the last updated meleebot. -- GrubbmGait

Yeah whatever version I have of the RoboRumble@Home is doing what I suggested a while back .. only reporting battles of the present bot and the bots it has beaten, so the first bot reports 9, second 8, and so on. #10 doesn't report anything. I do not know if it is something I downloaded or if I made the change in the source code myself. I can zip up the compiled version (I think I sebsequently doinked the source code with further tweaks) and make it available if you like.

On an unrelated note, my scores really took a nose dive even though I tested a lot against GrubbmGrb to get some kinks out of my gun (and enhance it). I did fine against GrubbmGrb in the Rumble, but something went awry elsewhere. I suspect I've messed up my hit statistics, making it favor my new gun always, when simple targeters work better against others. -- Martin

Evidently Ugluk has gone Zoolander .. he cannot fire left. He can aim left, but won't fire. Shouldn't be too hard to track down .. though it has taken me hours of other testing to notice it. -- Martin

Follow-up: I once again fell victim to the comparison of two angles when one is always positive (turret heading) and one is relative to another heading. My position.getBearing( position ) function returns a value [-pi,pi]. Bah. -- Martin

While Ugluk's rating is not stellar, and is a few points shy of his highest, he is presently (v0.8.5) doing it all with 1 gun and 3 movement options. His melee movements are different, but the same single gun (which isn't working out for melee). There are also no enemy profiles active. I'm suprised by the relative success so far. -- Martin

That's really cool; nice work. As I've continued to do Robocode, I've found that the KISS principle really can improve performance significantly in addition to its other benefits (cleaner code, easier testing, more consistent performance). I think sometimes a more complex solution ends up getting in the way of your simpler solutions as much as it is helping to augment them in other areas. -- Voidious

Ugluk has been floundering somewhat lately, so I am going to focus on getting him to a satisfactory level of achievement in duels, then leave duels behind for a while and focus on the highly disturbing game of the free-for-all. -- Martin

I expect v0.8.8 to have a low initial rating but sharp improvement over time, depending on how many different machines are processing him. If I were running all of the battles from one machine I'm pretty sure he'd reach 1800. Then again, recent changes to Ugluk have been disappointing (aside from losing really really fast now). -- Martin

What kind of stuff are you saving? I was under the impression that data-saving never yielded much more than about 10 points onto a rating. -- Curious Voidious

Well, when I was looking at data storage I was always looking at storing targeting information. Yet I realized when I was doing my tuning that the real gains in score ratio came from finding the movements that my opponents are weak against. So at present I'm just storing a list of identifiers for movements that suck against an opponent. Over time I eliminate underperforming movements, making Ugluk harder to hit, which buys more time to return fire, which increases my bullet damage and decreases theirs. The next release of Ugluk will begin with the persisted data of the former version, so the initial performance should get better over time. Basically I am doing similar performance tuning in an automated fashion. Rather than taking about 20 minutes a bot to test, code, and retest profiles, I can run the Rumble (or League, but I ran into the file i/o bug) to get similar results. Eventually I'll limit the gun selection through the same process, but for now I just went with my latest pimp sauce gun. All the discussion of virtual guns jinxed mine, and I haven't managed to figgure out what is making the stats go haywire. -- Martin

Right on, I'll be interested to see how it turns out. I'm pretty sure you can use the "canoncaches=false" argument in your RoboLeague.bat to avoid the file i/o problem, if it's that security one that you're talking about. -- Voidious

Unfortunately I've seen entries dissappearing out of the log, so something is going on to make Ugluk lose data. It needs some more testing. -- Martin

I've added some fault tolerance and reworked the file reading portion of my code (I'll update the subsection later). I spent a few hours ferreting out the bugs in the process, and I think this version should be pretty solid. Time will tell. I'm predicting this basic bot (with bug corrections if they are found) will be my 1800 mark breaker. I am going to have a few hard-coded profiles that I will turn on (all are presently off) before I 'go gold'. Ram bots take some special mojo to stay clear of, but I have a working formula. GrubbmGait's GrubbmThree still gives me a good fight though. -- Martin Alan Pedersen

As there are only three adequate RamBots around, they would not harm your ranking that much. I believe that if your close-range fighting is ok, this should be able to handle rambots also. If you can score 55% against rambots, I would not put any effort in it. There are more important issues to handle if you want to reach your goal. Every now and then using the KISS-principle can let you focus on the real problems instead of the unimportant details. See you soon on my side of the 1800 mark! -- GrubbmGait

CassiusClay does a couple of things when its facing a rammer. Like evading steeply. And never evaluating the stop position in the WaveSurfing. And shortening the BlindMansStick in the WallSmoothing. Depening on movement system the counter measures will vary I guess. But one thing that's pretty general is to detect when you are facing a rammer. I keep track of the rolling average of the enemy bot's ApproachingVelocity?. Like so:

enemyApproachVelocity = PUtils.rollingAvg(enemyApproachVelocity, enemyVelocity * -Math.cos(e.getHeadingRadians() - enemyAbsoluteBearing), Math.min(scans, 5000));

And I decide it is a rammer if this average goas above 4.5.

Of course, Grub is right about it not being a problem one should generally bother with. For me it is that I am quite emotional about my robots and I hate seeing them get abused. =)

-- PEZ

I have viewed a few battles in the past and CC has a very elegant way of evading rambots. CC (and Ali) are the only bots that score 70+% against GrubbmThree, but now I know how to counteract! I will set the max velocity to 4 and start ramming then! ;-) -- GrubbmGait

Hehe, please do. =) -- PEZ

Won't work for me - I keep track of the ratio of ticks that you are heading right at me vs not right at me to detect a rammer ;) And I just fire power 3 if you are a rammer, and that's enough to get Dookious over 60%. -- Voidious

Ooooh, now I get it! =) I should just not comment on anything until I've eaten lunch... -- Voidious

My virtual guns array is really performing poorly. As I have not found any outright bugs in it yet, coupled with the observation that the loss of hit percentages by bullet flight time really hurt the bot, I suspect that my removal of all virtual waves is to blame. It really sped up Ugluk to no longer create and process them, but they provided stats by range to fall back on when the real bullets had not fired at that range yet. At present I am relying on a bearing offset gun to kill all my (unprofiled) enemies, so I'm not killing nearly as fast as I could be. I think I can re-introduce a different implementation of virtual bullets / waves that I can turn off after the first round, if not sooner. -- Martin

After several releases Ugluk is finally pushing his rating past 1750 again. I've added weapon selection to the tuning system, which means Ugluk will get gradually faster, processing only 3 targeting systems instead of 10. v0.9.0 saw the return of virtual bullets, redesigned and no longer using the wave system (which was overdesigned since they don't share waves). I also abandoned rolling averages in my virtual gun hit stats, though it seems like it makes sense. Then again if you want to ride a wave you have to be ahead of it, not chasing it. My approach to movement, using a variety of crappy systems rather than one good one, relies on three tuning systems; hard-coding (fixed), learning (between battles), and performance (mid battle). My guns have the same tuning methods, but movement performance has a more drammatic impact on rating than gun performance. -- Martin

I don't know if you noticed (now you do), but Ugluk has 4 more wins than GrubbmGrb in the PL. You are going in the right direction, but still have 50 points to catch up on. -- GrubbmGait
*I'm bumped down to only one spot above GrubbmGrb. I have managed to beat all of your bots again, which I hope you take more as a sign of respect than an insult. I've nearly got all of Loki's as well but Friga was only fought once and I only managed 47%. I've got another ace waiting up my sleeve for the next Ugluk, which may take me that much closer to 1800. I don't know if it will help me in the PL. For some reason I don't really pay much attention to the PL ranking, even though it appeals to my 'player vs. player' online gaming background. (In PvP? it's not about style, it's about who is left standing.)

I'm not sure rolling stats makes sense in targeting. It would only make sense against MultiMode and AdaptiveMovement like WaveSurfing. And that's quite few bots. And to actually make a difference you need really fast rolling stats. If you have VirtualGuns then it's better to have one gun just remembering the last sample and one that accumulates the stats without rolling. Aiming for the middle ground just lowers your performance in both ends I think. -- PEZ

I've been working on a bullet-avoiding-but-otherwise-random movement mechanism. It has gone through some evolutions, but still has some unfinished features and bugs to work out. I also maintain a list of people for which ramming (and firing) gets me a better relative score. It is not a dynamic decision. -- Martin

Fixed some long standing bugs with this cut. Also worked out some (but not all) kinks in my new bullet-avoiding-but-otherwise-random movement. I may do a release that uses the movement exclusively, along with my not-fully-segmented-because-I'm-still-working-on-collecting-the-necessary-data bearing offset gun. -- Martin

I managed to boost Ugluk's gun performance by a hair under 50% from a few versions ago. I don't know if it is the bug fixes or the most recent (unreleased) segmentation. Hopefully it is the segmentation .. because the bug fixes don't seem to help the roborumble rating much. -- Martin

Nice job on your gun work there - that is no small jump you made! Especially against the surfers. -- Voidious

Thanks. Turns out I also bumped up my wave surfing challenge scores, but only by a little over 25%. I'm expanding my debugging code to figgure out where the bugs are, though it could come down to a simple difference of targeting algorithms... -- Martin

I'm getting "file not found" for this version of Ugluk, and I think I may have for the last version, too... -- Voidious

Judging by my rating it looks like I broke something too. -- Martin

Well, it was finally time to revamp my physics engine, which I've done, and now I have 76 JUnit tests backing them up. Next I need to track down an error with my radar, so I'll probably reinforce those systems with JUnit tests as well. Eventually I'll get tests set up for each of the targeting methods so I'll have more confidence making changes in that area. The testing is a bit of overkill but I've fairly frustrated with the performance of my targeting methods and ensuring that they are behaving as intended. My attempts to emulate the Robocode client environment have not gotten me anywhere. -- Martin

Can you publish your unit tests? I am always planning to make a bed of unit tests for CassiusClay, but I never know how to go about it. If you can't publish it then maybe you could give your thoughts and advice on the matter on the UnitTesting page or some such. -- PEZ

I can't download Ugluk, what's happen? -- DemetriX

The main problem with learning about opponents through saving data is that the data is spread out among all of the machines running the robot. From time to time I run Ugluk from only one machine (in this case from work over the weekend) and this is why you can't get to the .jar file. It isn't really there. The .jar file is in my work machine's roborumble/robots directory though, so it doesn't need to look for it. The alternative is to make about 5 versions of Ugluk to collect the same data, creating a lot of unnecessary processing work for everyone running the rumble. -- Martin

Ugluk v0.10.1 features the return of the fully segmented bearing offset gun and some bug fixes. v0.10.2 rams some specific bots rather than being a good sport. So far the score difference is negligible. Yet, it's still worth it. =) -- Martin

A comparison between these two bots shows quite a lot of variance, even though the only difference is that there are maybe 9 opponents that .2 rams that .1 does not. Comparison link. Perhaps it is time to get RoboLeague working with file i/o so I can have a more controlled test bed, with a consistent number of battles fought per opponent, and always facing all opponents. I can appreciate the effory it took to create RoboLeague, yet it's a pain in the ass to set up battles, especially when my setup has it picking up teams and roborumble class files as potential bots. -- Martin

I rarely select the bots through RoboLeague itself - I manually create .xml files a lot with RoboLeague. For instance, I have "dooki086_mc2k6_base.xml", an MC2K6 template for my current dev version, and then I just make a copy of it and name it "dooki086_mc2k6_20060306_001.xml" to run a set of seasons with a certain build. And I do the same for whatever is my current testbed. I use RoboLeague a heck of a lot in my development, and my whole process would be a lot different without it! (It's pretty easy to edit the XML files, except that it's usually all on one line.) -- Voidious

Robo Home | Ugluk | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited January 11, 2008 19:14 EST by Martin Alan Pedersen (diff)