# Inicio rápido

> Doble clic en start.bat y todo se instala solo; configura el directorio del juego en Farsight, lanza una partida y mira cómo un Bot de ejemplo toma el control. Unos 15 minutos.

Fuente: https://war3ai.com/es/docs/quickstart/

## Lo que necesitas

| | Requisito | Notas |
|---|---|---|
| Sistema | Windows 10 / 11, 64 bits | Por ahora solo se admite Windows |
| Juego | Warcraft III **1.27a** (The Frozen Throne, `Game.dll` 1.27.0.52240) | Un cliente que poseas legalmente; no se modifica ningún archivo del juego en disco |

**No hace falta instalar nada más antes.** `start.bat` descarga una sola cosa: Python 3.13 (paquete portátil oficial, unos 14 MB), que coloca en `bin\env\` dentro del repositorio; no pide permisos de administrador, no cambia el PATH del sistema y, desde redes de China continental, cambia automáticamente a servidores espejo. Si tu equipo ya tiene una versión de Python que sirve, la usa directamente. El PowerShell es el que trae Windows; la web de Farsight se entrega ya compilada con el repositorio, así que no hace falta Node.js.

## Instalación

1. **Consigue el código**

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

   O descarga el [archivo comprimido](https://github.com/OPENXXAI/OpenWar3AI/archive/refs/heads/main.zip) y descomprímelo. El runtime (la DLL de inyección y el lanzador) viene incluido en el repositorio; no hay que descargarlo aparte.

2. **Haz doble clic en `start.bat`**

   La primera vez, él solo:

   - descarga Python 3.13;
   - instala los paquetes de Python y, tras comprobar los archivos del runtime, los deja instalados;
   - descarga AMAI y genera los datos de estrategia que usa el cerebro de referencia (AMAI tiene una licencia propia y lo generado no entra en git; si falla, solo afecta al cerebro de referencia);
   - abre la página de inicio de Farsight, el "Centro de control": `http://127.0.0.1:8866`.

   Cada paso imprime su resultado y, si alguno falla, te dice cómo completarlo. Las veces siguientes, cada doble clic solo hace una comprobación de uno o dos segundos y abre Farsight.

   La ventana negra se cierra sola a los pocos segundos: Farsight sigue ejecutándose en segundo plano y no se detiene aunque cierres el navegador.

3. **Configura el directorio del juego en el Centro de control**

   En la parte superior del Centro de control puedes usar "Buscar automáticamente" o elegir tú el directorio de Warcraft III con "Examinar…". Farsight comprueba la versión del juego y **extrae los datos de tu propio juego** (tabla de unidades, habilidades, objetos, tabla de counters…; los archivos de Blizzard no se distribuyen con el código).

   Si la versión no es la 1.27a, te avisa. Los mapas y la configuración de la siguiente partida son relativos a este directorio (se pueden elegir los mapas de todas las carpetas de `<directorio del juego>\Maps`); para cambiar de directorio más adelante, ve a la página "Ajustes".

4. **Lanza una partida y deja que un Bot de ejemplo tome el control**

   Lo más cómodo es ir a la página "Instancias y partida" de Farsight, marcar un número de instancia, elegir un esquema de IA y pulsar "Iniciar prueba". También puedes usar la línea de comandos:

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

   Este comando arranca una instancia del juego, inyecta el runtime, inicia la partida automáticamente y luego lanza el Bot. **Si ves a los campesinos ir a la mina y al ayuntamiento entrenar campesinos, ya está.**

   El `python` del comando es el que figura en `openwar3.json`; el que instala `start.bat` por su cuenta está en `bin\env\python\python.exe`.

## start.bat y stop.bat

