Docs Start

Ü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 zuerstDanach
spielst Warcraft, programmierst aber nichtSchnellstart → Einen Bot mit einem LLM schreibenBei Problemen: FAQ
kannst PythonDein erster Bot → Mentales Modell → Die 15 RegelnProfi-Kochbuch, Beispiel-Bots
baust Coding Agents / AutomatisierungAgent-SelbstiterationQuittungen & Reason-Codes, llms-full.txt
willst ein LLM im Spiel entscheiden lassenLLM als Strategie-CoachSprechblasen & 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 …)GatewayTiefer: W3P-Protokoll
willst KIs verschiedener Leute gegeneinander antreten lassenFair-ModusArena
willst auf RPG- / Custom Maps eigene Spielideen bauenGameplay-ModsOberfläche & Eingabe, Canvas, JASS-Kanal, RPG-Begleiter
willst deine KI mit anderen teilenKI-SchemataFarsight-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.