Kauffk's Final Game

Kauffk's Final Game


Thanks for the compliment!

Actually I already tried a similar strategy with the Terminal series. I designed that strategy on paper, and then implemented a barebones version of it. I put it on the ladder and it shoot up to no.1 spot in one day. I then copied the links to all replays and removed it again. That gave enough resources to develop demux. C1Ryan contacted me for the highlight video, and I shared with him the replays of the algo I removed showing a strategy that was not on the ladder yet. This was what C1Ryan was referring to on the stream and why he was confident that I came up with it.

So I am guessing this strategy would be effective in the future too… but I would rather it not be that effective/necesarry, and detrimental to the community. I much prefer open discussions on the forum about strategies (very much like this one actually), and sharing ideas, instead of actively hiding them. For me that is half of the fun.


it’s a bit funny how my 1700 elo algo beat kauffk algo: https://terminal.c1games.com/watch/1863571
and i guess a big part of kauffk success is lack of randomness in most of the games, and maybe this is a big downside for his strategy. my algo is just a bit random (only if there are two paths with equal number of units scoring, the path chosen is random) but due to the butterfly effect, it doesn’t take much of a change to make big differences in the long term and change the course of games.


Great example of the problems with this technique. Judging from the looks of things, my analyzer went with something resembling the track series for this match, but between you having multiple programs that look the same on turn 0 and your random attack paths, clearly something went wrong.
I considered adding a mechanism to detect when games go off-script and switching to a recently built dynamic defense, but I ran out of time and it never worked quite the way I wanted. Fixing my dynamic mode is one of my first agenda items on season two :slight_smile:


Ohh, so this explains your computation time in this match:

I was kind of confused when I saw my algo lose to yours, since usually I won against voice_of_cthae.

Very interesting, I actually used to use something like this back with my old algo (mode_switch), mine was way worse though.


I think this is a little more widespread as a strategy than thought, and that’s something I’m not as ok with.

I remember an issue when we developed this (for the purpose of replaying matches against ourselves and getting debug messages from our algo). When a parsed game like that ends, there aren’t any more turns to play, so your algo crashes. To fix this, when games go “off script,” we made the last turn repeat itself if the game hasn’t ended. That way, the algo doesn’t crash and get removed if we decide to upload it to get the debug messages vs ourself.

So did You’re_Allowed_A_Wand in their round robin match against Demux. It looks like the last round of that match is round 22, as they repeat the same turn until they lose, having gone off script. Looking at their computation times, it’s a very similar system. I’d love to hear from @16daystocode on their system for this.

UPDATE: All of You’re_Allowed’s matches did this. Looking at one of their previous version’s matches, I am unable to find a single instance of them using their own algo. I’m not sure they have one.

On a separate note, turns out, my match against Kauffk faced a replay of KKroep’s algorithm as well. It looks like the same series of KKroep’s algos that You’re_Allowed selected, though I can’t place that as a Transistor or Demux. I figured I’d introduce my thoughts on “countering” this cheese strategy, as it seems my algo took it off script almost immediately, and I think I know why. Hopefully this helps people focused on pioneering the designs of algos, like mazes and transistors, and makes them less susceptible to copy-cats and parsed replays of defeats.

Firstly, I selected a different algo than what was on the leaderboards. This isn’t incredibly useful in countering this strategy, but it is worth noting simply having a new version can send these games “off script” and tilt the game in your favor.

Second, my algo does care about what the enemy placed turn 0. Skipping a turn and “catching up” on placements by round 1 will alter the behavior of my algo. I would recommend doing something with turn 0 enemy placements (or the lack thereof) if you want to ensure your algo takes things “off script” at minimal disruption to you.

Third, a little bit of RNG may help. I haven’t incorporated this yet, but I really liked @codegame 's idea of using RNG when two equally good attacks could be selected.


We will share our experience shortly.