Ah, les IA ! Mythe moderne par excellence. Quel joueur n’a pas rêvé d’avoir l’équivalent de HAL d’Odyssée de l’espace, d’affronter le War Operation Plan Response Joshua de War Games, de rivaliser face à Skynet et ses terminators … Ou plus prosaïquement d’avoir toujours un adversaire à sa hauteur pour occuper son temps libre par de virtuelles joutes intellectuelles. Adversaire certes artificiel mais digne de soi, car horaires et emploi du temps de chacun n’aidant pas, un vrai bon adversaire peut s’avérer assez rare. Spécialement pour un wargame. Et même encore aujourd’hui avec le réseau des réseaux, Internet.

Heureusement il y a presque toujours une IA, qui attend patiemment au coeur de nos jeux qu’on veuille bien s’amuser avec elle aussi. Toutefois, si les références particulièrement cinématographiques sont nombreuses, de la réalité à la (science) fiction, il y a loin encore. Et les wargamers, d’autant plus si expérimentés, se retrouvent souvent face à un résultat sommes toutes mitigé. Les espérances ne sont pas atteintes, mais peut-être étaient-elles trop hautes ? L’IA tient bon, jusqu’au moment fatidique où elle commet un faux pas, fusse anecdotique tactiquement, pour elle, mais qui saute aux yeux et brise l’illusion, pour nous. Le plaisir est gâché et l’intérêt de la partie s’effondre alors comme un château de cartes.

Mis à part être un très bon aide de camp gérant de nombreuses tâches routinières, puis un bon professeur pour faire découvrir des jeux aux mécanismes complexes, mis à part d’être obligé de tricher pour tenir dans la durée, quitte à ce que cela devienne flagrant pour le joueur, hormis tout cela, qu’est-ce donc dans un wargame que le problème de l’IA ?

La Gazette du wargamer vous propose de suivre cet été une série d’interviews avec des développeurs de wargames et de simulations historiques, programmeurs audacieux qui ont relevé le défi de simuler sur nos micro-ordinateurs l’une des activités humaines parmi les plus anciennes, complexes et hasardeuses qui soient : l’art de la guerre.

Pour entamer cette série d’articles voici un premier entretien avec Victor Reijkersz du studio hollandais VR Designs. Studio qui avec Matrix Games et Slitherine a réalisé ces dernières années plusieurs wargames, dont le récent et très réussi Decisive Campaigns – Case Blue. Voyez à ce sujet notre test, ainsi qu’en complément le test de Advanced Tactics Gold et celui de Decisive Campaigns – From Warsaw to Paris.

Vous trouverez juste après la traduction de cet entretien la version originale de l’interview.
For english readers, scroll down for the original english version of this interview.

Victor Reijkersz, conférence Slitherine 2011.

1/ Pour vous, qu’est-ce réellement qu’une IA dans un wargame ? Une suite de scripts et d’algorithmes, bien sur, mais encore ?

V.R. Pour moi c’est la partie la plus difficile de la programmation d’un wargame. C’est réellement difficile d’en faire une. Et c’est encore plus difficile d’en être pleinement satisfait. Chaque IA que j’ai fait s’est toujours avérée être un projet sans fin. Vous pourriez consacrer plusieurs vies entières à réaliser une bonne IA pour un wargame. Vraiment !

2/ Pour un wargame PC, quels sont les différents modèles d’IA ? Et les différents outils logiciels pour les développeurs ?

V.R. Je ne sais pas. Je code chaque IA à partir de rien. Je ne duplique pas des algorithmes et n’utilise pas de bibliothèques de tierces parties.

Toutefois je vois à la base deux type d’IA que l’on peut programmer pour un wargame. Primo il y a l’approche basée sur le jeu d’échec, dans laquelle je laisse l’IA parcourir l’ensemble des mouvements sans aucun a priori, et par exemple, utiliser un mécanisme de score pour juger les résultats probables de ces mouvements, et décider si ces résultats sont souhaitables. Deuxio il y a l’approche basée sur la logique floue dans laquelle j’utilise des règles précises pour déterminer les mouvements de l’IA. La première approche est vraiment lente et lourde en calculs, et la seconde approche est vraiment rapide. Parfois je mélange un petit peu ces deux approches.

