Botters of the Galaxy (CC02) - Feedback & Strategies

The topic where you can tell how you liked the challenge, & how you solved it.

Thanks again AntiSquid, Illedan & Wildum [Tests: csj & nmahoude] for this amazing contest. :heart_eyes:

3 Likes

I will be around the 100th rank in legend. I didn’t play a lot at this contest be i didn’t like it for multiple reasons.

My code is just a try of a semi-false engine with a bruteforce on 1 turn. With a lot of if statements to counter all the specific tactics i found against me …

I used Ironman + Dr Strange. Try to stay safe and farm a little. Harass opponent with PULL.
Use FIREBALL to pull bug groots on him. I still think this was a big bug but well i reached legend with it.

Good points:

  • Asymetric: Create an asymetric contest was a risk. And i like risks (Meanmax was in 1v1v1 and it was also a risk).
  • Many good ideas. The groots. The basic mechanics of the game (creeps, towers, the lane …).
  • For a referee that complex, the referee code (structure and way of doing things) is good. A little tip: many variables/methods does the opposite of the name used …

Bad points:

  • Oh god dudes … too much rules. Very too much rules. With the epic troll sentence at the end. As a example, when i shown the contest to a friend, he just said “wow too much rules i won’t do it”. And that’s it. End of the contest for him. He didn’t read the rules. Too much rules = less players.
  • The complexity of the referee. I can’t imagine how a referee like this would be a good idea. 180ko of java code. We have a limit of 100ko for our codes. I wish the limit was here for the referee too …
  • Too much asymetric. Asymetric was a good idea but at this point it was impossible to balance it
  • Balance update based on mid bronze AI … ouch
  • Double Hulk bug. Easy way to legend. Fixed too late :frowning:
  • No prize for the top 3. Call me an asshole if you want. But it is part of my motivation.
  • Many bugs. But with a referee that complex you can’t avoid it.
  • The “shi fu mi” aspect of the contest is too far high. For example, AtrA got a winrate of 94% against Saelyos (the winner) but 4% against reCurse (the 3rd player).
  • The random aspect of a game is too low i think. This is why an AI will tend to always win or lose against the same AI. Sometimes the items randomness will change the game issue. But it’s pretty often the same outcome.

As some other codingamers said on the chat, i agree that this contest will make a good multiplayer puzzle. But i don’t think this is a good 10 days contest.

20 Likes

Very interesting challenge. My first discovery of a MOBA game.
It was perhaps a bit difficult to start, especially to guess who does what, who damages who, probably because there is no collisions and units can be superimposed. But it must have been very hard to create, and the whole result is impressive.
So congratulations and thanks a lot to the creators! It is very interesting to have such a game among CG multis now!
Concerning strategy, 2 things helped me gain a few places, but many did much better (151th):

  • attack groots closer to enemy than to me with ironman’s fireball
  • rank possible attacks on the different enemies (according to damage, kill, safety distance…), which also avoids having a lot of ifs/then/else…
    Thanks againg to the creators and to CG (also for linking it to charity, very good idea), lot of fun, and looking forward to the next one!
5 Likes

Thanks to Antisquid, Illedan and Wildum for this contest. Nice job.

It was fun, and quite different from the past ones. Although it was very complex.
I would have liked to have a bit more intel to make a working simulation (the aggro target of the units would have helped).

But still, I had fun writing this jungle of IFs :smiley:

3 Likes

It used to be something like:
Any MOBA experience helps …

But then a change was demanded, i forgot who and why changed it. I even forgot if it was me. But i did initially write that moba experience helps.

Sorry about the hulk bug, it’s something we can’t update on our own.

I agree with you on the prizes. I believe we could have gotten more participants.

Will try to find a better explanation for the statement. But the exact attack order is given.

2 Likes

Good points Magus, and probably those lessons should be learned for the future. But all in all it was a very interesting challenge, getting to grips with the rules and ways to approach the challenge. What was lost in pure brute force logic was gained in creativity of strategies and in the contest being quite eventful and fun. I definitely think it’s nice to have such variety in games on CG.

