Docs Divers

Questions fréquentes

Est-ce un logiciel de triche ? Quelles versions sont prises en charge ? Que peut voir et faire l’IA ? Peut-on s’en servir sans savoir programmer ?…

Est-ce un logiciel de triche ?

Non. C’est une interface de développement destinée à la recherche et au divertissement autour de l’IA, à utiliser uniquement avec un client que vous possédez légalement, en local, en réseau local ou dans des parties que vous hébergez, contre l’ordinateur ou contre d’autres IA. Elle ne doit pas être utilisée sur Battle.net ni sur aucun serveur doté d’un anti-triche, et n’offre aucune fonctionnalité visant les parties contre des humains. Voir Limites d’utilisation.

Quelles versions du jeu sont prises en charge ?

Seul Warcraft III 1.27 (The Frozen Throne) est pris en charge pour l’instant. Les versions 1.24 à 1.28 partagent la même structure de moteur ; la prise en charge multiversion (table de symboles par version, repli par recherche de signatures, autotest au démarrage produisant la liste des capacités) est prévue à la phase P4 de la feuille de route. Les versions 1.29 et suivantes, comme Reforged, reposent sur un autre moteur et demanderaient une adaptation à part : aucun engagement pour l’instant.

Mes fichiers de jeu sont-ils modifiés ?

Non. Le runtime est injecté pendant l’exécution du jeu et ne modifie ni le Game.dll sur le disque ni aucun autre fichier du jeu. Pour lancer plusieurs instances, le lanceur d’origine War3.exe est simplement copié tel quel sous un autre nom. Les données de jeu (tables d’unités, etc.) sont extraites de votre propre jeu et ne sont pas distribuées avec le code.

Que peut voir l’IA ?

En gros, tout ce qu’un joueur pro voudrait savoir, mis à jour toutes les 50 ms :

  • l’or, le bois et la nourriture de tous les joueurs ; pour toutes les unités : position, points de vie et mana, ordre en cours, cible attaquée, niveau et expérience ;
  • niveaux et temps de recharge restants des compétences des héros et des unités, buffs actifs, inventaire ;
  • ce que chaque bâtiment entraîne / recherche / construit / améliore, l’avancement, et s’il est bloqué faute de nourriture ;
  • objets au sol, arbres, grilles de déplacement et de construction de la carte, points de départ, heure de jeu (jour/nuit) ;
  • le flux d’événements : apparition et mort des unités, chaque coup porté (auteur, type d’attaque, dégâts avant armure), éliminations, fins de production, montées de niveau des héros…
  • et des questions directes au moteur : telle action est-elle possible maintenant, et sinon pourquoi ; à quel niveau en est telle technologie ; tel point est-il visible ; combien d’or reste-t-il dans une mine ; où l’IA de l’ordinateur compte-t-elle envoyer ses troupes.

En plus de cela, le SDK calcule les caractéristiques de combat (contres, armure, améliorations d’attaque et d’armure), le « temps nécessaire pour tuer » et la recherche de chemin au sol. Toutes les interfaces sont dans le catalogue de l’API.

Que peut faire l’IA ?

Presque toutes les actions d’un joueur : déplacer, attaque-déplacement, attaquer une cible, arrêter, tenir la position, patrouiller, attaquer le sol, récolter, réparer, construire (avec recherche automatique d’emplacement), entraîner / rechercher / améliorer, annuler, apprendre une compétence, lancer un sort (sur une unité / sur un point / sans cible), point de ralliement, ressusciter un héros, ramasser / utiliser / lâcher / donner / vendre un objet, acheter, Appel aux armes ; file d’attente Shift, marche par points de passage, un ouvrier qui enchaîne plusieurs constructions ; sans oublier la vitesse de jeu, la pause et les bulles de dialogue. Chaque commande renvoie un accusé de réception.

Au-delà des actions du joueur, elle peut aussi dessiner ses propres panneaux et annotations sur l’écran de jeu (canevas) et, en partie solo, appeler les 1291 fonctions JASS dont disposent les créateurs de cartes (canal JASS).

