Code Royale (CC03) - Feedback & Strategies

This was my first contest here and I brought along some friends as well. Some of us went into the upper gold range, most stayed below that. A lot has been said about the different solutions applied, so I’ll focus instead on the problem itself, which was a bit of a disappointment for the reasons below.

Complexity vs Complication

My most pressing issue with the RTS theme is that a complex problem makes a fun and challenging contest environment, not a complicated problem. This contest is very complicated (lots of unit types, lots of building types, lots of trigs and involved simulations) - so complicated in fact that all of us did not spend any time on finding interesting algorithmic solutions. It was a constant battle against yet another special case strategy, fixing minor boring bugs (oh, sites cannot produce infinite gold - complication yet again, not complexity) and tweaking or adapting to your enemies.

You could also consider this from a heuristic-favoring point of view, but as many legend players already commented, a detailed simulation is what many of them had to resort to - neither fun, nor creative.

PS: If you don’t fully understand the difference between complex and complicated, take a look at the game of Go. It’s the prime example of a game with very simple rules (learn the rules in <5min) that lead to massive complexity (spend your lifetime on it and some computer will eventually show you that you haven’t really grasped anything yet).

League system

I very much disliked the leagues in this contest. I tried other multiplayer games before (Tron and CSB in particular), which did this much better.

In particular, we found the initial claim that you could get started quickly to not be true at all. The first submission took some of us an hour or longer. There was a huge wall of text for the problem, then over a dozen variables needs to be understood, you need to prepare a lot of code for a simple strategy like walking to the next site and build a barracks there. Our newcomers and those who were not regular coders did not have much fun there.

The other leagues all just extended how complicated the game is. You can build archers for defense - let’s make it more complicated and have towers as another option for defense and let’s just design archers in a way that makes you waste time when you look into them. You used to get a steady gold income - let’s make it more complicated and replace that with gold mines. It’s the same game mechanic complexity-wise in that you have a resource that somehow replenishes. The first version was simple to understand and elegant, the gold mines in contrast were merely a complication. (max mine levels and max mineable gold just added insult to injury there)

I’m not entirely sure what the leagues are supposed to be. In CSB they served very nicely as a learning curve and made the whole game more approachable for people who are not “in it to win it”. In Tron, only the first few served this purpose, before the leagues became just an arbitrary splitting of the players based on their strength. This contest was different yet again, in that the leagues were mostly a source of frustration, because yet another complication was introduced.

TL;DR

I’m looking forward to other contests, which have an elegant, simple ruleset leading to complex and interesting problems and are more approachable. Unfortunately, this contest was neither - it was just complicated with little complexity and very unfriendly to beginners.

5 Likes

I enjoy coding. The rust stuff was started at the straight end of the contest; it was intended to be my post-contest code

You should have seen BotG, the previous CC. This one was way more easier to handle :smiley:

But overall I could not agree more :

I know designing a contest is not easy, but the simplicity really should be one of the main priority, every time. One could easily lack objectivity regarding a multiplayer’s complexity while working for several weeks/months on crafting it; remember that most of the contestants won’t spend a lot of time on it.

In the past contests, CG would often reuse a board-game concept, and they did this for a very good reason; designing a game that is both simple and deep enough requires lots of time. Their approach seems to be the best compromise to achieve such a thing.

3 Likes

Disagree with the claim regarding the complexity. This was way harder. Especially because of the funny queen avoidance and pathing you had to write yourself.

Default AI pathing being so bad strongly favors simulation over heuristics and the game was asymmetrical too. Queen was getting stuck / slowed down because of the collisions, a good reason you needed a sim.

Also the fact that It doesn’t mimic any game out there, means you can’t practice by playing it to better understand it, its mechanics and find out best tactics.

Towers degrade over time, you need to maintain them constantly.
There’s occasional zerg swarms you need to predict and prepare for.
Buildings had 0 cost and no limit, which is what led to tower rushing.
( + mine upgrades

  • 3 different types of barracks
  • complicated damage calculations for towers
  • random queen starting health)

You can argue you control only one unit (the queen), but indirectly you account for all the buildings you control and training units at the right time which is exactly what further increased complexity.

Just listing the things that made it feel extremely difficult to play.


QED :joy:

1 Like

If you want to compare the two, you don’t need a sim for Botg, you do need a sim for CR. Things do get harder if you need to add a sim. Unrefuted fact.

I did list very good reasons why this challenge was very hard.

And i do insist things would be easier if you had a chance to play the game yourself, without a bot, as it helps you gain a deeper understanding of the mechanics.

It would still look easier to me if i first played BotG during contest as i did play MOBA games before.

Define “you don’t need a sim” and “you do need a sim”.

Do you need a simulation to reach the first place ? Yes for every single contest of codingame.
Do you need a research algorithm to reach the first place ? Yes for almost every single contest of codingame.

Do you need a simulation to reach legend ? No for almost every single contest of codingame
Do you need a research algorithm to reach legend ? No for almost every single contest of codingame.

So when you say “you need a simulation”, what is the goal ? You can reach legend on CR and Botg without any simulation.

