La compétition au travail, c’est pas cool ! Par contre, ça devient hyper fun quand c’est sur un portail de développeurs où chacun vient pour se mesurer à ses pairs. Alors, oui, il y a une pléthore de sites de codage qui se disent « gamifiés », mais pas un ne hisse le genre au niveau de Codingame.
Codingame : plus captivant que tous les métavers réunis
C’est pas du tout un métavers, mais c’est quand même beaucoup plus fun, pour peu qu’on soit développeur. Je suis moi-même tombé amoureux de ce site depuis des années, quand il commençait, et j’ai vu le « petit » site Français grandir. Aujourd’hui Codingame est un portail international regroupant des dizaines de milliers de développeurs unifiés autour de la même passion : le beau code et les algorithmes en tous genres.
Car s’il s’agit bien de compétition, elle est intense mais jamais féroce. Ici, même ceux qui te mettent la pâtée peuvent t’être d’un grand secours pour t’aider à progresser et même quand tu ne trouves aucune solution, tu avances en étudiant celles de tes adversaires. En effet, on peut partager son code après un « clash of code » (pas besoin de traduire, hein), affrontements minutés dont on parlera plus bas.
Plus de 40 langages disponibles pour « régler vos comptes »
A Codingame, quoi que vous fassiez, vous avez le choix entre plus de 40 langages pour le coder. A part si vous tenez absolument à concourir en Cobol, votre langage de prédilection est dans la liste, croyez-moi.

Une interface cartoon et ergonomique
La partie supérieure de l’écran d’accueil représente les activités récentes. En clair, sur ce paradis des développeurs, on peut :
- Participer à des Clash of Codes
- Résoudre des puzzles de tous niveaux
- Participer à des combats de bots ou des simulations
- Passer des certifications reconnues
- Se faire embaucher par une entreprise Tech
Nous allons développer tous ces points de ce pas.

Comme un MMORPG
Le site fonctionne à la manière d’un RPG classique, c’est à dire que toute action réussie est récompensée par des points d’XP qui, quand ils arrivent à un certain point, font passer au niveau supérieur. La carte des missions symbolise votre parcours tout au long des activités du site. Ici, on n’en voit que la moitié supérieure. Plusieurs classements sont également consultables, par activité.
« Venez avec vos langages »
Comme vous avez pu constater sur le 1er screenshot , je suis le plus souvent en mode Javascript, Java et C++. Après, tout cela dépend de vos humeurs du moment. Vous pouvez très bien vous entrainer à un langage, tout comme vous pouvez en découvrir un, tout comme vous pouvez vous armer de votre langage préféré pour fesser quelques devs mécréants (je plaisante, l’ambiance n’est pas comme dans les RPG ou les FPS). Mais il ne faut pas se mentir : c’est toujours jouissif de sortir premier d’un clash de code ou de voir son robot mettre à l’amende les robots adversaires dans les combats de bots. Un plaisir difficile à décrire à vrai dire. Comme disait Bob Marley : « Who feels it knows it ! ».

- Les Challenges Multijoueurs
Un par saison, donc 4 par année
Chaque saison, un challenge spécial réunit les membres autour du même jeu. Le plus souvent il s’agit d’un jeu de plateau 2D. Le principe est simple : on vous livre un moteur de jeu fonctionnel avec un IDE intégré, et c’est à vous de programmer votre bot pour remporter le challenge. Les règles sont les mêmes pour tous les joueurs. Un système de ligues hiérarchise la compétition.
Du Bois à la Légende
Tout le monde commence en mode pouilleux, c’est à dire en ligue Bois 3. A comprendre comme « Nationale 3 » en sport Français, c’est à dire que la 2 et la 1 sont mieux. Les autres ligues sont débloquées au fil des jours du tournoi. Un tournoi dure au moins 5 jours, parfois bien plus, permettant à tout le monde de participer un tant soit peu. Les ligues à terme sont, par ordre hiérarchique croissant :
- Bois 3, 2 et enfin 1 (beaucoup d’options se débloquent au fur et à mesure)
- Bronze (où commencent les choses sérieuses)
- Argent
- Or
- Légende

