Wchess - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Moteurs

WChess : affrontez un vieux maître



Wchess est un moteur développé par David Kittinger en 1995 pour équiper le programme commercial Power Chess de Sierra. Le jeu était très grand public mais son moteur est resté célèbre pour ses qualités : très fort pour l'époque, de style humain, équilibré mais pouvant être modifié facilement pour mimer quantité de styles de jeu différents. Il est désormais abandonware.




David Kittinger est loin d'être un inconnu dans le domaine des échecs informatiques. En 1979, il avait mis sur le marché le moteur MyChess, le seul capable de concurrencer le Sargon des époux Spracklen sur le créneau grand public. Ce sont ses programmes qui équipaient les machines de Novag, meilleures ordinateurs d'échecs dédiées des années 80 et 90. Enfin, une décennie avant Power Chess, il avait fourni le moteur d'échecs de Chessmaster 2000, première version de la plus célèbre franchise d'échecs ; Kttinger a participé ensuite au développement de Chessmaster 3000, avant de rendre son tablier, pour se concentrer sur son partenariat avec Novag.  
Sorti en 1995, le Power Chess de Sierra, marchait dans les pas de Chessmaster.  Ce vieux logiciel sous Dos se voulait pédagogique et encore plus ludique que le logiciel d'Ubisoft.  Je l'ai fait tourner avec un émulateur Dos et lors des premiers essais, je l'avais trouvé un peu trop "grand public", un peu trop folklorique. Ses qualités m'avaient échappées et, après l'avoir lancé à nouveau j'ai décidé de le présenter dans la nouvelle série sur les abandonwares.


Un moteur historique

Ce qui est sûr, c'est que Power Chess était doté d'un excellent moteur. En 1995, Wchess a remporté haut la main la prestigieuse coupe de Harvard, tournois entre moteurs d'échecs et grands maîtres humains. Il a battu quatre grands maitres et obtenu la nullité contre les deux derniers, accumulant 5 points sur les 6 possibles. Aucun autre moteur n'avait jusqu'ici gagné aussi brillamment la Harvard Cup.
Quelques mois plus tard, Wchess a été classé sixième au championnat du monde des programmes d'échecs. Il n'a perdu aucune partie durant cette compétition. Contre Deep Blue Jr, le super-ordinateur d'IBM qui a tenté une première fois, en 1996, de terrasser le champion du monde l'époque, Garry Kasparov, Wchess a réussi à arracher la nullité.

Converti au protocole de communication UCI grace à "Winboard to UCI", Wchess peut aujourd'hui tourner dans une interface d'échecs comme Arena ou Lucas Chess, avec des performances supérieures à celle de la version intégrée à Power Chess. La version la plus récente, la 1.6, est créditée d'une force proche de 2400 elo.


Comme le faisait remarquer un joueur sur un forum, les moteurs des années "Dos" étaient très intéressants car la puissance des machines de l'époque ne permettaient pas les performances tactiques de ceux d'aujourd'hui. Ils s'ingéniaient à reproduire les raisonnements humains plutôt que de s'appuyer sur le calcul brut pour parvenir à leurs fins. Cela leur donnait un style paraissant naturel. C'est tout à fait le cas pour Wchess. Le moteur a un jeu très équilibré entre habileté tactique et préoccupation positionnelle, à la manière d'un petit maitre humain.
Il est aussi très homogène, sans faiblesse particulière, notamment en fin de partie.
Autre qualité : comme "The King", Wchess était réglable, ce qui permettait à Sierra de lui faire endosser le role de nombreux joueurs de force et de style très différents dans le jeu. Une aptitude qui a été conservée et même enrichie avec la version 1.6. Son module de configuration interne est facilement paramétrable, permettant de fabriquer des joueurs à la "personnalité" différente.
Enfin, Wchess a aussi la capacité, qu'il a été le premier à mettre en oeuvre, de s'adapter au niveau de son adversaire humain. C'est le fameux learning mode de Power Chess : le moteur joue juste un petit peu mieux que vous et vous laisse gagner en moyenne une partie sur quatre (j'y reviens plus bas).

Au total, beaucoup de bonnes raisons de ne pas oublier Wchess dans un coin.


Téléchargement et installation

Plusieurs sites proposent le vieux moteur mais comme j'ai modifié le fichier de configuration, le mieux est que j'héberge le moteur sur Echecs & Informatique.