3/ Que permet sommes toutes pour les développeurs la puissance de calcul d’un PC moderne, récent (+/- 2 ans), et de bonne qualité ? 3D mise à part, quelles autres contraintes techniques y a-t-il ?

V.R. Et bien quel que soit la puissance d’un bon PC moderne, vous manquez rapidement de temps [de calcul] dès lors que vous avez un jeu avec plus de 400 unités et que chacune peut choisir parmi des centaines de mouvements. Je ne sais pas si les lecteurs sont familiers avec les permutations mathématiques mais même l’ensemble des PC sur Terre ne pourraient gérer toutes les combinaisons possibles de mouvements pour le premier tour. N’allons même pas jusqu’à imaginer les calculs dans les quelques tours suivants.

4/ Certains types de wargames, donc de conflits historiques, ou d’échelles de jeu, sont-ils plus appropriés aux IA (actuelles) ? Si oui, lesquels ?

V.R. Oui. Les jeux avec un très faible nombre d’unités. Point.

 

 

Case Blue

 

From Warsaw to Paris

5/ Selon votre expérience dans le développement de jeux, quel(s) défi(s) technique(s) avez-vous rencontré ? Lesquels avez-vous pu surmonter ? Lesquels sont-ils encore une barrière ?

V.R. J’ai appris beaucoup en programmant différentes IA pour Advanced Tactics, Warsaw to Paris, Case Blue et Small General. L’élément clé que j’ai appris est que quand je débute un nouveau moteur je dois ajuster le concept du jeu à l’IA, et non l’inverse.

6/ Une IA alliée du joueur (pour un jeu incluant des alliances et de nombreuses factions) est-elle plus simple ou plus compliquée à réaliser qu’une unique IA ennemie du joueur (pour un jeu où il n’y a principalement qu’un seul adversaire) ?

V.R. En fait j’évite de programmer cette option, étant donné que le faire de manières efficace est vraiment difficile. Le jeu en équipe avec une IA requiert quelques moyens de communiquer avec l’IA. Vous voyez le problème ? Par exemple : Comment se mettre d’accord avec l’IA pour décider qui s’occupe de telle partie du front ? Comment diviser les ressources ? Comment coordonner des encerclements ou des retraites avec des unités qui se sont mélangées.

7/ Dans les jeux de stratégie et les wargames les IA sont très souvent meilleures en attaque qu’en défense, pourquoi ?

V.R. Je ne suis pas certain que cela soit vrai. Je trouve que programmer une IA défensive est en fait assez facile. Quoi que je ferais une exception pour une IA de retraite, mes IA étant habituellement plutôt bonnes pour soutenir et défendre [une position], mais effectuer une retraite est pour l’instant une compétence difficile à apprendre, de même que reformer une unité ou un front disloqué quelque part derrière les lignes.

8/ Dans quelle mesure la perception qu’à le joueur de l’IA compte-t-elle ? Une IA d’un jeu peut-elle se contenter d’être moins bonne stratégiquement (qu’un adversaire humain), tant qu’elle est crédible ludiquement, dans ses actions ? Et donc au final, pour un jeu, offre un résultat amusant, donc satisfaisant ?

V.R. Il est probablement impossible de créer une IA à la hauteur d’un von Manstein… Mais il doit être possible de créer une IA qui soit digne d’un Paulus ou d’un Gamelin. Je pense qu’imiter les mouvements historiques de ces commandants est plus que faisable avec les IA actuelles. Toutefois les limites de la conception d’IA apparaissent habituellement quand l’IA joue le camp qui doit réaliser un exploit en mobilité, comme par exemple l’offensive allemande de la 3ème bataille de Kharkov, ou Rommel en Afrique. Aussi, les limites de la conception d’une IA apparaissent si vous faites des jeux jouables contre des adversaires humains autant que contre des IA. Un bon joueur humain fera toujours mieux, et le joueur ressentira souvent que l’IA est inadaptée.

9/ Niveau wargames, à quelles évolutions peut-on s’attendre pour les IA dans un avenir relativement proche ? Une idée probablement folle, si cela était possible techniquement, un wargame ayant son IA en partie dans le futur (et un peu hypothétique) “cloud” pourrait-il bénéficier d’un avantage (ex : puissance de calculs, comparaison des coups joués dans d’autres parties) ?