```bash
start.bat              # comprobación del despliegue + abre Farsight
start.bat setup        # comprobación completa: reinstala los paquetes de Python, reintenta AMAI
start.bat restart      # solo reinicia el backend de Farsight (el juego y los servicios no se ven afectados)
start.bat node         # instala además una copia de Node.js (solo hace falta para previsualizar la web; normalmente no se usa)
start.bat 5 6          # además inicia la prueba en las instancias 5 y 6 (juego + cerebro de referencia)
stop.bat               # lo detiene todo por completo; stop.bat --keep-llm deja el modelo local en la VRAM
```

La pasarela, las burbujas de diálogo y el LLM local también se inician y se detienen desde el "Centro de control" de Farsight, sin tener que buscar otros scripts. **Para detenerlo todo por completo**: haz doble clic en `stop.bat` o pulsa "Detener todo" en la esquina superior derecha del Centro de control; se detienen por orden las instancias del juego, la IA, la pasarela, las burbujas, el modelo local que usa este sistema y el backend de Farsight. El servidor MCP lo gestionan clientes como Claude, así que no se detiene.

> **Archivo de configuración**
>
> `openwar3.json` lo escriben automáticamente `start.bat` y Farsight; solo guarda rutas locales y no entra en git. Si quieres cambiar los puertos o la dirección y el nombre del modelo del LLM local, toma como referencia `openwar3.example.json` y escribe solo las opciones que difieran de él.

## Parámetros 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      # el juego ya está abierto; solo conecta el Bot
python tools/play.py --bot my_bot.py --fair                 # modo justo: solo ve lo que está en su campo de visión
```

| Parámetro | Por defecto | Descripción |
|---|---|---|
| `--bot` | Obligatorio | Ruta del archivo del Bot (debe contener una subclase de `Bot`) |
| `--inst` | `9` | Número de instancia. No uses el de una instancia que ya esté en marcha (la página "Instancias y partida" de Farsight muestra qué números están en uso) |
| `--race` | `1` | Nuestra raza: 1 Humanos, 2 Orcos, 3 No-muertos, 4 Elfos de la noche |
| `--enemy-race` | `0` | Raza del rival |
| `--difficulty` | `2` | Dificultad del ordenador: 2 fácil, 3 normal, 4 demente |
| `--speed` | `100` | Velocidad de juego (porcentaje; 200 = 2×) |
| `--map` | `default_map` de la configuración | Mapa |
| `--attach` | | No arranca el juego; solo se conecta a una instancia ya en marcha |
| `--hz` | `5` | Cuántas veces por segundo se llama a `on_tick` |
| `--minutes` | `60` | Duración máxima en minutos (reloj real) |
| `--fair` | | [Modo justo](https://war3ai.com/es/docs/fair-mode/) |
| `--player` | | Número de jugador que controla el Bot (para IA contra IA) |

> **Atención**
>
> No arranques el juego con `--minimize`: **con la ventana minimizada, la simulación del juego se detiene** (el reloj no avanza) y el Bot se quedará esperando para siempre a que empiece la partida.

También puedes prescindir de `play.py` y conectarte a una instancia ya en marcha con la línea de comandos del SDK:

```bash
python -m openwar3 run brains/examples/hello_bot.py --inst 5     # ejecutar el Bot
python -m openwar3 status --inst 5                              # conectar e imprimir el estado de la instantánea / del carril rápido
python -m openwar3 catalog                                      # imprimir el catálogo de la API
```

## Cuando ya funcione

  - [Escribe tu primer Bot](https://war3ai.com/es/docs/first-bot/): Empieza con un Bot mínimo de 10 líneas y añade paso a paso tropas y ataques.
  - [Deja que un LLM lo escriba por ti](https://war3ai.com/es/docs/ai-bot/): Copia la plantilla de prompt y describe tu estrategia con palabras sencillas.

## Autocomprobación

```bash
python tools/run_tests.py          # SDK / cerebro de referencia / capa de reflejos / consola / bocadillos / ejemplos, cada suite en un subproceso
```

Los tests offline no necesitan abrir el juego. En el "Centro de control" de Farsight también hay una comprobación del entorno que muestra si cada parte está instalada.
