image
image
image
image
Genre : programmation
Développeur / Éditeur : Timon Herzog (pays indéterminé)
Plateforme : Windows
Téléchargement : 96 Mo
Sortie prévue : 2024
Langue : anglais
Prix actuel : 7 €
Je ne me suis pas mis à coder gratos comme ça, tout d’un coup, tel un adonis qui se transformerait en nerd binoclard passé minuit au solstice d’été. J’ai été séduit par des images de champs de blé étincelants, de pièces d’or qui s’entassent, de récoltes réalisées grâce à la haute technologie. Car The Farmer Was Replaced est un jeu de gestion de ferme, même s’il se limite à un seul champ. Sauf que le champ est labouré, planté, arrosé et récolté par un drone, un drone qui ne sait rien faire par lui-même et qu’il faut donc programmer.
if get_pos_y() == 1 ? Oh, Izual d'il y a deux heures. Tu étais si idiot.

Ardue vallée

Ça commence avec un seul carré d’herbe haute et un bloc de texte vide, où l’on écrit harvest(), puis while True: harvest() afin que le drone récolte en boucle. Le langage de programmation qu’il faut utiliser ressemble beaucoup à du Python, mais pas d’inquiétude si vous n’y entravez queud’, le jeu est pensé pour les débutants et explique très bien les concepts de base du code. Alors très vite, on apprend à déplacer le drone dans le champ qui s’agrandit, à planter d’autres végétaux, à labourer le sol. Et on se retrouve devant des défis plus complexes, comme des plantes qui grandissent plus vite si elles sont voisines d’autres espèces.

Le résultat, c’est un jeu qu’il ne faut pas du tout envisager comme un logiciel éducatif, mais comme un puzzle game : si vous avez l’habitude de coder, vous ne serez pas surpris d’apprendre qu’une partie ressemble à une suite de petites énigmes à solutions multiples : comment, avec les outils à notre disposition, s’assurer que le sol est sec avant de décider de l’arroser ? Comment faire pour ne récolter que les tournesols avec le plus grand nombre de pétales ? Comment orienter le drone… dans un labyrinthe de haies ?

Code loco

Ce qui m’a convaincu, c’est le côté « solutions multiples » : le langage de programmation est suffisamment riche pour que plein d’approches soient possibles et le jeu ne nous bloque pas du tout jusqu’à ce qu’on ait trouvé sa solution à lui. Il est donc possible de faire comme moi et de terminer le jeu avec du code simple mais long et crado : tel un homme des cavernes je répète en boucle move(North) et move(East) pour déplacer mon drone, là où des programmeurs chevronnés trouveront une solution fulgurante qui commence par delta_we = x - get_pos_x(). for i in range(abs(delta_we))... Pour moi, de la magie noire.

Qu’on soit un humble débutant ou un Alan Turing du turfu, il y en a pour tous les niveaux : chacun trouvera un challenge à sa mesure, que ce soit pour réussir à récolter un champ tout simple ou optimiser le code jusqu’à avoir une boucle compacte et ultra efficace. Perso, ça a été quand j’ai réussi à compter le nombre de fois où le drone s’était déplacé puis comparer à la taille du champ (pour vérifier que chaque case avait été visitée une fois), après une demi-heure de galère et de tâtonnements, qu’une bouffée d’euphorie m’a convaincu de vous parler de ce jeu.

Qu’on soit un humble débutant ou un Alan Turing du turfu, chacun trouvera un challenge à sa mesure.

Progresser permet de débloquer de nouvelles plantes, mais aussi des fonctions à intégrer au code.

Histoire drone.

Du coup, un conseil : persévérez. Quand on programme, on se retrouve souvent bloqué, c’est normal. Mais ce qui paraît tout d’un coup insurmontable l’est toujours beaucoup moins après cinq minutes de réflexion. Dans The Farmer Was Replaced, il y a donc des petits pics de complexité qui peuvent faire mal au cerveau, mais qui ne sont au final pas bien méchants. Comme quand on doit planter des arbres une case sur deux (car il ne faut pas juxtaposer les arbres) et que le jeu nous conseille nonchalamment d’utiliser l’opérateur % qui permet de voir le reste d’une division, car les divisions par deux de nombres pairs ont toujours un reste égal à 0, ce qui permet d’identifier si la position X de la case est une position paire (quand on la divise par deux)... Ouais, moi aussi j’ai dû me poser deux minutes et relire la doc, mais au final j’ai eu beau en transpirer d’avance, ce n’était pas si retors à piger et à intégrer à mon code.

Terminer le jeu en débloquant tout l’arbre de recherche ne m’a pris qu’une douzaine d’heures (sachant que j’avais déjà une connaissance basique du Python), mais je sais que je m’en souviendrai longtemps, comme d’une série bien rythmée de défis qui m’ont donné plein de petites doses de dopamine. C’est une bien chouette idée que d’avoir donné à du code cette forme attrayante, une forme qui démontre que si dans les jeux vidéo le bonheur est de surmonter les obstacles tout seul comme un grand, alors la programmation fait un très bon jeu vidéo.

En l'état

Izual le 13 août 2024
Les jeux de programmation peuvent être soporifiques, rébarbatifs ou, encore pire, éducatifs. The Farmer Was Replaced évite tous ces écueils avec une jolie interface et un habillage agraire addictif, ainsi qu’un laissez-faire qui rend le jeu adapté aux néophytes comme aux caïds du code.
Sans danger