Télécharger Wchess 1.6 ?

Dans l'archive, vous trouverez la version originale Winboard et sa conversion UCI grâce à l'adaptateur "Winboard to UCI", un fichier de configuration (
"Wb2Uci.eng"), une bibliothèque d'ouvertures, un fichier "EndTb" vide et une vignette-logo.

Installation dans Arena : menu "Modules", "Installer nouveau module" et allez chercher le fichier "WChessUCI.exe".
Installation dans Lucas Chess : menu "Outils", "Moteurs", "Moteurs externes" ; bouton "Nouveau" et allez cherchez "WChessUCI.exe".
Installation dans Crafty Chess Interface : menu "Moteurs", "Ajouter nouveau moteur" et allez chercher "WChessUCI.exe" (Wchess fonctionne très bien avec CCI mais le module de configuration n'étant pas accessible depuis cette interface, il se sera pas possible de personnaliser le moteur).
Installation dans Scid vs PC : menu "Outils" > "Moteur d'analyse" puis bouton "Nouvelle". Donnez un nom au moteur (par exemple Wchess 1.6 UCI) et utilisez le bouton "Parcourir" pour aller chercher "WChessUCI.exe".


Fins de partie et opening book ?

Le dossier du moteur contient un répertoire "EndTb" et un répertoire "OpenBk". Dans le premier on trouve ce qui semble être un fichier de données de fins de partie mais il est vide. Il ne se remplit pas lors du fonctionnement de Wchess et je n'ai pas trouvé comment l'utiliser ou le remplacer.
Le second contient une bibliothèque d'ouvertures au format "*.bin" que vous pouvez activer ou désactiver depuis le menu de configuration de l'interface. Il est très facile d'obliger le moteur à recourir à l'unes des bibliothèques d'Arena : menu "Modules" > "Gérer" puis choix du moteur dans la liste, onglet "Détails", onglet "Bibliothèque" et cocher "Utiliser bibliothèque principale d'Arena" - ou utilisez le sélecteur de fichiers pour en choisir une autre.

Avec Lucas Chess, les bibliothèques internes des moteurs ne sont jamais utilisées. Au lancement d'une partie, c'est la bibliothèque standard "GMopening.bin" qui est lancée par défaut. Vous pouvez choisir une autre bibliothèque depuis la zone "Répertoire" de l'onglet "Coups initiaux".


Configuration

Configuration depuis Arena : ouvrir "Module" > "Module 1" > "Configurer".

A gauche, vous voyez le poids relatif des pièces. Par défaut 1 pour les pions, 3 pour les cavaliers et les fous, 5 pour les tours, 9 pour les reines. Ces chiffres peuvent être modifiés de façon par exemple à forcer le moteur à utiliser davange certaines pièces ou à favoriser  le maintient d'une bonne structure de pions. Notez que vous pouvez modifier le poids des pièces de Wchess mais aussi les vôtres. Dans tous les cas, le moteur en tiendra compte et adaptera son jeu en conséquence.
On ne sait pas exactement comment Wchess traite ces informations, mais on peut faire des hypothèses...



Menu de configuration de Wchess affiché par l'interface Arena

Par exemple augmenter la valeur des cavaliers et des pions, diminuer celle des fous et des tours devrait pousser le moteur à préserver ses cavaliers et à préférer les jeux fermés.
L'imagination est au pouvoir...

Au centre, l'affichage des données du moteur :
➤Display PV : affichage de l'output du moteur. Vous avez le choix entre afficher toutes les données ("all") ou seulement les plus importantes ("few").

➤Learn mode : le mode d'apprentissage (voir plus bas) est activé par défaut. N'oubliez pas de le mettre sur "on" si vous ne l'utilisez pas car sinon le moteur jouera très mal.
➤Ponder : autorise ou pas le moteur à continuer à réfléchir pendant que vous préparez votre prochain coup).  Pour ce dernier paramètre, le plus simple et de le laisser sur "on" et de l'activer ou le désactiver depuis Arena (menu "Modules", item "Réflexion permanente" ou Shift+Ctrl+P).
➤OwnBook : permet d'activer ou de désactiver la bibliothèque d'ouvertures interne.

➤Logfile, s'il est coché, génère une fichier appelé "Wb2Uci.log" qui vous renseignera sur le fonctionnement du moteur. Ne le laissez pas coché si vous n'en avez pas l'utilité car il ralentit le moteur et le fichier devient vite très volumineux.

