Just posting some very close matches between top algos to hype you nice people about the CodeBullet Challenge
KauffK(Voice_of_Cthaeh) vs Aeldrexan(Aelgoo41a): https://terminal.c1games.com/watch/555123
KauffK(Truth_of_Cthaeh) vs Aeldrexan(Aelgoo41a): https://terminal.c1games.com/watch/581043
kkroep(gamma_14) vs FelixRichter(Felix_0.9.1.2): https://terminal.c1games.com/watch/571202
Aeldrexan(Aelgoo_43) vs Destrolas(omawawawashindeiru): https://terminal.c1games.com/watch/578259
Feel free to add more!
Those adaptive algos sure are making me nervous! I keep trying to crack into an action-phase simulator fast enough to use for searching a solution space, but so far my paths are inaccurate or too slow. I’ll get it one day!
I’m think you’ve got a little bit of time, but not much :). I have been working with adaptive algos for a while now (since the start) and I’ve gone through many many designs. It is quite difficult to get it to adapt to ALL the solutions. I found I easily could get it adaptive to counter strategies, but it is difficult to get it to cover the total solution space. Of course, I have been trying to make it design and pursue a defense completely from scratch, so pseudo-adaptive algos are probably much closer or already out. Hopefully soon :).
Yeah I think there is a large amount of success to be had with pseudo-adaptive algos. After my attempts at building a base from scratch produced nonsense I just hard-coded several bases and had the algo choose from a menu of specific ways to modify them. With a sufficiently correct decision-making process and a good enough menu, these algos can do quite well against a large variety of opponents.
But I’m still grumpy that I can’t build bases from scratch yet
No matter what flavor of “main” strategy wins tomorrow’s competition, I guarantee it will also include being pseduo-adaptive. There’s no way you’ll make it through a single-elim bracket without having some way to respond to the type of threats the enemy player is employing.
And I think a base built from scratch becomes “easy” once you know what kind of base your opponent is building. Unfortunately even waiting the first turn to see where they spend their initial 25 cores isn’t enough to know what their base at 40+ cores will look like. So there’s the trouble of needing to do something while you try to figure out what they are doing or else you’ll fall so far behind there’s no way to catch up. Not to mention that building the “right” base when you have enough information means saving enough cores to afford it.
Yes, falling behind is something my (fully) adaptive algos always struggle with. This is particuarly noticeable with opponents that have large numbers of pings, since they do lots of damage before by algo has time to set up. Also, I disagree with your statement that building from scratch becomes “easy” . There are lots and lots of things to consider, like are you blocking your own attack strategy? Do I build horizontally, vertically or diagonally? What do I use to build, in what order of precedence? This is just the beginning of things I have come across. This is using an approach using zero assumptions. Meaning, I have absolutely nothing saying “this is a good base for this type of attack I’m receiving”. Instead, it has building blocks of pieces and merely says, “is this the right piece for this place?”. Using this approach, it gets quite difficult to decide what goes where when taking into account all of the above questions I mentions (and as I said, that is just the start). It’s quite fun to think about though :).
And all of this doesn’t even include the main challenge you talk about, the falling behind.
Fair point on the word “easy”
My first fully adaptive algo just built defenses around breach points. Obviously that’s only successful to a point. And it had a tendency to forget to leave attack paths open in it’s eagerness to defend!
My second fully adaptive algo kept track of where the enemy spawned IU’s from and the path such units were expected to take and built defenses there. This one had much more success (settled down around ~1725 elo) but struggled when an opponent would build new stationary units that had large impacts on IU pathing.
Also, EMPs are hard to deal with even when you know that path they’ll take.
For the CB competition, I abandoned my hopes at a full adaptive algo and have become pretty satisfied with my pseudo-adaptive one. Post competition I’d love to do a deep dive about what adaptive choices to make.
I have an appreciation for the Machine Learning mindset of zero assumptions, but I think that’s discounting valuable knowledge that we can infuse in our algos.
Yeah, I have come to similar conclusions regarding the advantages of “instilling knowledge”.
Wow its an honor to be called a “top algo.” Don’t know if I deserve it. That algo was just me trying to understand what I saw in @KauffK’s matches on one of the leaderboard threads so it’s really just a testament to his algo.
I remember watching that game and being more and more amazed as time went on that I had won it. I definitely got a bit lucky
I’ve been experimenting with a few adaptive techniques for my algos, mainly for unit deployment. However, I’m still very surprised that one of my earlier algos (Cubed-9) is still up at the top of the leaderboard, as it only uses a very basic adaptive technique (if enemy deploys on left side, block off this area, if enemy deploys on right side, block off other area). I don’t know if it just got an early head-start, but it seems to be outscoring some of my more advanced adaptive algos. Goes to show you don’t need a ultra complex algo to do well.
I think, until they fix the matchmaking next week, those old algos at the top will stick around because climbing the leaderboard is slow going these days. That glitch that dumped a ton of algos in the low hundreds and gives us all a bunch of zero-gain elo matches makes the leaderboard temporarily less useful as an evaluation tool. For one thing, I’m 100% certain that Truth_of_Cthaeh is not the best algo. My new ones are better, and some other people’s recent algos appear to be better as well. Hopefully we will see freshly made and high-performing adaptive algos being rewarded in the next few weeks as they improve the leaderboard.
As for the competition, well, anything goes!
I’m sure all the top algo players can relate when I say that, no matter how well performing our latest-and-greatest’s are, there’s always that one algo that it inexplicably loses to due to some unexpected alignment of the walls and units. The quest for the perfect algo continues, but so far all my best adaptives and psudo-adaptives have their silver bullets out there lurking on the leaderboard. Hopefully none of us encounter ours in the single-elim brackets! I’d love to make the final matches and run into some of you there.