Leekwars

On râle souvent après l’IA. Les ennemis sont idiots, les alliés sont idiots, certains se coincent parfois dans le décor, d’autres se mettent bêtement à découvert ou n’achève pas un adversaire pourtant à leur merci. Et si on jouait à créer de l’IA ? Et si on le faisait avec des poireaux ? Bienvenue dans Leekwars.

Intelligence Artificielle

L’intelligence artificielle est un vieux rêve, après lequel courent de nombreux chercheurs. Pour le jeu vidéo, qui prend place au sein d’un univers virtuel, ce rêve est une nécessité, qui permet d’apporter à la fois cohérence, immersion, difficulté, intérêt à l’expérience ludique. Bien sûr, il y a IA et IA. Des fantômes de Pacman à Deep Blue et passant par les bots d’un jeu de combat ou d’un FPS, le spectre est large et varié. Mais le principe central reste à peu de choses près le même : l’élément intelligent doit pouvoir s’adapter à une situation donnée, réagir en vue de l’atteinte d’un objectif. Et pour cela, il n’y a pas 36 solutions : il faut trouver des algorithmes, des séquences de code suffisamment puissantes pour permettre l’émergence d’un comportement qui pourra être qualifié d’intelligent.

Coding Game

Leekwars met en scène des poireaux. Des poireaux qui s’affrontent dans une arène, une map quadrillée, avec armes à feu et sortilèges (appelés ici « puces »). Agressions directes, soins, buffs de force ou de défense, la panoplie est classique. Ce qui l’est moins, c’est le fonctionnement du jeu : ici il n’est pas question de contrôler directement son poireau lors d’un combat. Non, lorsque le poireau entre dans l’arène, il se débrouille tout seul. Selon l’intelligence artificielle que lui aura préalablement codée le joueur.

Il s’agit bien ici de coder le comportement du poireau guerrier, dans un langage de programmation spécifique (mais néanmoins très proche du javascipt) : le leekscript. Un ensemble de fonctions sont mises à la disposition du joueur, qui peut s’en servir pour récupérer l’id du poireau adverse, se déplacer vers lui, équiper une arme, faire feu… Reste à agencer tout cela. Un système de points d’action oblige à planifier soigneusement son tour de jeu : tirer avec telle arme coûte 5 points sur 8 disponibles, empêchant alors de lancer des soins efficaces, qui coûtent 4 points (et possèdent par ailleurs un cooldown de 2 tours à prendre en compte)… comment effectuer l’action optimale ? Il faut également tenir compte de la portée des armes ou des puces, de la présence d’obstacles sur le champ de bataille, de l’existence d’un taux d’échec lorsqu’on effectue un tir ou qu’on active une puce… Soudain, l’IA n’est plus un vain mot, et les boucles et les if se succèdent.

Evolution constante

Toutes les fonctions du leekscript ne sont pas accessibles dès le départ. De même, les différentes armes et puces doivent s’acheter (avec la monnaie du jeu, qui n’a à l’heure actuelle pas prévu de transactions en argent réel – ce qui semble une bonne chose) et nécessitent un certain niveau pour être équipées. Conséquence : à mesure que le poireau progresse, il accède à de nouveaux éléments dont il faut alors tenir compte dans l’IA qu’on lui a attribuée. Cette dernière est donc constamment remaniée, repensée, optimisée. Evidemment, c’est là le cœur du jeu, et ce dynamisme est fortement accrocheur : on se surprend à y penser même une fois le PC éteint, à se demander si tel ou tel point ne pourrait pas être subtilement amélioré et procurer ainsi un avantage lors des joutes. Il faut toutefois admettre qu’au fil des niveaux et des morceaux de code modifiés, on finit par se trouver dans la situation où il vaut mieux tout repenser que continuer à bricoler telle ou telle partie déjà maintes fois modifiées. Cela peut avoir un aspect quelque peu démotivant : le constant besoin d’adaptation oblige à revoir les acquis fréquemment, sous peine d’être dépassé. Le matchmaking est pensé en ce sens : on affronte des poireaux de niveau équivalent au notre (en match qui rapporte argent et expérience du moins, il est toujours possible de défier « pour du beurre » n’importe quel autre poireau pour se tester comme on le souhaite). Or, le niveau n’est ici qu’affaire d’expérience engrangée, et ne rend pas compte de l’efficacité de l’IA : on n’affront pas ceux qui ont un taux de victoire équivalent au nôtre, mais ceux qui ont accumulé autant de points d’expérience (sachant que même une défaite en apporte quelques-uns). Laisser son IA inchangée trop longtemps, et bientôt on ne fera plus le poids face à des poireaux équipés des dernières puces dévastatrices. Heureusement, il est possible de se retirer des combats en cas de période d’inactivité prévue.

Encore plus de complexité

Le concept est tout simplement génial. Bien sûr, le jeu s’adresse à des joueurs attirés par le code, et même si le tutorial est assez complet, mieux vaut avoir quelques bases avant de se lancer. Car c’est bien de code qu’il s’agit : on renseigne chaque ligne, chaque fonction, on exécute l’ensemble, on débugue… Il n’y a pas de mise en forme simplifiée, de système graphique qui vient rendre la chose plus accessible. Si l’on dispose tout de même d’aides classiques comme l’autocomplétion et la mise en exergue de certains éléments (mots clés, types, fonctions…), il s’agit bien de coder, réellement.

Par ailleurs, plus le niveau augmente, plus le jeu se complexifie et demande de l’investissement pour se maintenir à niveau. En effet, une fois le niveau 50 atteint… il devient possible d’acquérir un second poireau, pour des matchs par équipe (il est également possible, plus rapidement, de former une équipe avec des poireaux d’autres éleveurs). Un tout autre aspect de l’IA se met alors en branle, avec la notion d’alliés et la multiplicité des adversaires (pour le moment, il est possible de jouer jusqu’à 4 contre 4). Les zones d’effets et les déplacements, déjà cruciaux, gagnent encore en importance et ouvrent la voie à des possibilités tout simplement vertigineuses.

Conclusion

Sans aucun doute jeu de niche, Leekwars est une véritable pépite. Gratuit, régulièrement mise à jour, le jeu offre un regard sur le jeu vidéo à travers le jeu vidéo, en proposant une mécanique d’une rare intelligence puisqu’elle ne trouve sa limite que dans l’intelligence du joueur lui-même. Bien sûr le jeu n’est pas parfait (certaines puces ou armes semblent des passages obligés pour gagner, l’ergonomie n’est pas toujours optimale, l’implication devient difficile à gérer à la longue), mais le temps gommera sans doute ses quelques défauts. En l’état, c’est déjà une incroyable réussite.

3 réflexions au sujet de “Leekwars”

  1. Effectivement, Leek Wars est vraiment très intéressant à jouer. Non seulement, parce que c’est toujours hyper-gratifiant pour l’ego de passer du temps sur son IA et de votre qu’on la développée de façon assez intelligente pour gagner 90% de nos combats, mais aussi parce qu’il nous permet en tant que joueur de sacrément relativiser les critiques qu’on a pu émettre envers les IAs rencontrées dans les jeux. Parce que clairement, faire une IA qui gère, c’est super la galère ^^

    Répondre
  2. Il y a eu des mises à jour depuis la rédaction du test, oui 🙂
    Nouvelles puces, ajout des potions, extension du nombre de participants aux matchs par équipe…
    Les updates restent régulières.

    Répondre

Laisser un commentaire