V.R. Oui, bien sûr, je crois que c’est possible. Toutefois la puissance de calcul brute ne peut faire que des merveilles limitées. En parlant des nuages [informatiques], j’ai moi-même envisagé l’idée de concevoir un wargame qui téléchargerait les expériences de l’IA vers un serveur central, et les partagerait avec toutes les autres IA de toutes les autres copies du jeu en circulation. De cette manière l’IA pourrait se constituer une base de données de ce que sont les probables mouvements et réactions humaines. La seule chose qui me retienne est que ce genre de choses n’est pas exactement facile à programmer :)

10/ Le jeu d’échec offre un plateau de 64 cases et 32 pièces. Donc une base bien moins importante qu’un bon wargame, et encore moins que certains “monster wargames”. Avec 256 processeurs en parallèle (soit 200 millions de coups / sec.), en 1996-97 Deep Blue a fini par battre le champion du monde d’échec Gary Kasparov.

 En théorie, bien programmée, la machine ne fait pas d’erreur. Mais même avec un super-ordinateur, malgré tout il lui manque presque toujours la vision stratégique, la vue d’ensemble ? Si l’on augmente la taille du “plateau de jeu”, pour une simulation vidéoludique tout n’est-il que puissance de calculs ?

V.R. J’ai déjà dis quelque chose à ce propos dans la question 3. Le fait est… ce n’est pas seulement le nombre de cases et d’unités. C’est principalement le fait qu’aux échecs vous déplacez une pièce par tour. Dans un wargame vous pouvez déplacer toutes les pièces à chaque tour. Pour n’importe quel wargame sérieux aucun super-ordinateur ne peut gérer une IA basée sur une approche utilisant la puissance de calcul brut.

11/ Question subsidiaire : Si dans un wargame une IA pouvait battre à coup sur un joueur aguerri, quelque soit le théâtre d’opérations simulé, un bon jeu doit-il limiter l’IA pour nécessairement laisser gagner le joueur ?

V.R. C’est une question très théorique. Comme je disais précédemment : je ne vois pas comment cela pourrait arriver. Mais bon … si cela se produisait… Oui, alors vous devriez programmer des paramètres de difficultés de bas niveau afin de donner un handicap à l’IA. Pour qu’elle évalue mal la situation. Qu’elle oublie certaines unités … Ce serait amusant à programmer :)

Tous nos remerciements à Victor, Matrix et Slitherine pour le temps qu’ils ont bien voulu nous accorder pour cette interview.

English version

1/ For you, what’s really an AI in a wargame. Several scripts and algorithms, of course, but anything more ?

V.R. For me it is most difficult and most challenging part of coding a wargame. It is really really difficult to make one. And its even harder to be fully satisfied with one. Every AI I make always ends up as a never-ending project. You could spend multiple lifetimes on making a good wargame AI. Really!

2/ For a PC wargame, what are the differents AI models ? And the differents software tools for developers ?

V.R. I don’t know. I code every AI I make from scratch. I don’t copy-cat any algorithms and do not use 3rd party libraries.

However I do see basically 2 types of AI you can code for a wargame. First there is the chess-based approach in which I let the AI iterate through all the moves without any preconception and for example use a scoring mechanism to judge the likely outcomes of those moves and decide how desirable those outcomes are. Second is the fuzzy-based approach in which I use fixed rules to determine the AI moves. The first approach is really slow and calculation heavy and the second approach is really fast. Sometimes I mix these approaches a little bit.

3/ What is possible with the computing power of a modern PC (more or less 2 years old) of good quality ? 3D asides, what other technicals constraints is there ?

V.R. Well no matter how fast a good modern PC is. You run out of time pretty quickly if you have a game of 400+ units and each unit can chose between 100s of moves. I am not sure how familiar readers are with permutation mathematics but even all PCs on the whole earth could probably not handle checking all possible combinations of moves for the opening round. Let’s not ever consider running some calculations a few rounds in to the future.

4/ Are some kind of wargames, so of historical conflicts, or scales of games, more appropriate for (current) AI ? If so, which one ?

V.R. Yes. Games with a very low unit count. Period.

5/ From your experience in game design, what technical challenges have you met ? Which one did you overcome ? Which one are still a barrier ?

V.R. I learned a lot coding different AIs for Advanced Tactics, Warsaw To Paris, Case Blue and Small General. The key thing I learned is that when I ever start a new engine I’ll have to adjust the design of the game to the AI instead of the other way around.

