# Schnellstart

> Doppelklick auf start.bat installiert alles automatisch; in Farsight das Spielverzeichnis festlegen, eine Partie starten und zusehen, wie der Beispiel-Bot übernimmt. Etwa 15 Minuten.

Quelle: https://war3ai.com/de/docs/quickstart/

## Was du brauchst

| | Anforderung | Hinweis |
|---|---|---|
| System | Windows 10 / 11, 64 Bit | Derzeit wird nur Windows unterstützt |
| Spiel | Warcraft III **1.27a** (The Frozen Throne, `Game.dll` 1.27.0.52240) | Ein Client, den du rechtmäßig besitzt; keine Spieldatei auf der Festplatte wird verändert |

**Sonst musst du nichts vorab installieren.** `start.bat` lädt nur eine Sache herunter: Python 3.13 (offizielles portables Paket, ca. 14 MB), das ins `bin\env\`-Verzeichnis im Repository kommt – ohne Administratorrechte und ohne Änderung am System-PATH; in Netzen in China wird automatisch auf Mirror-Server umgeschaltet. Ist auf dem Rechner schon eine brauchbare Python-Version vorhanden, wird sie direkt verwendet. PowerShell nutzt die in Windows enthaltene Version; die Weboberfläche von Farsight liegt dem Repository bereits fertig gebaut bei, Node.js wird nicht benötigt.

## Installation

1. **Code holen**

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

   Oder das [ZIP-Archiv](https://github.com/OPENXXAI/OpenWar3AI/archive/refs/heads/main.zip) herunterladen und entpacken. Die Runtime (Injektions-DLL und Starter) liegt dem Repository bei und muss nicht separat heruntergeladen werden.

2. **`start.bat` doppelklicken**

   Beim ersten Mal erledigt es selbst:

   - Python 3.13 herunterladen;
   - Python-Pakete installieren, die Runtime-Dateien prüfen und einrichten;
   - AMAI herunterladen und daraus die Strategiedaten für das Referenz-Brain erzeugen (AMAI steht unter einer eigenen Lizenz, die erzeugten Dateien landen nicht in git; ein Fehlschlag betrifft nur das Referenz-Brain);
   - die Startseite von Farsight öffnen, das „Kontrollzentrum“: `http://127.0.0.1:8866`.

   Jeder Schritt gibt sein Ergebnis aus; bei einem fehlgeschlagenen Schritt erfährst du, wie du ihn nachholst. Danach prüft jeder Doppelklick nur ein, zwei Sekunden lang und öffnet dann Farsight.

   Das schwarze Fenster schließt sich nach ein paar Sekunden von selbst: Farsight läuft im Hintergrund weiter und stoppt auch nicht, wenn du den Browser schließt.

3. **Im Kontrollzentrum das Spielverzeichnis festlegen**

   Ganz oben im Kontrollzentrum kannst du „Automatisch suchen“ oder über „Durchsuchen …“ das Verzeichnis von Warcraft III selbst auswählen. Farsight prüft die Spielversion und **extrahiert Daten aus deinem eigenen Spiel** (Einheitentabelle, Fähigkeiten, Gegenstände, Kontertabelle … die Dateien von Blizzard werden nicht mit dem Code verteilt).

   Ist die Version nicht 1.27a, bekommst du einen Hinweis. Karten und die Einstellungen für die nächste Partie beziehen sich auf dieses Verzeichnis (Karten aus allen Ordnern unter `<Spielverzeichnis>\Maps` stehen zur Auswahl); das Verzeichnis wechselst du später auf der Seite „Einstellungen“.

4. **Partie starten und den Beispiel-Bot übernehmen lassen**

   Am einfachsten geht es in Farsight auf der Seite „Instanzen & Start“: eine Instanznummer ankreuzen, ein KI-Schema wählen und auf „Test starten“ klicken. Oder über die Kommandozeile:

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

   Dieser Befehl startet eine Spielinstanz, injiziert die Runtime, beginnt automatisch eine Partie und startet dann den Bot. **Wenn die Bauern Gold sammeln gehen und das Hauptgebäude Bauern trainiert, hat alles geklappt.**

   Mit `python` im Befehl ist das in `openwar3.json` eingetragene Python gemeint; das von `start.bat` selbst installierte liegt unter `bin\env\python\python.exe`.

## start.bat und stop.bat

