Bot programming challenges get polished

STAY CONNECTED, FOLLOW CODINGAME NOW


The subject has been on everyone’s lips lately: a new league system is coming. Players of the Smash the Code contest have already experienced it, but some questions remain. We thought we’d give you some more details about it to help you become a Legend!


Aiming for the fun

The tech team has been working on this project for more than a month now. After the last contest (Coders strike back) we all agreed we could make the bot programming contests even more fun than they were already. The main idea was to provide you with intermediate objectives and a progressive difficulty. With this new system, players gradually discover more rules and challenges as they progress in the game.
leagues.PNG


Who wants to be a legend?

We’ve thus introduced 4 leagues: Bronze, Silver, Gold and Legend. Every player starts in Bronze and can be promoted to the upper leagues. Every league has an AI Boss: you beat it, you get promoted. Rank system is still the same though: so to beat the boss, you actually need to have a better score. Calculation of your score remains roughly the same than before (still based on TrueSkill system), except that this time your battles are against players from your league.
Once all your battles have been computed, if your score is better than the Boss, you’ll be quickly promoted to the next league and you will be able to discover its new challenges. Good to know: you cannot be demoted from a league!



Game evolution

The game rules can be different depending on the league you’re in. The idea behind this is to offer a progression in the difficulty of the game. The rules don’t always change though, because it remains difficult for us to change the rules without changing the input or output needed, and you don’t want your code to be erased when being promoted...



Smash the Boss

In the current contest Smash the Code, there are three Bosses: “Boss” in Bronze league, “Negaboss” in Silver league and “Robossnik” in Gold league. To add a bit more challenge and excitement for the best players we’ve finally opened the Legend league! Are you ready to beat Robossnik and become a Legend?



Where are the jedis?

As you might have noticed, the previous contest Coders strike back is not available in the bot programming page: we’re working on it to add the League system to it and a few other surprises as well. The idea is to improve the progression in the difficulty of the game by providing more levels and changes of rules! Any feedback you may have on Smash the Code will be useful to improve the League system. So don’t hesitate to tell us what you think!


26 comments :

  1. I think that over 100 participants is too much to be called "a legend". This makes title "author of AI in Legend League" much less valuable.

    ReplyDelete
    Replies
    1. You should leave some bones for us poor people you know :(

      Delete
    2. Still quite an achievement to get up there, isn't it? What about another intermediate level between Gold and Legend like Diamond?

      Delete
    3. A legend league with 50 people max at the end would be great.

      Delete
  2. Rules from upper leagues should be accessible (maybe following a link?) also to people in the lower ones: this way, one can code with all the rules in mind if he wants to. To write code that is reusable also on upper leagues...

    ReplyDelete
    Replies
    1. I think this is the whole point (besides better performance) of leagues - split a huge task into several digestible stages, give you exactly what you need, no more, to solve current part of the problem, so you can focus on it.

      Delete
    2. I totally agree with guiliocatte. We should be allowed to take a look a the upper leagues rules, so that we can take it into accound if we want....

      Delete
    3. Next vote for what giuliocatte have said.
      To be able to organize your code and have a true perspective of possible algorithm, you definitely should know (at least have a possibility to learn) what the final rules are.

      Delete
    4. Agree with giuliocatte. In order to make good design decisions, one has to know the end requirements, and that includes the rules for the higher leagues.

      Delete
    5. I think the missing information makes the contest more realistic. It is rare to actually know the final requirements for any project up front. A good design will be adaptable to unplanned changes in the rules.

      Delete
    6. Fully agreed and supported.
      While you may not need to code for all the rules, you can avoid making assumptions that don't hold true in the next league, which might lead to a need to rewrite most of the code.

      A good design is adaptable to SOME unplanned changes. To expect a design do be adaptable to anything is an antipattern...

      Delete
    7. Expecting for design to be adoptable for anything is not something we should encourage.

      Badly collected/defined requirements are the main reason projects fail. I have enough of that on my daily job. I don't need a simulation of incompetent product owner in my hobby as well.

      Delete
    8. thanks all for your feedbacks, it helps us a lot!

      We agree that the design should not be adaptable for any change that could arise. And that was not the idea behind the change of rules. We really wanted to add some fun and excitement as rules changes and overall game gets tougher.

      We will take into account all of your feedbacks for the next game to be adapted with leagues.

      Delete
    9. It was exciting for me to discover new things in higher leagues, indeed, which gave me extra motivation to try to get further promotions. It would be nice if every promotion brought something new! It works well in any game-ish experience.

      Delete
  3. I was ranking better in Bronze than I am now that I'm in Silver, and the code from bronze will be totally scrapped because it's worthless now.

    ReplyDelete
    Replies
    1. The 100th player in Silver has a better global rank than the 1st player in Bronze. But agreed the code from Bronze won't be much useful in Silver. We'll take this into account for the next games!

      Delete
  4. One way I can think of to modify input as players get promoted to higher leagues is request them to read some extra lines which are all, say, zeroes in lower leagues. Then, in higher leagues, actual data get sent instead of zeroes.

    ReplyDelete
    Replies
    1. I really like these leagues! And @Alexander, +1 for your idea.

      Delete
    2. this could do the trick indeed, even if it would show quite a complex set of inputs for what seemed like simple rules. So it could be misleading and confusing, we'll test it.

      Delete
  5. I just went Gold, and I don't see any change in the rules, did I miss something ?

    ReplyDelete
    Replies
    1. There's only a rule change between bronze and silver.

      Delete
    2. the rules can differ but not always :), no rule change from Silver to Gold indeed for Smash the Code.

      Delete
  6. Thank you for making codingame, it is a fantastic site!
    A suggestion:
    All the rules should be available up front, there is no need to hide them. A lot of times code will need to be re-written because too little forethought was given to the final needed algorithm. Why the resistance to publish all the rules (maybe through some link) for everyone from the start? IMO it is a bit demotivating to know that I might be surprised by some rule change when I move up. And unless we had asked how would we have known that there are only rule changes between bronze and silver. That also should be exposed.

    ReplyDelete
    Replies
    1. Thank you for your feedback, it's really appreciated!

      We've noted indeed that coders don't like surprises :D . The idea behind was to offer new challenges once first simple tests have been passed, but indeed we don't want players to rewrite completely their code for each league. We'll make it better!

      Delete
    2. I don't know. Personally I usually re-write a lot of my code during such long contests anyway. Being ready to scrap your current solution, instead of getting stuck to it, and try something new and probably more effective makes you a better programmer, I think.

      Delete
  7. Come on people, stop complaining and take a challenge! It was great fun to discover new rules and try to adapt to them. I must say, I was a bit disappointed to discover there are no new rules for gold (perhaps the incoming future blocks could be revealed only in gold).

    Also, mind you that all bronze level programs were able to play in silver with 0 changes. So really there was no need to throw away code, just adjust it. And if you think it's waste of time, use high level language to get through the first league and optimise later, when rules are complex enough so that it's needed.

    Please don't listen to the grumpy crowd and keep increasing the problem complexity between the leagues. It's great motivation factor, lowers the entry barrier and makes it more like a marathon than a sprint.

    ReplyDelete