Personally this was my second contest. After getting close in Mean Max, it was nice to reach legend here (#43 before recalc, #29 after) :slight_smile:

AntiSquid, Illedan and Wildum, thank you all so much for the hard work you put into this, before and during the contest!

8 Likes

BlitzProg, 126th, should be final (7th gold)

Well that was a really great contest. Fairly simple mechanics yet so difficult to master. Once again I am stuck in the top of the gold league, how frustrating! But I really liked the challenge.

The referee however was really annoying. I tried to find what I would need for a simulator but I have up quickly. I don’t know what improvement could be made but I wish the game mechanics in the code were as straightforward as previous referees.

  • Wood3 to Wood2
    Backbone of my strategy I used most of the time: shot the enemy closest to my tower from as far as I possibly can. This mean moving back before attacking when necessary, so I’m always out of range from whatever is coming to attack me.

  • Wood2 to Wood1
    Buy items that boost my attack damage value and maybe my HP value!

  • Wood1 to Bottom Gold
    Not crashing when given two hero. I picked Doctor Strange to go with Ironman. And that was enough to get that far, surprisingly!

  • Bottom Gold to Top Gold
    As far as it goes, my Ironman+Dr Strange wouldn’t hit the Gold boss at all, so I’ve been busy making something that would cause damage. I decided to replace Ironman with Hulk and put some work on a Pull-Bash-Charge combo.
    The idea is quite simple, figure a way to pull one of the opponent heros in front of your creeps, then bash him and charge him, forcing him to stay exposed up to 4 turns! Doctor strange is very vulnerable against this. 600-700hp of damage is common and depleting his whole hp bar in one combo isn’t that rare!
    I also try to recover from low hp after a rough battle by hiding and killing groots, and rush the remaining hero if he doesn’t have much HP left.

After a lot of tweaking and dirty code ironing during the week end, The boss wouldn’t even win 10% of the time against me. But a lot of other players performed much better than that and hidered my progress! So I couldn’t find my way into the legend league (Very much unlike the last contest where I was better than everyone in the league but the boss was walling me hard)

I have tried a turret rush strategy without much success. By observing replays from egaetan I quickly came up with something similar, but I couldn’t understand what made his strategy so good. It did destroy the gold boss everytime in the IDE, but in the arena, it wouldn’t do much better than middle gold (~100th gold)

Thanks for this contest, as always! I had great fun. See you next time :slight_smile:

8 Likes

Thank you AntiSquid, Illedan & Wildum for designing a MobA which is one of the hardest AI challenges in real world.

I just wish this contest was extended for like 20 days. Because most people in top were using only heuristics without much future prediction. A minimax/GA could easily beat the current legends in the long run.

Also requesting admins to immediately open the contest in multi to practice and not make us wait 2 freaking weeks which slows us down.

6 Likes

Thanks AntiSquid, Illedan and Wildum for the contest. This is my 2nd contest and I finished in 468 (and in gold, which is a minor improvement over my performance in Mean Max)
In general this contest had me learning a lot of things that I should not be doing for a primarily heuristics competition with no sim:

Language Choice:

I love rust, but it definitely wasn’t the right tool for this job for me, and I got a bunch of paper cuts because of it. I would have probably been better off with the other language I know well (c#)

Data Layout:

I stored all units in a different array (er actually vector) depending on their team and type. This was not a good idea, since most languages I know have easy ways of having a similar interface without all the hassle of splitting up everything and trying avoid spaghetti code because of it.

Planning:

This is something I really wish I did way more of, I could have caught both of those issues, and many more minor ones if I had just thought things out a little better.

Some things I think I did right:

Keeping it simple-ish (…or trying to?)

I remember bob’s post mortem from Fantasic Bits, and really took it to heart whenever I could, keeping that in mind I avoided some of the problems I could have had ended up with, like absolutely spaghetti code. However I still ended up with fairly unreadable code in the end (to the point where I’m actually tinkering with a local rewrite)

Priority bot:

My bot wasn’t really an if else bot as much as a “Try these things in this order picking the first one that works” bot. It really didn’t do that much “move if you get hit” → “heal” “buy/sell stuff” → “attack” (skills being in there somewhere)


In conclusion, that was my recap of this contest, once again thanks AntiSquid, Illedan and Wildum for making it. I enjoyed it despite the (sometimes) hair tearing complexity that I’m no good at, and I’m really looking forward to the next contest.

4 Likes

the explanation was good, still there was no CERTAIN way to know if a unit has been aggroed by whom (as we don’t know for sure what enemy did last turn). That made simulation really hard to do properly.

still this was a minor issue, great job overall!

3 Likes

Thx for the contest, was realy fun ^^

(Finished legend, we where 34-35 atm… improved my bot, but finishing 61 (before rerun) )

I started with DEADPOOL/STRANGE (wanted to use a “normal” config with 1 tank, 1 heal…) but switched deadpool for IRONMAN to enter legend… improved a lot my result immediately, just implementing the fireball… (near 5-10 mn) after passing 2-3 days to try to correctly use Wire of deadpool after a pull of strange…

Was near impossible to balance efficiently a game like that, but the result isn’t to bad ^^ some melee/melee, lots of distance/distance, but only few melee/dist…

the bigger problem i get (since gold): the 100k char limit…

few suggestion for the multi:

  • Random hero on legend (same for both players)
  • use the contest to polish balance…
  • maybe 1 more distance hero? (just to have the choice when you play distance…) a “real” healer? (no pull ^^ , less health…more speed?)

Thx again, was realy fun, you made a realy good job ^^ (some ppl will talk about the 2-3 things that wasn’t perfect, forgetting the good work on the rest… like always ^^)

Already waiting for the multi to “finish” my bot, and try to make DEADPOOL/STRANGE efficient :slight_smile:

5 Likes

Would love to add more heroes, not sure it’s possible though. Don’t think we would add another healer.

From the get go our motto was basically: They need to die!

Which is why we don’t have health regeneration.

2 Likes

Well the “goal” according to the rules was to destroy the tower. Took a while for me to figure out that that will rarely ever happen in any battle…

4 Likes

Thanks to the contributors for this one, by far one of my favorites. I like contests who combine heuristic and math and that was pretty much what this one was. This is still stabilizing, I’ll prob end up somewhere between 90th and 100th in legend. I wish I had more time, I only started tuesday, sadly one of the contest that I could have done well :stuck_out_tongue:

I did the classic ironman + doc strange combo, mostly because they were both ranged and I knew I could do some decent kitting code, like I said, I wish I had more time to maybe explore other heroes, I have no idea what are the other heroes abilities… (well I took Valkiry to beat wood 3…)

My bot was mostly about killing the opponent but A LOT of it was about analyzing what the opponent was doing and doing counter tactics. It was a lot of work, but I tought it was pretty satisfying when I found a way to deal with the 2 melee (2 hulks ???) tactic, I wish they didnt fix it hahaha.

The only thing I didnt like, but maybe its just my bot, the deny mechanic was ok, but I felt like the deny should not have counted in the tie breaker, it made passive bots really good and kind of boring in my opinion, also the tower had way too much HP, I think I saw only one game where I killed the tower because the enemy was too passive. But again, passive bots were pretty much my counter, so maybe it’s just me.

Again, thanks for the contest, it was really fun !

5 Likes

First, thanks for AntiSquid, Illedan & Wildum for this hard and funny challenge.

Second, when do you think this challenge will be available as a game/puzzle? I wanted to use it as final project in my course of computer science in french CPGE, but didnt think that it will be unavailable at the end of the challenge!

(and then i will upload my best code, in place of the test code i gave which has rank 350 in gold league at the end of the contest :/)

3 Likes

Probably in one or two weeks. It depends on when CG staff want it released.

Glad it helped you out. :smiley:

1 Like

So it’s ok: the end of the year is end of June:)

1 Like

Contest had too much rules that weren’t introduced incrementally. That’s the main reason why I haven’t written any code after very simple ifs that have gotten me to Bronze.

6 Likes

Stuck in Wood 2.
I really wanted to build a simulator + score maximizer bot in F#. I was not able to simulate Wood 2 conditions without timeouts. I think the main source of complexity is the creeps’ behaviour. A creep changes its mind whenever its target changes its speed. I would be interested in how long the referee can compute a turn in the arena. Maybe more than 100 ms.
This journey taught me a lot on porting from Java to functional programming. I really appreciated this contest, even if I didn’t make it to even Bronze.
And I appreciated the opportunity to fund education.
Thanks to all.

3 Likes