```bash
start.bat              # Installation prüfen + Farsight öffnen
start.bat setup        # vollständige Prüfung: Python-Pakete neu installieren, AMAI erneut versuchen
start.bat restart      # nur das Farsight-Backend neu starten (Spiele und Dienste laufen weiter)
start.bat node         # installiert nebenbei eine Kopie von Node.js (nur nötig, um die Website in der Vorschau zu bauen – sonst nicht gebraucht)
start.bat 5 6          # startet zusätzlich Tests auf Instanz 5 und 6 (Spiel + Referenz-Brain)
stop.bat               # alles vollständig stoppen; stop.bat --keep-llm lässt das lokale Modell im VRAM
```

Gateway, Sprechblasen und lokales LLM startest und stoppst du ebenfalls im „Kontrollzentrum“ von Farsight, ohne nach weiteren Skripten suchen zu müssen. **Alles vollständig stoppen**: `stop.bat` doppelklicken oder im Kontrollzentrum oben rechts auf „Alle stoppen“ klicken – Spielinstanzen, KI, Gateway, Sprechblasen, das von diesem System genutzte lokale Modell und das Farsight-Backend werden der Reihe nach beendet. MCP-Server werden von Clients wie Claude verwaltet und nicht gestoppt.

> **Konfigurationsdatei**
>
> `openwar3.json` wird von `start.bat` und Farsight automatisch geschrieben, enthält nur lokale Pfade und landet nicht in git. Willst du Ports, Adresse oder Modellnamen des lokalen LLM ändern, trag nach dem Muster von `openwar3.example.json` nur die Einträge ein, die davon abweichen.

## Parameter von 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      # Spiel läuft schon, nur den Bot anhängen
python tools/play.py --bot my_bot.py --fair                 # Fair-Modus: nur sehen, was in Sichtweite ist
```

| Parameter | Standard | Beschreibung |
|---|---|---|
| `--bot` | Pflicht | Pfad zur Bot-Datei (sie muss eine Unterklasse von `Bot` enthalten) |
| `--inst` | `9` | Instanznummer. Darf nicht mit einer laufenden Instanz kollidieren (welche Nummern belegt sind, siehst du in Farsight auf der Seite „Instanzen & Start“) |
| `--race` | `1` | Eigenes Volk: 1 Menschen, 2 Orcs, 3 Untote, 4 Nachtelfen |
| `--enemy-race` | `0` | Volk des Gegners |
| `--difficulty` | `2` | Schwierigkeit des Computergegners: 2 Leicht, 3 Normal, 4 Wahnsinnig |
| `--speed` | `100` | Spielgeschwindigkeit (in Prozent, 200 = doppelte Geschwindigkeit) |
| `--map` | `default_map` aus der Konfiguration | Karte |
| `--attach` | | Kein Spiel starten, nur an eine bereits laufende Instanz anhängen |
| `--hz` | `5` | Wie oft pro Sekunde `on_tick` aufgerufen wird |
| `--minutes` | `60` | Maximale Laufzeit in Minuten (Echtzeit) |
| `--fair` | | [Fair-Modus](https://war3ai.com/de/docs/fair-mode/) |
| `--player` | | Als welcher Spieler befehligt wird (für KI gegen KI) |

> **Achtung**
>
> Starte das Spiel nicht mit `--minimize`: **Ist das Fenster minimiert, steht die Spielsimulation still** (die Uhr läuft nicht), und der Bot wartet endlos auf den Partiebeginn.

Du kannst `play.py` auch umgehen und dich direkt über die Kommandozeile des SDK an eine laufende Instanz anhängen:

```bash
python -m openwar3 run brains/examples/hello_bot.py --inst 5     # Bot ausführen
python -m openwar3 status --inst 5                              # verbinden, Status von Snapshot / Schnellspur ausgeben
python -m openwar3 catalog                                      # API-Katalog ausgeben
```

## Wenn alles läuft

  - [Deinen ersten Bot schreiben](https://war3ai.com/de/docs/first-bot/): Starte mit einem minimalen Bot aus 10 Zeilen und ergänze Schritt für Schritt Truppen und Angriffe.
  - [Das LLM schreiben lassen](https://war3ai.com/de/docs/ai-bot/): Prompt-Vorlage kopieren und die Spielweise in Alltagssprache beschreiben.

## Selbsttest

```bash
python tools/run_tests.py          # SDK / Referenz-Brain / Reflexschicht / Konsole / Sprechblasen / Beispiele, jede Suite in einem eigenen Unterprozess
```

Für die Offline-Tests muss das Spiel nicht laufen. Auch im „Kontrollzentrum“ von Farsight gibt es eine Umgebungsprüfung, die zeigt, ob alle Teile installiert sind.