Peut-on l’utiliser dans des cartes RPG / personnalisées ?

Oui. Choisissez une carte RPG et attribuez à l’instance le schéma « Exemple de compagnon » ; une fois la partie lancée, vous jouez vous-même, accompagné d’un compagnon IA qui combat avec vous, vous soigne et vous fait la conversation : voir Compagnon RPG. g.map_data lit les noms des unités personnalisées de la carte ; le canal JASS permet de créer des unités, de définir des alliances, d’afficher des panneaux… À vous de décider comment jouer. Les opérations qui modifient le monde ne sont disponibles qu’en partie solo (en multijoueur, elles provoqueraient une désynchronisation) ; le canevas, lui, reste sûr même en multijoueur.

Peut-on s’en servir sans savoir programmer ?

Oui. Installez l’environnement en suivant le Démarrage rapide, puis lisez Écrire un Bot avec un LLM : vous décrivez la stratégie avec vos mots, le LLM écrit le code ; en cas de problème à l’exécution, transmettez-lui le message d’erreur ou ce que vous voyez en jeu, et demandez-lui de corriger.

Uniquement en Python ?

Le SDK est en Python. Entre le runtime et les programmes externes, il n’y a qu’un protocole en mémoire partagée (W3P) : tout langage capable de lire et d’écrire la mémoire partagée de Windows peut s’y connecter. Plus simple encore, la passerelle (WebSocket / JSON) : JS, C#, Go, Rust, une page web ou un programme sur une autre machine peuvent tous appeler les mêmes interfaces ; un agent LLM peut se brancher directement sur MCP.

Quel LLM choisir ?

Tous les modèles courants capables d’écrire du code conviennent. L’essentiel n’est pas le modèle, mais les bons documents à lui fournir (le manuel + api.json + un exemple), en exigeant qu’il n’utilise que les méthodes présentes dans le catalogue de l’API. Les décisions en temps réel pendant la partie (conseiller, doublage) sont sensibles à la latence ; les modèles MoE locaux s’en sortent très bien. Voir Un LLM comme conseiller et Bulles de dialogue et modèles locaux.

Le jeu est-il ralenti ?

Une capture de l’état du monde prend en médiane 0.5 à 0.9 ms sur le thread du jeu (100 à 120 unités), toutes les 50 ms. Chaque commande coûte quelques microsecondes sur le thread du jeu ; chaque vidage de la file dispose d’un budget de 4 ms, et ce qui ne tient pas dans ce budget est reporté au vidage suivant, sans jamais bloquer le jeu. Tous les appels au jeu sont protégés contre les exceptions : si un Bot plante, seul son camp s’arrête, sans entraîner le jeu dans sa chute.

Peut-on lancer plusieurs parties en même temps ?

Oui. runtime/farm.py orchestre les instances multiples, chacune avec son numéro ; vous les démarrez et les arrêtez depuis la console Farsight. Votre Bot se connecte à une instance donnée avec --inst N.

Peut-on faire s’affronter deux IA ?

Ouvrez deux canaux player dans la même partie (--player 0 / --player 1) : c’est de l’IA contre IA. En mode local, l’équité repose sur une convention ; les vrais matchs, avec arbitre, filtrage selon la vision et contrôle de propriété, se jouent sur l’Arène (phase P6).

Mac et Linux sont-ils pris en charge ?

Seuls Windows 10 / 11 sont pris en charge pour l’instant.

Sous quelle licence ?

La licence sera publiée avec la version officielle. Les composants tiers conservent leur propre licence (par exemple MinHook, sous BSD-2) ; AMAI est sous licence personnalisée : ses données dérivées ne sont pas distribuées avec le projet, elles sont récupérées depuis le dépôt public d’AMAI et générées à l’installation.

Où signaler un problème ?

Un canal de signalement ouvrira avec la version officielle. Joignez à votre signalement le numéro d’instance, la sortie de python -m openwar3 status et les étapes pour reproduire le problème. Vérifiez d’abord si Débogage et performances ne résout pas déjà la question.