Docs Empezar

Visión general de la documentación

Documentación de OpenWar3: qué es, qué hace; Inicio rápido, Tu primer Bot, Escribe un Bot con un LLM, API y protocolo, Pasarela y MCP — por dónde empezar depende de tu caso.

OpenWar3 es la capa de interfaz abierta de War3AI: un runtime que se inyecta en Warcraft III 1.27, más un SDK de Python.

  • Cada 50 ms, el runtime publica en memoria compartida el estado completo de todo el mapa: recursos y comida de todos los jugadores; vida, maná, órdenes, a quién ataca, enfriamientos de habilidades, buffs e inventario de todas las unidades; objetos en el suelo, árboles, colas de producción, día y noche. También hay un flujo de eventos: unidades que aparecen y mueren, cada golpe de daño, producción completada…
  • Los programas externos envían comandos semánticos con una latencia de aproximadamente un fotograma: mover, atacar, recolectar, construir, entrenar, lanzar hechizos, aprender habilidades, revivir, usar objetos, comprar… Cada comando tiene su recibo, que indica si el motor lo aceptó y, si no, el código de motivo.
  • Tú solo dices “qué hacer”: las unidades se nombran por código de cuatro caracteres y las habilidades por nombre de orden, igual que en el juego; “cómo lograrlo” es cosa del runtime.

Por eso un LLM no necesita ningún conocimiento de bajo nivel ni mirar la pantalla. Tras leer la documentación puede escribir un Bot que gestiona la economía y sabe combatir y, una vez en partida, corregirlo él mismo a partir de los recibos y los eventos.

Y no solo para combatir: el lienzo dibuja tus propios paneles y marcas sobre la pantalla del juego, Interfaz y entrada hace que los botones dibujados se puedan pulsar y que los atajos de teclado respondan, el canal JASS llama desde fuera a las 1291 funciones del juego y, en los mapas RPG, puedes llevar tu propio compañero IA. La IA que escribas se puede convertir en un esquema: se cambia con un clic y se exporta para compartirla; un modo de juego nuevo completo se puede escribir como mod de juego.

También sin escribir Python: la pasarela permite a cualquier lenguaje o página web llamar a las mismas interfaces por WebSocket / JSON, y el servidor MCP permite que agentes como Claude Code llamen directamente a herramientas para ver la partida y dar órdenes.

Elige un camino según tu caso

Si…Empieza porDespués
Juegas a Warcraft pero no sabes programarInicio rápido → Escribe un Bot con un LLMSi algo falla, consulta las Preguntas frecuentes
Sabes PythonTu primer Bot → Modelo mental → Las quince reglasRecetario de juego pro, Bots de ejemplo
Construyes un coding agent / automatizaciónIteración autónoma del agenteRecibos y códigos de motivo, llms-full.txt
Quieres que un LLM tome decisiones durante la partidaEl LLM como asesorBurbujas y modelos locales
Quieres que un agente actúe directamente (Claude Code, etc.)El LLM usa herramientas directamente (MCP)Interfaz y entrada
Usas otro lenguaje (JS, C#, Go, Rust…)PasarelaMás a bajo nivel: Protocolo W3P
Quieres enfrentar IA de distintas personasModo justoArena
Quieres crear tu propio modo de juego en mapas RPG / personalizadosMods de juegoInterfaz y entrada, Lienzo, Canal JASS, Compañero para RPG
Quieres compartir tu IA con otrosEsquemas de IAConsola Farsight

Qué hay en el repositorio

start.bat       Único punto de entrada: despliegue desde cero + abre Farsight; stop.bat lo detiene todo por completo
sdk/python/     Capa de interfaz. openwar3/ es la fachada pública (Game + Bot): empieza por aquí
brains/         Capa de decisión
  examples/       hello_bot (economía) → rush_bot (tropas) → macro_bot (macro) → micro_bot (micro + creeping); buddy (compañero para RPG);
                  mod_hero_roguelike / mod_endless_defense (mods de juego)
  xwar3/          Cerebro de referencia: capa de estrategia (segundos) + capa de reflejos (4 procesos) + modelo de victoria
console/        Consola web Farsight (FastAPI + React)
gateway/        Pasarela (WebSocket / JSON) + cliente JS + página de demostración para el navegador
director/       Cámara automática, barras de vida sobre las unidades
speech/         Burbujas de diálogo + LLM local
runtime/        Orquestación multiinstancia (cada partida se reinicia según su configuración)
data/           order-ids.txt; herramientas para extraer datos de tu propia copia del juego
schemes/        Tus esquemas de IA (mine/) y los que comparten otros (installed/); no entran en el repositorio
tools/          play.py (una partida con un comando), run_scheme.py (ejecutor de esquemas), war3_mcp.py (servidor MCP), run_tests.py, scripts de verificación en vivo
docs/           Catálogo de API api.json (generado desde el código), protocolo, manual

Entre el runtime y tu código solo hay un protocolo W3P versionado: el SDK de Python es lo más cómodo, pero también puedes conectarte desde otro lenguaje siguiendo el protocolo.

Qué significa el “estado de pruebas” de una interfaz

Cada interfaz del catálogo lleva uno de estos tres estados:

  • Verificado en partida: la ruta de bajo nivel (ID de acción, forma de los parámetros, efecto leído) se ha verificado en partidas reales y la protege un script de verificación.
  • Experimental: interfaz nueva que ya funciona en la instancia de prueba y se está verificando punto por punto en partidas reales. Se puede usar, pero los detalles de la interfaz aún pueden cambiar.
  • Inferido / no probado del todo: el mecanismo copia lo que hace el propio motor (por ejemplo, la función JASS equivalente), pero aún no se ha comprobado punto por punto en partida. Revisa el recibo antes de fiarte.

Por ahora solo se admite Warcraft III 1.27 (The Frozen Throne). Las versiones 1.24 ~ 1.28 comparten la misma estructura de motor, y el soporte multiversión es la fase P4 de la hoja de ruta. A partir de 1.29, y en Reforged, el motor es otro y queda fuera de lo que prometemos.