Vincent Baillet, développeur de « Reversi Champion » sur Oric et SC-3000

Interview réalisée les 4, 7 et 10 septembre 2018.

Menant quelques recherches sur Reversi Champion, jeu d’Othello dont je n’ai découvert que récemment l’adaptation sur Amstrad CPC, j’ai découvert que la version originale avait d’abord été développée sur Oric puis sur Sega SC-3000. A force de vouloir obtenir des renseignements supplémentaires, j’ai pu contacter Vincent Baillet, programmeur de ces deux premières versions. Avec gentillesse, bienveillance et patience, il a pu apporter de nombreuses réponses concernant ce jeu méconnu… et qui lui a pourtant ouvert les voies d’un long partenariat avec l’éditeur Loriciels !
Je le remercie à nouveau ici d’avoir bien voulu répondre à ces « quelques » questions ! 🙂

Bonjour Vincent. Les premières recherches que j’ai effectuées vous concernant remontent à 1982. Avez-vous développé d’autres programmes avant Reversi Champion ? Si oui, lesquels et sur quelles machines ? Ont-ils été commercialisés ?
Vincent Baillet : Oui, j’ai commencé à développer des programmes d’Othello avant la version Oric. Je dirais [en] 1980 environ. Les premières versions de jeu d’Othello tournaient sur calculatrice programmable : je suis certain d’avoir développé sur HP-41C, et moins sûr de l’avoir fait sur mes calculatrices de l’époque, TI-58 et Casio FX-502P.
La version sur laquelle j’ai passé le plus de temps était la version ZX81. Je faisais à l’époque partie des meilleurs joueurs français d’Othello, et j’étais passionné par la programmation. Je n’avais aucun objectif de commercialisation pour ces versions. C’était juste un hobby sur lequel j’ai passé beaucoup de temps.

En 1982, votre nom apparaît dans L’Ordinateur Individuel [OI] n°42 : vous participez alors au tournoi international de programmes d’Othello dans lequel des logiciels jouent les uns contre les autres. Ce ne sont pas des joueurs qui sont mis en compétition mais des développeurs ! Sur quel ordinateur avez-vous développé votre logiciel ? Quel langage avez-vous utilisé ? Combien de temps avez-vous mis pour le programmer et quelles difficultés avez-vous dû affronter ?
VB : J’ai participé plusieurs fois : la première fois dans la catégorie « Calculatrice » qui se jouait sur un board de 6×61, les autres fois avec mon ZX81. La version ZX81 était écrite entièrement en langage machine Z80.
Concernant les difficultés, il y en avait plein, mais le plaisir d’un programmeur est de les résoudre. Les tournois de l’OI mettaient des cerveaux en compétition.

En 1983, était-ce le même programme et la même machine utilisée – était-ce un Oric ? Là aussi, si le programme était différent, quel langage avez-vous utilisé et quelles difficultés avez-vous dû affronter ? Quelles améliorations avez-vous pu apporter à la version de 1982 ?
VB : Je ne peux pas confirmer si [la version] 1983 était [programmée] avec un Oric ou un ZX81. Pas de souvenir… De toute façon le code était en assembleur (6502 ou Z80). L’amélioration majeure était que le programme s’améliorait tout seul : il faisait des parties contre lui-même pendant que j’allais au lycée, cela permettait de trouver les meilleurs paramêtres.
Pour [en] revenir sur les difficultés, je pense que la principale source de problème était la fiabilité et la vitesse de sauvegarde sur cassette : une vraie école de patience et de zen. 🙂

Selon le site de la Fédération Française d’Othello, ce dernier programme était celui qui a été commercialisé par Loriciels : était-ce vraiment le cas ? Si oui, avez-vous approché Loriciels pour le vendre ou ont-ils eu vent de votre logiciel et vous ont-ils contacté ?
VB : J’ai approché Loriciels pour leur montrer mon jeu. Le logiciel commercialisé était une évolution des versions précédentes. [Par contre,] les critères pour les tournois et pour la commercialisation ne sont pas les mêmes : un jeu grand public ne doit pas être trop fort. Il faut ajouter des niveaux faibles, ce qui est l’inverse de ce que je faisais depuis des années.

Ce critère était donc bien une demande spécifique de Loriciels ? Eventuellement, quelles autres contraintes vous ont-ils imposés sur ce développement ? A l’inverse, vous-même avez-vous pu imposer certains parti-pris et si oui, lesquels ?
VB : Je n’ai pas trop de souvenir de ce qui s’est passé à ce sujet. Je pense que c’est moi qui ait pris l’initiative de dégrader le niveau, mais je ne suis pas sûr.
Je n’ai pas de souvenir de ce que Loriciel m’a demandé d’ajouter, à part leur logo.

