Perguntas frequentes
Isto é um cheat? Quais versões são suportadas? O que a IA vê e o que ela pode fazer? Dá para usar sem saber programar? …
Isto é um cheat?
Não. É uma interface de desenvolvimento para pesquisa e entretenimento com IA, usada apenas com um cliente que você possui legalmente, na sua máquina, em rede local ou em partidas criadas por você, contra o computador ou contra outras IAs. Ela não pode ser usada na Battle.net nem em qualquer servidor com anti-cheat, e não oferece nenhum recurso voltado a partidas contra pessoas reais. Veja os Limites de uso.
Quais versões do jogo são suportadas?
No momento, só o Warcraft III 1.27 (The Frozen Throne). As versões 1.24 ~ 1.28 compartilham a mesma estrutura de motor; o suporte a várias versões (tabela de símbolos por versão, busca por assinatura de bytes como fallback, autoteste na inicialização que gera a lista de capacidades) está na fase P4 do roadmap. A 1.29 em diante e o Reforged usam outro motor e precisariam de uma adaptação própria; por enquanto, não há compromisso com isso.
Ele modifica os arquivos do meu jogo?
Não. O runtime é injetado com o jogo em execução e não modifica o Game.dll no disco nem qualquer arquivo do jogo. Para abrir várias instâncias, ele apenas copia e renomeia o lançador original War3.exe, sem alterá-lo. Os dados do jogo (tabelas de unidades etc.) são extraídos do seu próprio jogo e não são distribuídos com o código.
O que a IA consegue ver?
Basicamente tudo o que um jogador profissional gostaria de saber, atualizado a cada 50 ms:
- ouro, madeira e comida de todos os jogadores; posição, vida e mana, ordem atual, quem cada unidade está atacando, nível e experiência de todas as unidades;
- nível e recarga restante das habilidades de heróis e unidades, buffs ativos, inventário;
- o que cada construção está treinando / pesquisando / construindo / melhorando, o progresso e se está travada por falta de comida;
- itens no chão, árvores, a grade andável / construível do mapa, pontos de início, horário do jogo (dia e noite);
- fluxo de eventos: unidades aparecendo e morrendo, cada golpe de dano (quem atacou, tipo de ataque, dano antes da armadura), abates, produção concluída, herói subindo de nível…
- também dá para perguntar direto ao motor: se algo pode ser feito agora e, se não, por quê; o nível de uma tecnologia; se um ponto está visível; quanto ouro resta numa mina; para onde o computador adversário vai levar as tropas.
Além disso, o SDK já calcula os atributos de combate (counters, armadura, melhorias de ataque/armadura), “quantos segundos para matar” e os caminhos por terra. Todas as APIs estão no catálogo da API.
O que a IA consegue fazer?
Praticamente tudo o que um jogador faz: mover, atacar-mover, atacar um alvo, parar, manter posição, patrulhar, atacar o chão, coletar, reparar, construir (com escolha automática de local), treinar / pesquisar / melhorar, cancelar, aprender habilidades, lançar feitiços (em unidade / em ponto / sem alvo), ponto de encontro, reviver heróis, pegar / usar / largar / dar / vender itens, comprar, Call to Arms; fila com Shift, marcha por pontos de caminho, um trabalhador construindo várias em sequência; e ainda velocidade do jogo, pausa e balões de fala. Todo comando tem recibo.
Além das ações de jogador, dá para desenhar seus próprios painéis e marcações na tela do jogo (Canvas) e, em partidas solo, chamar as 1291 funções JASS disponíveis para autores de mapas (Canal JASS).
Dá para usar em mapas RPG / personalizados?
Dá. Escolha um mapa RPG, selecione o esquema “Exemplo de companheiro” para a instância e, depois que a partida começar, jogue você mesmo: um parceiro de IA vai andar ao seu lado, ajudando a lutar, curando você e conversando com você; veja Companheiro de RPG. g.map_data lê os nomes das unidades personalizadas do mapa; o Canal JASS cria unidades, define aliados, abre painéis… como jogar fica por sua conta. Operações que alteram o mundo só estão disponíveis em partidas solo (em partidas multijogador causam dessincronização); o canvas é seguro também em partidas multijogador.
Dá para usar sem saber programar?
Dá. Prepare o ambiente pelo Início rápido e depois veja Escreva um Bot com um LLM: você descreve a estratégia em linguagem comum e o LLM escreve o código; se algo der errado, conte a ele o erro ou o que você viu no jogo e peça a correção.
Só funciona com Python?
O SDK é em Python. Entre o runtime e os programas externos há apenas um protocolo de memória compartilhada (W3P), e qualquer linguagem que leia e escreva memória compartilhada do Windows pode se integrar. O jeito mais fácil é o gateway (WebSocket / JSON): JS, C#, Go, Rust, páginas de navegador e programas em outra máquina podem chamar as mesmas APIs; agentes de LLM podem se conectar direto pelo MCP.
Qual LLM é o melhor?
Qualquer modelo popular que saiba escrever código serve. O que importa não é o modelo, e sim dar a ele o material certo (manual + api.json + um exemplo) e exigir que ele use só métodos que existem no catálogo da API. Decisões em tempo real durante a partida (conselheiro, falas) são sensíveis à latência, e modelos MoE locais se saem muito bem; veja LLM como coach de estratégia e Balões de fala e modelos locais.
Isso deixa o jogo mais lento?
Uma coleta do estado do mundo leva uma mediana de 0.5 ~ 0.9 ms na thread do jogo (100 ~ 120 unidades), uma vez a cada 50 ms. Cada comando leva alguns microssegundos na thread do jogo; cada esvaziamento da fila tem um orçamento de 4 ms, e o que não couber fica para o próximo, sem travar o jogo. Toda chamada ao jogo tem proteção contra exceções: se um Bot quebrar, só aquele lado para; o jogo não cai.
Dá para abrir vários jogos ao mesmo tempo?
Dá. O runtime/farm.py orquestra várias instâncias, cada uma com um número; você as inicia e para no console Farsight. O seu Bot se conecta a uma instância específica com --inst N.
Dá para pôr duas IAs para se enfrentar?
Abrir dois canais player na mesma partida (--player 0 / --player 1) já é IA contra IA. No modo local, o jogo limpo depende de um acordo entre as partes; partidas oficiais com árbitro, filtro de visão e verificação de propriedade ficam na Arena (fase P6).
Funciona no Mac / Linux?
No momento, só no Windows 10 / 11.
Qual é a licença?
A licença será publicada junto com a versão oficial. Componentes de terceiros mantêm suas próprias licenças (por exemplo, MinHook é BSD-2); o AMAI tem licença própria, e os dados derivados dele não são distribuídos com o projeto: eles são baixados do repositório público do AMAI e gerados durante a instalação.
Onde relatar problemas?
Um canal para relatar problemas será aberto após o lançamento oficial. Ao relatar, inclua o número da instância, a saída de python -m openwar3 status e os passos para reproduzir. Antes, veja se Depuração e desempenho resolve.