6/ Is an AI allied with the player (for a game including alliances and several factions) more simple or more complicated to build than a unique AI enemy of the player (for a game where there’s mainly one adversary) ?

V.R. I actually avoided coding this option, since to do this in a meaningfull way is really difficult. Team play with an AI requires some form of communication with the AI. You can see the problem right? For example: How to agree with the AI who takes which part of the frontline? How to divide the resources? How to coordinate doing encirclements or retreats with mixed up units ?

7/ In strategy games and wargames AI are very often better in attack than in defense, why ?

V.R. I am not sure that’s true. I found coding a defensive AI is actually easier. Though I might want to make an exception for a retreating AI, my AIs are usually pretty good in standing and fighting, but to retreat at the right moment is a hard skill to teach, as is reforming a shattered or damaged front somewhere further behind the lines.

8/ To what extent the perception of the AI from the player has to be taken into account ? Can an AI in a game just be less good strategically (than a human adversary), as long as it offers a good gameplay with its actions ? And so at the end, for a game, offers an entertaining result, thus something satisfying ?

V.R. It might be impossible to create an AI that is a von Manstein… But it should be possible to create an AI that is a Paulus or a Gamelin. I think mimicking the historical moves of these commanders is more than feasible with current AIs. However the limits of AI design usually show if the AI is playing the side that has to perform a feat of genius and mobility like for example the German offensive of the 3rd battle for Kharkov or Rommel in Africa. Also the limits of AI design show if you make games that are playable against Human players as well as AIs. The good human player will always do better, and the player will than often feel the AI is inadequate.

9/ For wargames, what development can we expect for AI in a relatively near future ? A crazy idea probably, if that was possible technically, could a wargame having part of its AI in the future (and rather hypothetical) “cloud” gain an advantage (ex : computing power, comparing moves in same other games) ?

V.R. Yes sure I think that’s possible. However raw calculation power can do only limited wonders. Talking about clouds, I myself toyed around with the idea of designing a wargame that uploads the AI experiences back to a central server and shares them with all the other AIs of all the other game copies in circulation. This way the AI might actually gather a database of what are likely human moves and reactions. The only thing that’s holding me back is that this sort of stuff is not like exactly easy coding :)

10/ A chess game has a board with 64 squares and 32 pieces. So a base less important than a good wargame, and far much less than some “monster wargames”. With 256 processors in parallel (allowing 200 millions move / sec.), in 1996-97 Deep Blue has finally beaten the world chess champion Gary Kasparov.

In theory, well programmed, a computer do not make mistakes. But even with a super-computer, the machine still lacks a strategical vision, a global view ? If we increase the size of the “board game”, for a wargaming simulation is it just a question of computing power ?

V.R. I already said something about this in question 3. The thing is… it is not only the number of squares and the number of pieces. It’s mainly the fact that in chess you can move 1 piece per round, In a wargame you can move all pieces every round. No super-computer can handle a rough processing power based AI approach for any serious wargame.

11/ Tiebreaker question : If in a wargame an AI could beat certainly an experienced wargamer, whatever the simulated theatre of operations, does a good game have to limit the AI to necessarily let the player win ?

V.R. This is a very speculative question. As I said earlier: I do not see this happening. But well… if it happens… Yes then you would have to code in some low level difficulty settings in which you actually handicap the AI. Let it misjudge situations… Let it forget to see certain units… It should be fun  to code :)

Our thanks to Victor, Matrix and Slitherine for according us their time for making this interview.

4 Commentaires

  1. Du beau contenu, très très intéressant. Merci.

    La réflexion de V.R. sur les parties dans le “cloud”, en rejoint une que j’ai depuis quelques temps sur les IA des wargames. J’ai la forte impression que les IA sont codées en “dur” par un ensemble de règles fixant le comportement. La qualité de l’IA est ainsi dépendante de la qualité du concepteur. Hors, dans d’autres domaines, les avancées en apprentissage artificiel de ces dernières années montrent que de très bons résultats peuvent être obtenus en faisant apprendre au système le bon comportement à partir de ses erreurs et réussites. Je suis à peu près persuadé qu’une IA évolutive, basées sur ces méthodes, pourrait voir le jour. L’IA progresserait ainsi comme le(s) joueur(s) qui lui sont adversaires.

COMMENTAIRE

Ajouter votre commentaire
Veuillez indiquer votre nom ici