Next step : define “simulation”. The only complete simulation on CR was the one of Robostac. It was impossible to have a complete simulation on Botg so well …

Needing a sim or not has nothing to do with the complexity of the game.
CSB is one of the simplest multi games, and yet you need a simulation to perform.

My definition of simplicity is the quantity of mechanics that describes the game, (i.e. how much time do I need to read the rules and fully understand the whole game). In that regard, BotG was much harder than CR.

Look at CSB again, the rules are very simple, you can understand the whole thing in a few minutes. Sure you’ll need some further details about the engine to simulate, but that’s not part of the game rules per se.

What do you mean by “research algorithm”?

Bad english. The real term is search algorithm.

Any algorithm performing a search in the future tree using the simulation. Bruteforce, minmax, genetic algorithm, monte carlo, …

Oh okay, thanks

Well there are tons of elements in BotG but you don’t need to take them all into account. At least you didn’t have to during the contest, i didn’t play melee heroes afterwards.

Basically the game was and still is for the most part a back and fort; know when to move forward and attack, know when to move backwards. Done. - a lot of people went for simple heuristic bots btw, so clearly: NO, you didn’t need a sim. Not to mention the melee bots that went full yolo for easy wins.

In CR you did have to take all elements or at least most of them into account. And it doesn’t matter which game had more variables, what matters is how many you have to take into account to push forward. Without a sim you write foot long if conditions. A simulation takes that burden away.

Do i upgrade a tower when i have only 3 towers? Do i add a 3rd tower early on or try to escape? Do i build a barracks on top of the tower because there’s lots of gold underneath it? Perhaps i can do that after the next wave? How do i ensure my queen doesn’t get slowed down by my own knights, how do i make sure she doesn’t get surrounded and die, how do i … - i did spend a lot of time on CR too; i spent about as much time with trying to improve CR as i spent with trying to improve BotG btw. I did warn about the difficulties, but maybe it is indeed just a matter of opinion in both cases.

There’s an awful lot more different aspects and variables to take into consideration. When this is the case a sim makes life much easier, so that’s when you need it.

You DO need a sim in an asymmetric game, always, because otherwise you would have to account for two different types of starting positions. A sim takes care of that for you.

The asymmetry wasn’t even obvious to most. There were two types. Half way in people were still stumbling on this revelation. So understanding all the rules wasn’t that simple.

Memorizing strats instead of generalizing is also a solution and sure some people went for the cheese or an accidental good strat, but these strats were also harder to write up and manage in CR.

I already pointed out the rest of the difficult aspects of the game. Not going to relist every single one of them. But those points do stand, they were not refuted and they are what made the game hard. Pathing and collisions required a sim, queen gets stuck, queen gets slowed down. Oops i did repeat myself.

Also I didn’t see anyone here brag they reached top 5 with heuristics alone. I didn’t see anyone complain it was too easy to get into top 20. And even that alone makes a difference.

To be fair, the best measure would be to take into account what a heuristic for BotG and for CR would look like in comparison to a sim for BotG and CR. You compare all 4 bots and i am sure then it’s pretty clear where the biggest difficulties lie.

P.S: Even getting gold was harder in CR, check some player contest ranks for both games.

Oh and CR creators had a smart trick i wish we also used: - hide the expert rules until bronze! That was actually a genius decision.
Meanwhile we briefly took this same idea into consideration before BotG launch and then dismissed it as a stupid idea.

This is so eloquently put, I could not agree more with this. Personally, this very issue burned me out towards the end of BotG (where I had very similar feedback to yours) and made me completely skip the CR contest within the first hour, as soon as I saw the complete rules and referee code. I will also skip Kutulu if it’s in the same vein. The CR game concept is not even bad overall, don’t get me wrong, but it’s just buried deep within so many unnecessary layers of complications. For example, I am convinced this game absolutely did not need CSB-ish physics to work well, and the same goes for a good number of its mechanics, and it would have been overall better for it.

If you want another example of overcomplicated design pushed at its most extreme, and ultimately working against itself, look no further than Battlecode 2018.

I understand the huge amount of work and love needed to create a CC, and I truly appreciate the time the creators put into it, but ideally it should not come at the expense of a digestible design for everyone else. It seems maybe motivated by the fear of not doing enough for capturing the interest of players or maintain longevity, but so far it seems to achieve the opposite.

I believe a game design interesting for players is not always one interesting for AI. For instance, a strategy game with a huge amount of options is great for human players, but not so much for AI bots, even less in a 10 days time frame, and even less so when the game design balance is not relatively proven to be stable.

My 2 cents.

11 Likes

What is frustrating is how many videos there are covering the basics of programing, and people like you talking about these advanced techniques, but very little in explanation in between.

1 Like

How can we Identify what is our nearest site because everytime site id is changed.
So is there any formula to get nearest site.

Legend with evaluation functions.
No simulations, no move command.

I evaluate actions: build tower, upgrade tower, build mine, build barracks
Functions coefficients set “by hand” and some factors I consider: tower amount, mine amount, queen distance to a site, enemy distance to a site, enemy units, queen hp, tower hp, how safe I am.

1 Like