Code Royale (CC03) - Feedback & Strategies

Hey (Wow, posting just after the winner :heart_eyes:)
25th Legend

I’ve started full heuristics.
I thought I wouldn’t have enough time with my current personal schedule to go deep in this contest. (aka sim)
Looks like CG contests are actually hard not to focus on while started oO

Went gold with some basic strategy:

  • If there are units close, go to the opposite direction of the closest one. (which is definitely not working well: Lot of time I was just blocked by a site behind me, or by the borders of the map)
  • If I’m at a site, choose what to build. (bunch of if else)
  • Otherwise try to find a close site with no structure or a tower to grow.
  • Doing knights as soon as I can (if I have 2 rax, wait to train in both at the same time)

Legend / Simulation
Then I noticed the top bots were siming, making some really cool moves :slight_smile:
So I jumped in. I have some bugs in my sim I didn’t have the time to fix (or maybe I had and I should have, but thought "let’s focus on macro strategy instead), which made the very end of the contest problematic for me (had to do some approximations)
I saw in several games opponents using the tactic of going to the center to build one rax, I used it to have a simple strategy to test my sim/avoidance.

This strategy + the sim made me go into legend right away.
After that, I just made my code more complex to handle some differents cases (I’m not sure if those modifications were all the time for the best though, but I might pop giants sometimes … definitely worth it!)

My simulation is using MC/depth 6, I’m doing it only for creeps not too far from my queen, with fitness using :

  • My queen health
  • total enemy creep hp (so they go under my towers… right?)
  • my mines destroyed during the process
  • Is my queen in range of my towers.

When I look at my final submission, I feel there are (at least) 2 huge issues I’ve left:

  • I hesitate a lot when units are close. Where I could just DO stuff, like growing tower with safety. This is because I go into the PANIC ESCAPE MODE where I just try moves and not build anything.
  • I don’t make enough mines when I’m ahead, which leads me to lose some games I’ve started well.

I feel with a perfect sim, I could have done way better (since I currently don’t fully rely on it because of bugs). But it’s hard during a 10 days contest. I might come back for the multi :slight_smile:

The contest:

Positive:

  • I really liked this contest : a perfect mix between sim and heuristics (and being able to reach top 15 legend without sim is a good thing IMO)
  • I’ve had 2 friends trying it (first CG contest for both of them), and they had fun. (They both ended up in the silver division)
  • Not too many inputs, I really like this. No aggro to keep track of or other weird stuff.
  • Perfect balance in game complexity for my taste.
  • Clear visuals
  • Kotlin referee. I actually think it’s fun to discover new language this way :thinking:

Negative:

  • Archers behavior seemed the most complex, but they weren’t useful
  • Being 25th doesn’t deserve a t-shirt

Thanks to the creators of this really fun game, CG obviously and reCurse for not participating and letting me the #1 canada spot for the second time :smiley:

ps (unrelated to the contest) : Being a C# programmer training my C++ here, I’m still sad not having Linq to quickly write and test heuristics. I’m wondering how I could quickly write readable code like in c++:
var jungleMobs = Units.Values.Where(p => p.UnitType == eUnitType.Jungle && p.DistanceFrom(Enemy.Tower) >Enemy.Tower.Range +50).OrderBy(p => p.DistanceFrom(Me.Tower)).Take(2)
If someone has advice for me, go ahead thanks! :wink:

10 Likes