Überblick
OpenWar3-Doku: was es ist, was es kann; Schnellstart, dein erster Bot, KI schreibt Bots, APIs und Protokoll, Gateway und MCP – je nach Situation, wo du am besten einsteigst.
OpenWar3 ist die offene Schnittstellenschicht von War3AI: eine Runtime, die in Warcraft III 1.27 injiziert wird, plus ein Python-SDK.
- Die Runtime schreibt alle 50 ms den vollständigen Zustand der ganzen Karte in Shared Memory: Ressourcen und Nahrung aller Spieler; für jede Einheit HP/Mana, Order, wen sie gerade angreift, Abklingzeiten, Buffs und Inventar; dazu Gegenstände am Boden, Bäume, Produktionswarteschlangen und Tageszeit. Außerdem gibt es einen Event-Stream: Einheiten erscheinen und sterben, jeder einzelne Treffer, fertige Produktion …
- Externe Programme senden semantische Befehle mit einer Latenz von etwa einem Frame: bewegen, angreifen, abbauen, bauen, ausbilden, zaubern, Fähigkeiten lernen, wiederbeleben, Gegenstände benutzen, einkaufen … Jeder Befehl erhält eine Quittung: ob die Engine ihn angenommen hat und, falls nicht, mit welchem Reason-Code.
- Du sagst nur, was passieren soll: Einheiten per Rawcode, Fähigkeiten per Order-String, genau wie im Spiel. Wie es umgesetzt wird, übernimmt die Runtime.
Ein LLM braucht deshalb weder Low-Level-Wissen noch das Bild auf dem Bildschirm. Nach dem Lesen der Docs kann es einen Bot schreiben, der seine Wirtschaft führt und kämpft – und ihn nach dem Einsatz anhand von Quittungen und Events selbst verbessern.
Und nicht nur Matches: Mit dem Canvas zeichnest du eigene Panels und Markierungen ins Spielbild, mit Oberfläche & Eingabe werden die gezeichneten Buttons klickbar und Hotkeys reagieren, über den JASS-Kanal rufst du von außen die 1291 Funktionen des Spiels auf, und auf RPG-Karten holst du dir einen KI-Begleiter an die Seite. Fertige KIs lassen sich als KI-Schemata verpacken – per Klick gewechselt, exportiert und geteilt; ein ganzes neues Spielprinzip schreibst du als Gameplay-Mod.
Es geht auch ohne Python: Über das Gateway rufen jede Sprache und jede Browserseite dieselben APIs per WebSocket / JSON auf, und der MCP-Server lässt Agents wie Claude Code direkt Tools aufrufen, um die Lage zu sehen und Befehle zu erteilen.
Wähle deinen Einstieg
| Du … | Lies zuerst | Danach |
|---|---|---|
| spielst Warcraft, programmierst aber nicht | Schnellstart → Einen Bot mit einem LLM schreiben | Bei Problemen: FAQ |
| kannst Python | Dein erster Bot → Mentales Modell → Die 15 Regeln | Profi-Kochbuch, Beispiel-Bots |
| baust Coding Agents / Automatisierung | Agent-Selbstiteration | Quittungen & Reason-Codes, llms-full.txt |
| willst ein LLM im Spiel entscheiden lassen | LLM als Strategie-Coach | Sprechblasen & lokale Modelle |
| willst einen Agent direkt selbst steuern lassen (Claude Code usw.) | LLM ruft Tools direkt auf (MCP) | Oberfläche & Eingabe |
| nutzt eine andere Sprache (JS, C#, Go, Rust …) | Gateway | Tiefer: W3P-Protokoll |
| willst KIs verschiedener Leute gegeneinander antreten lassen | Fair-Modus | Arena |
| willst auf RPG- / Custom Maps eigene Spielideen bauen | Gameplay-Mods | Oberfläche & Eingabe, Canvas, JASS-Kanal, RPG-Begleiter |
| willst deine KI mit anderen teilen | KI-Schemata | Farsight-Konsole |
Was steckt im Repo?
start.bat der einzige Einstiegspunkt: Installation von null + Farsight öffnen; stop.bat stoppt alles vollständig
sdk/python/ API-Schicht. openwar3/ ist die öffentliche Fassade (Game + Bot) – hier anfangen
brains/ Entscheidungsschicht
examples/ hello_bot (Wirtschaft) → rush_bot (Armee) → macro_bot (Makro) → micro_bot (Mikro + Creepen); buddy (RPG-Begleiter);
mod_hero_roguelike / mod_endless_defense (Gameplay-Mods)
xwar3/ Referenz-Brain: Strategie-Schicht (Sekunden) + Reflex-Schicht (4 Prozesse) + Siegmodell
console/ Farsight-Webkonsole (FastAPI + React)
gateway/ Gateway (WebSocket / JSON) + JS-Client + Demoseite für den Browser
director/ automatische Kameraführung, HP-Balken über Einheiten
speech/ Chat-Sprechblasen über Einheiten + lokales LLM
runtime/ Multi-Instanz-Orchestrierung (jedes Spiel startet nach Einstellungen neu)
data/ order-ids.txt; Tools, um Daten aus deinem eigenen Spiel zu extrahieren
schemes/ deine KI-Schemata (mine/) und von anderen geteilte (installed/), nicht im Repo
tools/ play.py (Spiel mit einem Befehl starten), run_scheme.py (Schema-Runner), war3_mcp.py (MCP-Server), run_tests.py, Live-Prüfskripte
docs/ API-Katalog api.json (aus dem Code generiert), Protokoll, Handbuch
Zwischen der Runtime und deinem Code liegt nur ein versioniertes W3P-Protokoll: Mit dem Python-SDK geht es am einfachsten, aber jede andere Sprache kann sich anhand des Protokolls ebenfalls anbinden.
Was bedeutet der „Teststatus“ einer API?
Jede API im Katalog trägt einen von drei Status:
- Im Live-Spiel verifiziert: Der zugrunde liegende Pfad (Aktions-ID, Parameterform, zurückgelesene Wirkung) wurde in echten Spielen verifiziert und ist durch ein Prüfskript abgesichert.
- Experimentell: Eine neu hinzugefügte API, die auf der Testinstanz bereits läuft und noch Punkt für Punkt live verifiziert wird. Sie ist nutzbar, Details der Schnittstelle können sich aber noch ändern.
- Abgeleitet / nicht vollständig getestet: Der Mechanismus folgt dem Vorgehen der Engine selbst (etwa der entsprechenden JASS-Funktion), wurde aber noch nicht Punkt für Punkt im Spiel geprüft. Prüf vor der Verwendung die Quittung.
Derzeit wird nur Warcraft III 1.27 (The Frozen Throne) unterstützt. 1.24–1.28 teilen dieselbe Engine-Struktur; die Unterstützung mehrerer Versionen ist Phase P4 der Roadmap. Ab 1.29 und bei Reforged handelt es sich um eine andere Engine – dafür gibt es keine Zusage.