A droite une série de paramètres généraux permettent :


➤De minorer la force du moteur ("Play Strength": de 0 à 100, valeur "EL").
De modifier l'attention accordée à la protection du roi ("King safety": de 0 à 100, valeur "KS"). Par défaut la valeur est à 100, pour laquelle le moteur va garder un maximum de pièces autour de son roi (posture défensive).
➤De changer l'attention portée à la faiblesse des pions ("Pawn Weakness" : de 0 à 100, valeur "PW"). Par défaut le paramètre est à 100. Pour cette valeur, Wchess va tenter de maintenir une bonne structure de pions (posture défensive).
De fixer à l'avance la profondeur de recherche ("Fixed depth": de 0 à 38, valeur "FD"). C'est le nombre de ½ coups que Wchess pourra anticiper. Par défaut, ce paramètre est à zéro, ce qui signifie qu'il n'est pas pris en compte. Mieux vaut le laisser comme ça.
➤De modifier l'équilibre entre utilisation généreuse du matériel et priorité accordée à la position ("Material vs positional", valeur "MP" : de -100 à +100). Par défaut le réglage est à zéro, ce qui signifie que Wchess va accorder autant d'attention à l'un qu'à l'autre et aura donc un jeu très équilibré. Si vous diminuez le chiffre, il sera incité à faire davantage de sacrifices de pièces et aura un style plus offensif. Si vous l'augmentez il cherchera plutôt à préserver ses pièces et à maintenir une bonne position. Le style sera positionnel et défensif.  
➤"Mépris pour la nullité" ("Contempt for draw", de 0 à 100, valeur "CD"). Ce paramètre est par défaut à zéro. Mais dans quel sens fonctionne-t-il ? A priori, zéro correspond à l'absence de mépris. Donc 100 signifie que le moteur refusera toujours d'accorder la nullité.

Configuration depuis Lucas Chess : avant de lancer la partie dans Lucas Chess, sélectionner le moteur : menu "Outils" > "Moteurs" > "Moteurs externes". Sélectionner la ligne du moteur et bouton "Modifier". Les paramètres sont les mêmes que pour Arena.

Configuration depuis Scid vs PC : Scid malheureusement ne gère pas correctement les moteurs modifiés par WB2UCI. L'interface ne tient aucun compte du fichier "Wb2Uci.eng". Elle se contente d'afficher l'ensemble des paramètres généraux de WB2UCI, y compris ceux dont le moteur n'a que faire, sans retenir les valeurs inscrite dans le fichier de configuration. Inversement, la section [Extras], qui concerne les paramètres spécifiques au moteur, n'est ni affichée ni pris en compte. Concrètement, pour Wchess, les paramètres de réglage de "personnalité" sont tout simplement absent. En résumé : évitez d'utiliser Wchess avec Scid.


Le mode d'apprentissage (learning mode)


Wchess a été le premier moteur à introduire un système d'adaptation au niveau du joueur. Ce n'est pas aussi sophistiqué que ce que l'on peut voir sur des moteurs plus récents, mais ça fonctionne assez bien pour des joueurs débutants ou occasionnels. Pour ajuster son niveau, le moteur fait souvent des erreurs vraiment grossières. Si le joueur humain les repère, il peut gagner. Ce qui devrait arriver environ une fois sur quatre parties, à condition qu'il soit concentré.
Le moteur ne se fera jamais piéger deux fois de la même façon. Pour cela il mémorise l'historique des affrontements dans deux fichiers, appelés "losses" et "oldmoves", créés dans le dossier du moteur.
Dans Power Chess, plusieurs joueurs différents pouvaient affronter Wchess. Ce n'est pas le cas lorsqu'on utilise le moteur seul, dans une interface quelconque. Il est possible de déplacer provisoirement les fichiers "losses" et "oldmoves" dans un dossier à part et de les remettre à leur emplacement initial lorsqu'on en a besoin. Mais le plus simple serait encore de joueur avec Power Chess. ce qui est possible grace à l'émulateur PCem (voir "Power Chess, un vieux qui reste un bon mentor").
Attention : par défaut le learn mode est activé. N'oubliez pas de le désactiver si vous voulez que le moteur joue correctement.

Rob Rob, avril 2019 (révision août 2020).


 
 
 
 
 
 
 
 
 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();