Toujours à propos de ce développement et avant d’approcher Loriciels, avez-vous pris connaissance de la concurrence déjà vendue à l’époque ? Si oui, lesquels et en quoi vous-ont ils influencés ?
VB : A ma connaissance, les programmes du tournoi de l’OI n’étaient pas commercialisés.
Le seul programme que je connaissais était la référence de l’époque : Reversi Challenger. C’est un plateau d’Othello interactif. Ce jeu est resté un mystère pour moi pendant longtemps : c’est un processeur très peu puissant, avec très peu de mémoire, et malgré ça la machine jouait extrêmement bien.

La version Oric a été testé par le magazine Théoric n°3 et Jeux et Stratégies n°30. Avez-vous connaissance d’autres tests ?
VB : Je n’ai même pas connaissance de ce[s] test[s]. mais je vais essayer d’en prendre connaissance. 🙂

Je vais me permettre de vous épargner cette peine. Voici où les consulter en ligne :
Théoric n°3 : p. 54 et p. 55 ;
Jeux et Stratégies n°30 : p. 25.
A propos de ces tests, qu’en pensez-vous en les relisant ? Vous semblent-ils réalistes quant à leurs commentaires ?
VB : Un grand merci pour m’avoir envoyé ces docs. C’est toujours agréable de relire ça, il faut juste savoir que ces articles sont aussi le résultat d’un excellent travail d’« attaché de presse ». 🙂

Notamment, dans Jeux et Stratégies, les conseils proposés par le programme sont qualifiés de « perfides » au vu du déroulé des parties qui se finissent toutes perdantes selon ce journal. Cela dépendait-il du niveau demandé à l’ordinateur, supposez-vous un bug ou tout simplement une affabulation du journaliste ?
VB : L’algorithme utilisé dans Reversi Champion est un Minimax avec élagage Alpha-Bêta, [avec] quelques autres techniques pour accélérer la recherche. Techniquement, cela veut dire que le programme essaie tous les coups, envisage toutes les réponses de l’adversaire, essaie tous les coups en réponse au coup de l’adversaire, etc. jusqu’à une certaine profondeur de recherche.
Plus cette profondeur est importante, plus le niveau de jeu sera élevé. Supposons que le programme regarde 5 coups en avance, le « Conseil » ne sera basé que sur une recherche de 4 coups en avance. Le conseil est donc basé sur une recherche moins profonde.
Donc effectivement, jouer systématiquement ce que l’ordinateur conseille est voué à l’echec : un peu comme si on faisait jouer le niveau 4 contre le niveau 5…. Cela n’empêche pas que le coup conseillé est souvent meilleur que ce que le journaliste aurait joué. 🙂

Pouvez-vous en dire un peu plus sur la manière d’implémenter l’intelligence artificielle ? En effet, tout à l’heure, vous me répondiez que durant vos cours au lycée, vous laissiez la machine jouer seule contre elle-même pour s’améliorer. J’imagine ainsi qu’il ne s’agit pas de recherche par force brute, mais plutôt de recherche heuristique. Confirmez-vous ?
VB : C’est assez simple en fait : l’algorithme envisage plein de possibilités de jeu, et doit ensuite évaluer ces positions obtenues afin de savoir si elles sont bonnes ou pas. Cette évaluation de la position est basée sur différents paramètres qui sont pondérés et convertis en une note.
La technique consistait à faire jouer l’ordinateur contre lui-même, les noirs jouaient avec certains paramètres, et les blancs avec d’autres paramètres. Le perdant de la partie modifie alors ses pondérations, et on recommence jusqu’à ce que les pondérations des deux joueurs soient proches.
Ce système n’est pas parfait: il permet juste de dégrossir ces paramètres, mais ne permet pas de s’adapter à différents types de joueurs.
L’algorithme Alpha-Beta est une recherche par force brute. Mais à 4 Mhz, la force est toute relative. 🙂

De quels travaux avez-vous pu vous inspirer pour développer cette intelligence artificielle ?
VB : Il y avait un peu de littérature dans les journaux de l’époque, notamment l’OI et Micro Systèmes. J’avais surtout acheté un livre Chess Skill in Man and Machine, qui était une bible sur le développement d’IA pour le jeu d’échecs. J’ai prêté ce livre il y a 30 ans, je ne l’ai jamais revu, et j’en suis bien triste 🙂

Pouvez-vous nous en dire d’ailleurs un peu plus dans les grands traits ? Toujours sur ce développement, quelles règles avez-vous mises en place lors de la programmation des différents niveaux ? Avez-vous notamment implémenté des erreurs, du hasard pour les réponses de l’ordinateur sur les niveaux faibles ?
VB : Je n’ai aucun souvenir à ce sujet. Il est possible que j’ai mis un peu de hasard.