Les défis « Taille de code »
Le Golf Code
Peut-être avez-vous déjà pratiqué le Golf code ? Pour ceux qui ne sont pas initités, ce n’est pas un nouveau sport. Il s’agit de l’art de coder en utilisant le moins de caractères possibles. Cela revient à programmer comme un ninja, en oubliant d’ailleurs 95% des bonnes pratiques. Bye bye les variables bien nommées, le code bien indenté, le typage etc. Toutes ces choses recommandées en temps normal deviennent un handicap quand il s’agit de minifier son code. Alors pourquoi s’infliger ça ?
Tout un art de mystifier le code, une école…
Parce que ça ne revient pas seulement à changer des noms de variables longs et pertinents en une seule lettre (par exemple getAdress en g) mais surtout à explorer à fond les forces et faiblesses d’un langage pour se permettre de l’utiliser à mauvais escient. Prenons l’exemple d’un simple parseInt(), fonction JS qui transforme une chaîne de caractères en un entier.
…nommée la voie du ninja
Disons que j’ai une ligne de code du genre : monAge = parseInt(ageEnString)
Eh bien, si j’écris : monAge = +ageEnString
ça aura le même résultat, mais j’aurai gagné 10 caractères en moins. Tous les langages regorgent de petites failles comme celles là (bon… j’avoue, le JS plus que les autres lol) qu’il est bon de connaître dans des cas rares et désespérés .

Les défis d’Optimisation
Si ils ont aussi leur place aux challenges de saisons Codingame, les jeux d’optimisation n’impliquent pas d’affrontements avec d’autres robots, mais c’est sur la qualité de votre solution (évaluée par des critères objectifs qui varient à chaque jeu) que vous êtes jugé(e).
Les Clash of Code
5 minutes pour affronter des développeurs adverses autour de 3 types de puzzles bien distincts :
- Rapide : ici il s’agit de résoudre le problème le plus vite possible, c’est à dire avant les autres. Le classement dépend donc de 2 facteurs, ça doit fonctionner et avant tout le monde.
- Taille de code : on retrouve ici le concept, donc en mode 5 minutes, le format des clash. Par contre, il n’est pas nécessaire ici de se dépêcher car ce n’est plus le timing qui est pris en compte mais bel et bien le nombre de caractères (le problème doit être résolu bien sûr). Celui qui a le moins de caractères gagne et ainsi de suite pour le classement.
- Reverse engineering : c’est de la rétro ingénierie. Cette fois tout le monde ne voit que les sorties du problème, il n’y a pas d’énoncé et le but est donc d’analyser les sorties pour comprendre ce qu’il faut faire. C’est à dire deviner l’énoncé en quelque sorte. Ca creuse vraiment les méninges de manière étrange.

Jusqu’à 10 joueurs peuvent rejoindre une session de « clash of code ». Bon, je vous avoue qu’aux heures creuses, des bots se glissent parmi les joueurs (même si c’est pas vraiment assumé par le staff) mais ça part d’un bon sentiment : ne pas vous laisser tout seul ! A l’heure où j’écris ces lignes ils sont faciles à cramer, car tous de niveau 7.
Les combats de bots : affrontez des développeurs sans pitié
Voici le plus attendu de tous les évènements Codingame. Tous les 3 mois, un challenge du nom de la saison a lieu. les challenges consistent ou en un défi d’optimisation, ou en un combat de bots. Écraser ses ennemis avec du code rageux, car souvent on a pas le temps de peaufiner, refactoriser en plein challenge est un luxe que même les joueurs légendaires ne s’accordent pas. Il faut du pragmatisme quand on est sous la mitraille.

Une fois que votre code vous parait assez efficace, vous pouvez le soumettre et alors, vous êtes confrontés un par un à la plupart des joueurs de votre ligue. Vous pouvez à tout moment voir tous ceux que vous avez battus ou non, et regardez n’importe lequel des matches pendant que le classement s’affine au fil de vos défaites ou victoires. Cerise sur le gâteau, les challenges, une fois terminés, sont transférés dans la partie « Multi » du site, où ils restent à vie. Vous avez donc toute la vie devant vous pour devenir « Légende » dans votre jeu préféré.
Les puzzles : 3 niveaux de souffrance
Les puzzles sont des petits problèmes à résoudre seul. Certains sont issus du site, mais la plupart provient de la communauté. Tout membre peut proposer un puzzle, mais c’est aux membres de juger si tel ou tel puzzle sera validé ou pas pour rester sur le portail. La sélection est sévère sans être radicale. Heureusement, vu le nombre sans cesse croissant de participations.

