# Démarrage rapide

> Double-cliquez sur start.bat pour tout installer automatiquement, réglez le dossier du jeu dans Farsight, puis lancez une partie et regardez le Bot d'exemple prendre la main. Environ 15 minutes.

Source: https://war3ai.com/fr/docs/quickstart/

## Ce qu'il vous faut

| | Exigence | Remarques |
|---|---|---|
| Système | Windows 10 / 11, 64 bits | Seul Windows est pris en charge pour l'instant |
| Jeu | Warcraft III **1.27a** (The Frozen Throne, `Game.dll` 1.27.0.52240) | Un client que vous possédez légalement ; aucun fichier du jeu n'est modifié sur le disque |

**Rien d'autre à installer au préalable.** `start.bat` ne télécharge qu'une seule chose : Python 3.13 (le paquet portable officiel, environ 14 MB). Il est placé dans le dossier `bin\env\` du dépôt : pas besoin de droits administrateur, le PATH du système n'est pas modifié, et depuis un réseau en Chine un miroir est utilisé automatiquement ; si votre machine a déjà une version utilisable de Python, elle sert directement. PowerShell utilise celui fourni avec Windows ; les pages web de Farsight sont fournies déjà compilées avec le dépôt, Node.js n'est pas nécessaire.

## Installation

1. **Récupérer le code**

   ```bash
   git clone https://github.com/OPENXXAI/OpenWar3AI.git
   ```

   Ou téléchargez [l'archive](https://github.com/OPENXXAI/OpenWar3AI/archive/refs/heads/main.zip) et décompressez-la. Le runtime (DLL injectée et lanceur) est fourni avec le dépôt : rien d'autre à télécharger.

2. **Double-cliquer sur `start.bat`**

   La première fois, il s'occupe lui-même de :

   - télécharger Python 3.13 ;
   - installer les paquets Python, vérifier les fichiers du runtime puis les mettre en place ;
   - télécharger AMAI et générer les données stratégiques utilisées par le cerveau de référence (AMAI est sous licence personnalisée, les fichiers générés ne sont pas versionnés dans git ; un échec n'affecte que le cerveau de référence) ;
   - ouvrir la page d'accueil de Farsight, le « Centre de contrôle », `http://127.0.0.1:8866`.

   Chaque étape affiche son résultat ; pour une étape qui a échoué, il vous indique comment la compléter. Ensuite, chaque double-clic ne fait qu'une vérification d'une ou deux secondes avant d'ouvrir Farsight.

   La fenêtre noire se ferme d'elle-même au bout de quelques secondes : Farsight continue de tourner en arrière-plan, et fermer le navigateur ne l'arrête pas.

3. **Régler le dossier du jeu dans le Centre de contrôle**

   Tout en haut du Centre de contrôle, utilisez « Recherche automatique », ou « Parcourir… » pour choisir vous-même le dossier de Warcraft III. Farsight vérifie la version du jeu et **extrait les données depuis votre propre jeu** (table des unités, capacités, objets, table des contres… les fichiers de Blizzard ne sont pas distribués avec le code).

   Si la version n'est pas la 1.27a, vous en êtes averti. Les cartes et les réglages de la partie suivante sont relatifs à ce dossier (les cartes de tous les sous-dossiers de `<dossier du jeu>\Maps` sont disponibles) ; pour changer de dossier plus tard, passez par la page « Paramètres ».

4. **Lancer une partie et laisser le Bot d'exemple prendre la main**

   Le plus simple : dans la page « Instances et lancement » de Farsight, cochez un numéro d'instance, choisissez un schéma d'IA et cliquez sur « Lancer le test ». Vous pouvez aussi passer par la ligne de commande :

   ```bash
   python tools/play.py --bot brains/examples/hello_bot.py
   ```

   Cette commande démarre une instance du jeu, injecte le runtime, lance automatiquement la partie, puis démarre le Bot. **Si vous voyez les paysans partir à la mine et le hall produire des paysans, c'est gagné.**

   Le `python` de la commande est celui indiqué dans `openwar3.json` ; celui que `start.bat` a installé se trouve dans `bin\env\python\python.exe`.

## start.bat et stop.bat