Une autre version existe sur Sega Yeno SC-3000. Il apparaît que vous êtes aussi à l’origine de cette version. Comment en êtes-vous venu à développer cette version sur un ordinateur aussi peu connu (mais il l’était peut-être plus à l’époque, ce dont je doute) ? Etait-ce une demande de Loriciels ? Quelles différences y a-t-il entre la version Oric et la version SC-3000 ? L’adaptation était-elle difficile sachant que les processeurs utilisés sur ces deux machines sont différents ?
VB : Oui, c’est moi qui ai fait la version Sega, à la demande de Loriciels. Le développement a été rapide, et la version devait être très proche de la version Oric.
Le fait que le processeur soit différent n’est pas très important, les développeurs de jeu avaient l’habitude de jongler entre des architectures différentes. Il y avait généralement quelques jours d’apprentissage, pas plus.

Concernant la version SC-3000, est-elle sortie après la version Oric ou Loriciels a-t-il attendu votre portage pour la commercialiser en même temps ?
VB : La version Sega a été faite après. Mais je me souviens que Loriciels n’avait pas sorti la version ORIC tout de suite. Il y a eu un certain laps de temps entre la signature du contrat et la sortie du jeu, il est donc possible que les deux versions soient sorties ensemble.

A cette époque, vous n’étiez pas encore salarié de Loriciels. Combien Loriciels vous a-t-il reversé ? Etait-ce en cash à la vente du logiciel à Loriciels, une commission sur les ventes ou un mélange des deux ? A propos des ventes, savez-vous combien de logiciels ont été vendus ?
VB : Le jeu était vendu 100 FF en magasin, je touchais 10 FF par exemplaire. La version Oric s’est vendue à 1000 exemplaires, et la version Sega Yeno environ autant.

Est-ce suite à ce programme que vous êtes devenu salarié de Loriciels ?
VB : Non, il s’est passé des choses entre temps : un jeu de dames, un jeu d’arcade, 3D Fight, et un peu d’études aussi.

Après le tournoi de 1983, il ne me semble pas que vous y ayez encore participé. Confirmez-vous ? Et si c’est bien le cas, pour quelle raison ? Sinon, pouvez-vous m’indiquer sur quelle machine avez-vous participé et votre classement ?
VB : Je ne peux pas vous dire. Il y a un moment où je me suis rendu compte qu’il serait plus intéressant et rentable de s’attaquer à des jeux plus grand public. Et que je pourrais en faire mon métier. Je n’ai aucun souvenir de mon classement. Je pense que je n’étais pas trop mal, mais les frères Claverie et Bruno Bras cumulaient le fait d’être brillants et d’avoir du matériel performant.

En 1986, une version Amstrad a été commercialisée, différente de la vôtre et réalisée par un autre programmeur, Jacques Métois. Tout d’abord, la connaissez-vous ? Loriciels vous a-t-il demandé l’autorisation pour cette version ? Pourquoi Loriciels ne vous a-t-il pas demandé de développer cette version, d’autant plus que vous avez développé par la suite d’autres logiciels sur CPC ? Jacques lui-même vous a-t-il contacté pour en savoir plus sur ce programme ? Votre version a-t-il inspiré la sienne par quelques routines ou algorithmes ? Pourriez-vous en toute objectivité décrire les qualités et défauts de vos logiciels respectifs ?
VB : Je ne vais pouvoir vous dire grand chose : j’ai su après coup que cette version sortait, j’ai joué un peu avec mais le niveau était faible. Je n’ai jamais eu de contact avec l’équipe qui l’a développée.

Selon le site loriciel.net, concernant ce même logiciel Reversi Champion, vous déclarez que le logiciel est sorti sur MO5. Mes recherches n’ont pas du tout abouties et lorsque j’ai consulté l’ensemble des jeux disponibles sur cet ordinateur, il n’en ait fait nulle part mention. Est-ce que cette version existe ? Si oui, a-t-elle été commercialisée ? A-t-elle été testée par un quelconque magazine ?
VB : C’est une erreur. Reversi Champion [est sorti] sur Sega et Oric [et] j’ai fait un jeu de dames sur MO5.
Il y a une version oubliée, qui n’est jamais sortie : au tout début des PC, une marque, Digital Equipment Corporation, a demandé à Loriciel un portage. Le jeu a été développé mais le jeu n’est jamais sorti (et n’a pas été payé) pour des raisons qui m’échappent.

A propos de cette dernière version, pensez-vous la mettre à disposition des amoureux de la « préhistoire informatique » ? 🙂
VB : Malheureusement, je crains que le code ne soit dans une poubelle depuis quelques décennies. Comme c’était au début des compatibles-PC, la compatibilité était toute relative. le DEC Rainbow 100 sur lequel le jeu tournait était un peu hybride.

Question subsidiaire, quel âge aviez-vous lors de la programmation du jeu en 1983/1984 ? 🙂
VB : Je suis né en 1965, je devais donc avoir 18 ans.

Quel est votre sentiment d’être ainsi interrogé sur un jeu qui a maintenant 34 ans ? 🙂
VB : Il doit y avoir erreur, ça ne fait pas 34 ans. 🙂

1 Au lieu d’un plateau de 8×8 pour le véritable jeu d’Othello.

 

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s