Cette émulation garantit des problèmes toujours renouvelés. A noter que les 4 niveaux de puzzles Codingame sont :
- Facile
- Moyen
- Difficile
- Très difficile
Le niveau « Très difficile » n’est pas une exagération, il est à la portée uniquement des développeurs expérimentés et chevronnés, et le niveau « Difficile » lui-même porte bien son nom, les mots ayant une signification.

Ici, on voit où on peut créer un puzzle pour le présenter à la communauté qui l’approuvera alors ou le rejettera, après un vote de membres « autorisés ». La sélection est rude, pour préserver la qualité.
Un forum classique, mais fourni de pépites
En effet, il a beau être joli, le forum de Codingame n’a rien d’exceptionnel à 1ère vue. En y regardant bien, vous trouverez toutes sortes de « post mortem ». Ce sont des comptes rendus de bons joueurs sur leur stratégie et leurs tactiques pour parvenir en haut du classement.
Souvent vous découvrirez de nouvelles techniques, des heuristiques, des implémentations d’algos que vous connaissez, mais n’auriez jamais pensé à utiliser dans certains cas, des hacks suprêmes dans votre langage de prédilection etc. C’est tout simplement une mine d’or pour tout développeur qui veut monter en puissance.

Les live streams Twitch
On peut visionner des live streams passionnants de membres qui ont leur chaîne Twitch. Souvent, il s’agit de débriefer un puzzle ou un challenge. Une autre mine d’or pour ceux qui veulent apprendre toujours plus. Je vous conseille simplement de choisir des ressources avec votre langage quand il s’agit d’implémentations qui vous intéressent.

Conclusion
Code Combat, Code Wars, Code Chief et beaucoup d’autres sont des sites « gamifiés » sérieux et on apprend beaucoup sur eux tous. Mais quand on parle de site « gamifiés », il faut arrêter la plaisanterie, ces sites n’arrivent pas à la cheville de Codingame en matière de fun, et c’est un développeur expérimenté et de longue date qui parle.
Aucun équivalent à Codingame
Ce site n’a tout simplement pas d’équivalent réel. Les combats de bots, les optimisations, et même certains puzzles se déroulent dans une interface graphique réelle, un vrai jeu vidéo quoi ! Tu peux avoir du Pacman, du Cluedo, peu importe. Affronter des développeurs adverses s’avère carrément jouissif, et d’un fun que même les « vrais » jeux vidéo auront du mal à vous amener. Eh oui, quand on voit son robot fonctionner à merveille après en avoir tant bavé pour le programmer, c’est un plaisir, une explosion de joie indicible. Ca se démultiplie quand on le voit fesser les autres robots en dégustant un café ou un thé ou ce que vous voulez, ce site devient carrément addictif.
Fun et addictif
Tous les jeux de plateau se prêtent à une déclinaison en jeu 2D. A toi de t’occuper de ton robot ou de tes équipements. Cette libération de dopamine qui a lieu chaque fois que mon bot en bat un autre, ou pire, l’humilie, quel pied ! Désolé de devenir presque trivial, mais si on joue, c’est pour participer, mais aussi pour distribuer des raclées cuisantes à ses amis ou autres. Affronter des développeurs pour devenir meilleur, au delà de l’aspect ludique. Ca fait partie de la nature humaine de prendre du plaisir à vaincre plus faible que soit ? Personne n’a envie de répondre. Vive Codingame et vive la saine et vivifiante compétition.

Faîtes-vous embaucher dans une entreprise Tech
Au fil du temps, Codingame a su renforcer sa crédibilité à tel point que nombre de développeurs ont déjà décroché des emplois juteux sur le site, certains même dans des boîtes à très haute technicité comme les laboratoires Roche, ou le ministère de la Défense. Il y a quelques semaines, le challenge était organisé par Fiverr. Si c’est pas ça joindre l’utile à l’agréable, je vois pas ce que ça veut dire.
Alors, sérieux, juste avec les clash of codes ce site serait déjà passionnant, mais avec les combats de bots, c’est le paradis numérique des développeurs, bien plus captivant que tous les métavers réunis.
