Quand on veut débuter au jeu de Go sur internet, on se heurte vite au même mur. D’un côté, il y a les grands serveurs en ligne où l’on se fait écraser en silence par des joueurs aguerris sans comprendre pourquoi nos pierres sont mortes. De l’autre, des logiciels modernes dopés aux réseaux de neurones (comme KataGo ou Leela Zero) qui exigent une carte graphique dédiée et jouent des coups divins totalement incompréhensibles pour un humain qui découvre le goban.
C’est pour combler ce vide que j’ai développé Go Luminary. L’idée de départ était simple, mais techniquement un peu folle : créer un jeu de Go complet, esthétique et surtout pédagogique, qui tourne instantanément dans n’importe quel navigateur web (PC, tablette ou smartphone), sans serveur, sans téléchargement, sans publicité et sans inscription.
Un seul fichier HTML autonome. Et pourtant, sous le capot, il a fallu ruser pour lui apprendre à jouer — et à expliquer — le jeu de stratégie le plus complexe au monde.
▶ Jouer à Go Luminary directement dans le navigateur
Une IA qui parle et qui explique ses coups
La plupart des intelligences artificielles de jeux de plateau sont des boîtes noires : elles calculent, posent leur pierre, et vous laissent deviner leur intention. Au Go, pour un débutant ou un joueur occasionnel, c’est extrêmement frustrant.
Dans Go Luminary, l’IA est conçue comme un partenaire de club bienveillant. À chaque coup qu’elle joue, une bulle de dialogue vous indique son intention immédiate (« Shimari : fermer son coin », « Frappe à la tête de deux pierres », « Course aux libertés », « Coup sente en fin de partie ») appuyée par le proverbe traditionnel correspondant. Vous pouvez même lui demander « Pourquoi ce coup ? » pour obtenir le détail de son raisonnement et voir clignoter sur le plateau la zone précise qui l’a motivée.
Mieux encore : l’IA observe vos coups. Si vous réalisez une belle forme traditionnelle — une Gueule du tigre, un Bambou incassable, un Kosumi ou un Ponnuki — elle le remarque et vous félicite, avec un lien direct vers le lexique illustré du jeu pour approfondir le concept. Visuellement, le plateau vous aide aussi à lire la partie : les libertés sont représentées, les pierres connectées fusionnent visuellement pour montrer la solidité des murs, et des anneaux discrets signalent les groupes en atari ou définitivement vivants (à deux yeux).
Quel est le vrai niveau de l’IA ? (Parlons en Kyu)
Soyons transparents : Go Luminary n’a pas vocation à battre un joueur en dan, ni à rivaliser avec AlphaGo. Son objectif est d’être le meilleur tremplin d’apprentissage possible.
En termes de classement, le moteur se comporte aujourd’hui comme un joueur autour de 12 à 15 kyu sur les plateaux 9×9 et 13×13 (et environ 15–18 kyu sur un grand goban 19×19). Concrètement, qu’est-ce que cela signifie devant le plateau ?
- Elle respecte l’étiquette et les grands principes d’ouverture (Fuseki : coins, puis bords, puis centre, sans entasser ses pierres).
- Elle ne tombe pas dans les pièges tactiques élémentaires : elle lit les échelles (Shichō) jusqu’au bout du plateau, sait poser un briseur d’échelle, et reconnaît les captures au filet (Geta).
- Elle ne « nourrit » pas les groupes morts et refuse de jouer des coups suicidaires ou des mauvaises formes (comme le fameux triangle vide ou les pâtés de quatre pierres).
- Elle sait quand passer et pré-marque proprement les pierres mortes au moment du comptage, que vous jouiez avec les règles françaises, japonaises ou chinoises.
Si vous débutez ou que vous cherchez à maîtriser les fondamentaux jusqu’au niveau d’un joueur de club régulier, elle vous offrira une résistance sérieuse et cohérente, sans jamais tricher ni jouer de coups absurdes.
Sous le capot : les défis techniques d’un jeu de Go en JavaScript pur
Faire tourner une IA de Go décente dans un simple navigateur web (y compris sur un téléphone modeste) sans faire appel à un serveur distant est un vrai casse-tête d’optimisation. En JavaScript, le moindre gaspillage de mémoire fige l’interface. Voici quelques-unes des astuces d’architecture qui permettent à Go Luminary de réfléchir en une fraction de seconde tout en gardant un affichage fluide à 60 images par seconde :
1. L’architecture hybride : la Règle et l’Arbitre (MCTS + RAVE)
Un moteur purement statistique (Monte-Carlo) demande des dizaines de milliers de simulations par seconde pour découvrir seul qu’il ne faut pas ramper sur la première ligne en début de partie. À l’inverse, un moteur purement basé sur des règles joue de façon trop rigide.
J’ai donc coupé la poire en deux. D’abord, une couche stratégique analyse le goban comme le ferait un humain : elle trace une carte d’influence, identifie les groupes faibles, vérifie 13 préceptes fondamentaux du Go et propose un coup « de plan ». Ensuite, ce coup est soumis à un arbitre MCTS + RAVE (Monte-Carlo Tree Search avec Rapid Action Value Estimation) qui simule des centaines de fins de parties aléatoires en tâche de fond. Si les simulations montrent que le coup théorique perd un combat local, l’arbitre prend le relais et corrige le tir. En prime, les réflexions du MCTS s’affichent sous forme de lueurs LED sur le goban !
2. Le plateau 1D et l’astuce mathématique des « pseudo-libertés »
Dans une simulation Monte-Carlo, le programme joue des milliers de pierres par seconde. Si l’on utilise un tableau 2D classique et que l’on recalcule les libertés de chaque chaîne de pierres par un algorithme de parcours (BFS) à chaque coup, le processeur s’effondre.
Pour les simulations internes, j’ai écrit un moteur ultra-léger (FastBoard) où le plateau est aplati sur une seule dimension (Int16Array), entouré d’une bordure invisible. Les pierres d’un même groupe sont reliées par une liste circulaire en mémoire. Mais comment savoir instantanément si un groupe de 15 pierres tombe en atari (une seule liberté restante) sans parcourir ses contours ?
Grâce à l’égalité de Cauchy-Schwarz sur les coordonnées des libertés : n × ∑p2 = (∑p)2. En maintenant simplement la somme des positions des libertés et la somme de leurs carrés à chaque pierre posée, le moteur sait en une seule opération arithmétique (en temps constant O(1)) si toutes les libertés restantes pointent vers la même intersection.
3. Lecture locale de Vie et Mort (Tsumego) et Zobrist Hashing
Pour éviter que l’IA ne laisse mourir ses groupes bêtement ou ne manque une mise à mort évidente, elle intègre deux micro-solveurs tactiques :
- Un lecteur de captures courtes (qui lit les séquences forcées d’atari, de contre-atari et de filet).
- Un lecteur de Vie et Mort dédié aux groupes enfermés : dès qu’un groupe dispose de moins de 12 intersections d’espace vital, l’IA explore l’arbre des coups locaux avec une table de transposition pour vérifier si le groupe peut former deux yeux, même si le défenseur passe son tour (tenuki).
- Enfin, toute la gestion du Ko et du Superko (interdiction de répéter une position passée, indispensable en règles françaises et chinoises) repose sur un hachage de Zobrist 32 bits : chaque position complète du goban possède une empreinte numérique unique calculée par un simple
XORbinaire.
Tout le cerveau de l’IA tourne dans un Web Worker isolé qui calibre automatiquement sa profondeur de calcul selon la puissance de votre appareil. Pendant qu’elle réfléchit, l’animation de la lumière de bougie sur le bois du goban ne perd pas une seule image.
Un jeu 100 % gratuit, sans pub et respectueux des joueurs
Je tiens à ce que Go Luminary reste ce que le web aurait toujours dû être : un espace de partage propre.
- Aucune publicité qui coupe votre concentration entre deux coups.
- Aucun compte à créer, aucun traqueur, aucune donnée collectée : vos préférences et l’historique de vos parties restent stockés localement sur votre appareil (avec export SGF si vous souhaitez analyser vos parties ailleurs).
- Accessible partout, que vous ayez 5 minutes pour un 9×9 dans les transports sur votre téléphone ou une heure devant vous pour un 19×19 sur grand écran.
Si vous prenez plaisir à y jouer, que l’IA vous aide à comprendre vos premiers Semeai ou que vous appréciez simplement cette démarche de création artisanale et gratuite, vous pouvez m’offrir un café sur Ko-fi. C’est ce soutien direct des joueurs qui me permet de continuer à faire évoluer le moteur, d’affiner sa pédagogie et de développer d’autres jeux gratuits dans le même esprit.
Bonne partie à tous, et que vos groupes trouvent toujours deux yeux !