Building a self-explanatory product is hard. While reading your answers to the last survey I sent, I realized that some parts of CodinGame remain a mystery for some of you. It’s a shame because there are many hidden treasures and secrets to uncover.
Today, I’m trying to undo the wrongs and explain to you the stories behind a few little-known features of the platform. Let’s see how well you know it.
I’ll test you on different categories. I also added a [difficulty] tag for each tip.
Out of Your League
Since they were added to the platform in 2016, the multiplayer leagues have puzzled (pun intended) more than one CodinGamer.
1/ [easy] You beat the boss by having a higher score than the boss at the end of the computation of your games.
Winning all your matches against the boss of a league doesn’t necessarily mean you’ll get promoted to the upper league — even if this is a good sign. If you end up just below the boss after a “submit,” I suggest you wait for others to push you up (they might lose against you and win against the boss).
2/ [medium] During a challenge, rule changes happen until you reach the Bronze league.
There are only 2 exceptions to this rule: Code4Life and Botters of the Galaxy. We actually didn’t change the rules after Bronze; we applied balance updates instead. So, why don’t we reserve the introduction of complex new rules for high leagues like Gold and Legend? Because we don’t want to put the early birds –players who only code at the beginning of a challenge– at a disadvantage.
All rules are revealed at the beginning of a challenge, since we open all the leagues until the Bronze one. That way, a player can, theoretically, reach the Legend league at the end of a challenge with a code created in the first few hours, when this league was not even available. In practice, however, this doesn’t happen often.
3/ [medium] Bronze, Silver and Gold bosses are players’ AIs.
To set up a boss in a league, we select an AI around a certain rank based on how many players we want to promote in the higher league. The AI should not include any random data, nor print any message in the viewer. We also check that the code does not use the full time allowed for computations, as we want matches against the boss to be really quick (the boss of a league is the default opponent in the IDE).
There is no way to know that your AI has been selected to be the boss of the league other than recognizing its behavior.
Know Your Environment
Concerning our IDE, there is certainly room for improvement. But do you know all the treasures it includes?
4/ [easy] In the code editor, you can press Ctrl+Space to trigger the autocomplete feature.
We didn’t develop this IDE from scratch. We’re using the IDE from ACE. Here’s a list of all the shortcuts you can use in the IDE. We’re currently working on improving this autocomplete feature.
5/ [medium] In multiplayer games, you can delete the default agent against which your AI plays, and select another one.
It probably doesn’t sound that incredible for regular users, but I can tell you that when I discovered that feature, it blew my mind. You can also play your code in the IDE against your code in the arena (i.e., the last code you submitted). You can also play a match between two other users. It’s also useful to force your code to play as the second player.
6/ [medium] In IN/OUT puzzles (those without a game loop), you can check out inputs and outputs of all test cases.
A small button, but incredibly useful. Most of the time, it helps me understand more completely what I’m supposed to do in the puzzle.
7/ [medium] You can disable the chat in the IDE.
By specifying “?disableChat=true” to the end of the URL when you’re in the IDE, you’ll disable the chat. It’s useful to gain a bit more space to code, especially when you’re streaming and showing your code on screen.
8/ [hard] In practice puzzles and Clash of Code puzzles, the shortcut Ctrl+Enter will play your code.
To play all test cases, you can use Ctrl+Shift+Enter. It could help you save a few seconds in Clash of Code puzzles.
9/ [hard] You can share a replay to start at a specific frame.
By specifying “?f=41” at the end of the replay URL, you’ll force the replay to start at frame 41. Quite useful when you want to show a specific behavior of an AI in a match.
BONUS/ [epic] The expert mode could be unlocked using the Konami code.
I wrote could, because we finally added a setting in the left panel in the IDE to choose the mode: standard or expert.
The expert mode allows you to display a custom tab in the test panel of In/Out puzzles. With it, you can run your own test case by specifying the input of a scenario and its expected output. It is also used in old multiplayer games such as Poker Chip Race to set specific conditions for a match.
Know Your Opponents
Ah, competition! (sigh) Measuring yourself to other developers often seems to stress you a bit more than it should…
10/ [easy] It’s possible to solve Clash of Code (CoC) puzzles in less than a minute.
Yes, it really is possible! We receive a lot of complaints from players accusing others of cheating. I understand the frustration of losing to a player who only took a few seconds to get the right code. I can explain, though.
Sometimes, the puzzle is fairly simple. You don’t even need to read the whole statement; checking out the test cases is sufficient to understand what you have to do. Also, there are developers who play a lot of these short puzzles. So they’re very good. Most of the time, they have already solved that puzzle before. Ultimately, the choice of language greatly influences the outcome. I can tell you; I rarely win a CoC in Java…
11/ [medium] Time does not equal good ranking.
I get it. You have a life outside CodinGame. You fools! 😉
You can’t dedicate as much time to a challenge as players who can code every day. But, trust me, you do have a chance to perform. Obviously, having time helps, and surely no player ever won a challenge by playing only 2 hours. Still, Bob has proven that everyone can reach Legend by being lazy.
12/ [hard] To perform during a challenge, you don’t necessarily need to recode the whole engine of the game.
I know — I never do it! I still managed to reach the Legend league twice. During our streams on Twitch, we also show that rather simple strategies can be quite efficient. At the end of the day, recoding the engine of the game only means that you’re modeling the problem to be able to resolve it with the best possible solution. This solution is the real intelligence of your AI. The closer the modeling is to the real game, the more accurate your strategy will be.
I agree it can be quite boring. Sometimes it’s almost impossible. To me, the key to performing in a challenge is finding the right balance between the management of your time, the exactness of your modeling, and the intelligence of your bot.
All About Us
Who are we? A bunch of friendly people trying to build the best tools to help developers improve their skills and get noticed by companies.
13/ [easy] Community challenges are not sponsored by companies.
We used to hold multi-sponsor challenges. Contestants had the opportunity to be noticed by companies and eventually be hired. That’s what happened to TylerDurden (and me). The last multi-sponsor challenge was Wondev Woman last June. We now hold “solo-sponsor” challenges like Code4Life (for Roche) and The Accountant (for Warner Bros).
Community challenges are crafted by the community. There are currently three teams working on the next challenges to come this year. Finally, there are some sponsored puzzles displayed permanently on the platform to help you get noticed by companies while practicing on the platform.
14/ [medium] Our business model is to provide talent acquisition and technical assessment services to companies.
A few of you have probably already taken a test with our tool, CodinGame Assessment. It assesses (5 ‘s’!) the coding skills of developers and lets them showcase their skills, whatever their resume. The IDE of CodinGame assessment is quite similar to the CodinGame IDE.
I’ll tell you more about what we do for companies in a future article.
15/ [hard] Almost all CodinGame puzzles in the practice section have once been challenges.
At the beginning of CodinGame, we were holding short solo challenges (which lasted for only a few hours). Most of them were composed of several progressively difficult puzzles, explaining why some puzzles have multiple “episodes” with different levels. The only exceptions are the Onboarding and The Last Crusade puzzles. The latter was considered too difficult to appear in a challenge.
How many features did you know? If you knew about all of them, then you must have been around for a long time. Congratulations!
If there are others things that you don’t understand or about which you wonder, let me know in the comments; I’ll be glad to answer!