```bash
start.bat              # vérification du déploiement + ouverture de Farsight
start.bat setup        # vérification complète : réinstalle les paquets Python, relance AMAI
start.bat restart      # redémarre seulement le serveur de Farsight (le jeu et les services ne sont pas touchés)
start.bat node         # installe en plus Node.js (seulement utile pour prévisualiser le site, inutile au quotidien)
start.bat 5 6          # démarre en plus le test des instances 5 et 6 (jeu + cerveau de référence)
stop.bat               # arrête tout ; stop.bat --keep-llm garde le modèle local en mémoire vidéo
```

La passerelle, les bulles de dialogue et le LLM local se démarrent et s'arrêtent eux aussi depuis le « Centre de contrôle » de Farsight : plus besoin de chercher d'autres scripts. **Arrêt complet** : double-cliquez sur `stop.bat`, ou cliquez sur « Tout arrêter » en haut à droite du Centre de contrôle — instances du jeu, IA, passerelle, bulles, modèle local utilisé par le système et serveur de Farsight s'arrêtent l'un après l'autre. Le serveur MCP est géré par les clients comme Claude : il n'est pas arrêté.

> **Fichier de configuration**
>
> `openwar3.json` est écrit automatiquement par `start.bat` et Farsight ; il ne contient que des chemins locaux et n'est pas versionné dans git. Pour changer les ports, ou l'adresse et le nom du modèle du LLM local, suivez `openwar3.example.json` et n'y écrivez que les valeurs qui diffèrent.

## Paramètres de play.py

```bash
python tools/play.py --bot my_bot.py --inst 9 --race 2 --enemy-race 1 --difficulty 3 --speed 200
python tools/play.py --bot my_bot.py --inst 9 --attach      # le jeu est déjà ouvert, ne connecter que le Bot
python tools/play.py --bot my_bot.py --fair                 # mode équitable : seul ce qui est dans le champ de vision est visible
```

| Paramètre | Défaut | Description |
|---|---|---|
| `--bot` | obligatoire | Chemin du fichier du Bot (il doit contenir une sous-classe de `Bot`) |
| `--inst` | `9` | Numéro d'instance. Évitez les numéros déjà utilisés par une instance en cours (la page « Instances et lancement » de Farsight indique ceux qui sont pris) |
| `--race` | `1` | Votre race : 1 Humains, 2 Orcs, 3 Morts-vivants, 4 Elfes de la nuit |
| `--enemy-race` | `0` | Race de l'adversaire |
| `--difficulty` | `2` | Difficulté de l'ordinateur adverse : 2 facile, 3 normal, 4 démentiel |
| `--speed` | `100` | Vitesse de jeu (en pourcentage, 200 = vitesse ×2) |
| `--map` | `default_map` de la configuration | Carte |
| `--attach` | | Ne lance pas le jeu, se connecte seulement à une instance déjà en cours |
| `--hz` | `5` | Nombre d'appels à `on_tick` par seconde |
| `--minutes` | `60` | Durée maximale d'exécution, en minutes (temps réel) |
| `--fair` | | [Mode équitable](https://war3ai.com/fr/docs/fair-mode/) |
| `--player` | | Numéro du joueur à commander (pour les matchs IA contre IA) |

> **Attention**
>
> Ne lancez pas le jeu avec `--minimize` : **quand la fenêtre est réduite, la simulation du jeu est arrêtée** (l'horloge n'avance pas), et le Bot attendra indéfiniment le début de la partie.

Vous pouvez aussi vous passer de `play.py` et utiliser directement la ligne de commande du SDK pour vous connecter à une instance déjà en cours :

```bash
python -m openwar3 run brains/examples/hello_bot.py --inst 5     # exécuter un Bot
python -m openwar3 status --inst 5                              # se connecter et afficher l'état de l'instantané / de la voie rapide
python -m openwar3 catalog                                      # afficher le catalogue de l'API
```

## Une fois que tout fonctionne

  - [Écrire votre premier Bot](https://war3ai.com/fr/docs/first-bot/): Partez d'un Bot minimal de 10 lignes et ajoutez pas à pas la production et l'attaque.
  - [Le faire écrire par un LLM](https://war3ai.com/fr/docs/ai-bot/): Copiez le modèle de prompt et décrivez votre stratégie en langage courant.

## Autovérification

```bash
python tools/run_tests.py          # SDK / cerveau de référence / couche réflexe / console / bulles / exemples, chaque suite dans un sous-processus
```

Les tests hors ligne n'ont pas besoin de lancer le jeu. Le « Centre de contrôle » de Farsight propose aussi une vérification de l'environnement, qui montre si chaque composant est bien installé.
