# 자주 묻는 질문

> 핵인가요? 어떤 버전을 지원하나요? AI는 무엇을 보고 무엇을 할 수 있나요? 프로그래밍을 몰라도 쓸 수 있나요?……

출처: https://war3ai.com/ko/docs/faq/

## 핵인가요?

아닙니다. AI 연구와 오락을 위한 개발 인터페이스로, **여러분이 합법적으로 소유한 클라이언트**에서만 사용하며 로컬, LAN, 직접 만든 게임에서 컴퓨터나 다른 AI와 대전하는 용도입니다. **Battle.net이나 안티치트가 있는 어떤 서버에서도 사용할 수 없으며**, 사람 간 대전을 겨냥한 기능도 전혀 제공하지 않습니다. 자세한 내용은 [이용 범위](https://war3ai.com/ko/docs/legal/)를 참고하세요.

## 어떤 게임 버전을 지원하나요?

현재는 **워크래프트 III 1.27**(프로즌 쓰론)만 지원합니다. 1.24 ~ 1.28은 같은 엔진 구조이며, 다중 버전 지원(버전별 심볼 테이블 선택, 시그니처 스캔 폴백, 시작 시 자가 점검으로 기능 목록 생성)은 [로드맵](https://war3ai.com/ko/roadmap/)의 P4 단계에 있습니다. 1.29 이후 버전과 리포지드는 다른 엔진이라 별도 지원이 필요하며, 현재는 약속하지 않습니다.

## 게임 파일을 수정하나요?

아닙니다. 런타임은 게임 실행 중에 주입되며, **디스크의 Game.dll**이나 어떤 게임 파일도 **수정하지 않습니다**. 여러 개를 띄울 때도 원본 `War3.exe` 런처를 그대로 복사해 이름만 바꿉니다. 게임 데이터(유닛 테이블 등)는 여러분의 게임에서 추출하며, 코드와 함께 배포하지 않습니다.

## AI는 무엇을 볼 수 있나요?

기본적으로 프로 선수가 알고 싶어 하는 모든 것이며, 50 ms마다 갱신됩니다.

- 모든 플레이어의 금, 목재, 식량. 모든 유닛의 위치, 체력/마나, 현재 오더, **현재 공격 대상**, 레벨과 경험치
- 영웅과 유닛의 스킬 레벨과 남은 쿨다운, 걸려 있는 버프, 인벤토리
- 건물마다 무엇을 훈련 / 연구 / 건설 / 업그레이드하고 있는지, 진행률, 식량 때문에 막혔는지
- 바닥의 아이템, 나무, 맵의 이동 가능 / 건설 가능 그리드, 시작 위치, 게임 내 시각(낮과 밤)
- 이벤트 스트림: 유닛 등장과 사망, **피해 한 번 한 번**(누가 공격했는지, 공격 유형, 방어력 적용 전 피해), 처치, 생산 완료, 영웅 레벨 업……
- 엔진에 직접 물어볼 수도 있습니다. 어떤 일을 지금 할 수 있는지, 왜 안 되는지, 어떤 기술이 몇 레벨인지, 어떤 지점이 보이는지, 금광에 금이 얼마나 남았는지, 컴퓨터 상대가 병력을 이끌고 어디를 치려는지.

그 위에 SDK가 전투 속성(상성, 방어력, 공격/방어 업그레이드), "처치까지 몇 초 걸리는지", 지상 경로 탐색까지 계산해 둡니다. 전체 API는 [API 카탈로그](https://war3ai.com/ko/api/)에서 볼 수 있습니다.

## AI는 무엇을 할 수 있나요?

플레이어가 할 수 있는 조작은 거의 모두 가능합니다. 이동, 공격 이동, 지정 대상 공격, 정지, 위치 사수, 순찰, 지면 공격, 채집, 수리, 건설(위치 자동 탐색 가능), 훈련 / 연구 / 업그레이드, 취소, 스킬 습득, 시전(유닛 대상 / 지점 대상 / 대상 없음), 집결 지점, 영웅 부활, 아이템 줍기 / 사용 / 버리기 / 건네기 / 팔기, 구매, Call to Arms. Shift 대기열, 경유점 행군, 일꾼 한 명이 여러 채를 연속으로 짓기도 됩니다. 게임 속도, 일시 정지, 머리 위 말풍선도 있습니다. 모든 명령에는 회신이 있습니다.

플레이어의 조작 외에도, 게임 화면 위에 나만의 패널과 표시를 그리거나([캔버스](https://war3ai.com/ko/docs/canvas/)), 싱글플레이 게임에서 맵 제작자가 쓸 수 있는 JASS 함수 1291개를 호출할 수 있습니다([JASS 채널](https://war3ai.com/ko/docs/jass/)).

## RPG / 커스텀 맵에서도 쓸 수 있나요?

네. RPG 맵을 고르고 인스턴스에 "동료 예제(buddy)" 스킴을 선택한 뒤 게임을 시작해 직접 플레이하면, 전투를 돕고 체력을 채워 주고 말동무가 되어 주는 AI 동료가 곁을 따라다닙니다. [RPG 동료](https://war3ai.com/ko/docs/companion/)를 참고하세요. `g.map_data`로 맵의 커스텀 유닛 이름을 읽을 수 있고, [JASS 채널](https://war3ai.com/ko/docs/jass/)로 유닛 생성, 동맹 설정, 패널 띄우기 등을 할 수 있습니다…… 어떻게 놀지는 여러분이 정합니다. 월드를 바꾸는 조작은 싱글플레이 게임에서만 쓸 수 있고(멀티플레이에서는 동기화가 어긋남), 캔버스는 멀티플레이 게임에서도 안전합니다.

## 프로그래밍을 몰라도 쓸 수 있나요?

네. [빠른 시작](https://war3ai.com/ko/docs/quickstart/)에 따라 환경을 설치한 다음 [LLM으로 Bot 만들기](https://war3ai.com/ko/docs/ai-bot/)를 보세요. 여러분이 쉬운 말로 전략을 설명하면 LLM이 코드를 씁니다. 실행해 보고 문제가 있으면 오류 메시지나 게임에서 본 현상을 알려 주고 고치게 하면 됩니다.

## Python만 쓸 수 있나요?

SDK는 Python입니다. 런타임과 외부 프로그램 사이에는 공유 메모리 프로토콜([W3P](https://war3ai.com/ko/docs/protocol/)) 하나만 있으므로, Windows 공유 메모리를 읽고 쓸 수 있는 언어라면 무엇이든 연결할 수 있습니다. 더 간단한 방법은 [게이트웨이](https://war3ai.com/ko/docs/gateway/)(WebSocket / JSON)입니다. JS, C#, Go, Rust, 브라우저 페이지, 다른 컴퓨터의 프로그램 모두 같은 API를 호출할 수 있고, LLM Agent는 [MCP](https://war3ai.com/ko/docs/mcp/)로 바로 연결할 수 있습니다.

## 어떤 LLM이 가장 좋나요?

코드를 쓸 수 있는 주요 모델이라면 모두 됩니다. 핵심은 모델이 아니라 **올바른 자료를 주는 것**(매뉴얼 + `api.json` + 예제 하나)이며, API 카탈로그에 있는 메서드만 쓰도록 요구하는 것입니다. 게임 중 실시간 의사결정(참모, 유닛 대사)은 지연에 민감한데, 로컬 MoE 모델이 좋은 성능을 보입니다. [LLM 참모](https://war3ai.com/ko/docs/llm-coach/)와 [말풍선과 로컬 모델](https://war3ai.com/ko/docs/speech/)을 참고하세요.

## 게임이 느려지나요?

월드 상태 수집 1회는 게임 스레드에서 중앙값 0.5 ~ 0.9 ms(유닛 100 ~ 120개)이며, 50 ms마다 한 번 수행됩니다. 명령은 게임 스레드에서 건당 몇 마이크로초가 걸리고, 한 번 비울 때 4 ms의 시간 예산이 있어 다 처리하지 못한 것은 다음으로 넘기므로 게임을 붙잡지 않습니다. 게임에 대한 모든 호출에는 예외 보호가 있어서, Bot이 죽어도 그쪽만 멈출 뿐 게임까지 죽지는 않습니다.

## 여러 게임을 동시에 띄울 수 있나요?

네. `runtime/farm.py`이 다중 인스턴스 오케스트레이션을 맡으며, 인스턴스마다 번호가 하나씩 붙습니다. [Farsight 콘솔](https://war3ai.com/ko/docs/console/)에서 시작하고 중지합니다. 여러분의 Bot은 `--inst N`으로 지정한 인스턴스에 연결합니다.

## AI 두 개를 서로 싸우게 할 수 있나요?

같은 게임에서 `player` 채널을 두 개(`--player 0` / `--player 1`) 열면 AI 대 AI가 됩니다. 로컬 모드에서 공정성은 약속에 의존합니다. 심판, 시야 필터링, 소유권 검증을 갖춘 정식 대전은 [아레나](https://war3ai.com/ko/arena/)(P6 단계)에서 제공합니다.

## Mac / Linux를 지원하나요?

현재는 Windows 10 / 11만 지원합니다.

## 라이선스는 무엇인가요?

라이선스는 정식 버전과 함께 공개합니다. 서드파티 구성 요소는 각자의 라이선스를 유지합니다(예: MinHook은 BSD-2). AMAI는 자체 라이선스이므로 그 파생 데이터는 프로젝트와 함께 배포하지 않으며, 설치할 때 AMAI 공개 저장소에서 받아와 생성합니다.

## 문제가 생기면 어디에 알리나요?

정식 버전 출시 후 이슈 제보 채널을 열 예정입니다. 제보할 때는 인스턴스 번호, `python -m openwar3 status`의 출력, 재현 단계를 첨부해 주세요. 먼저 [디버깅과 성능](https://war3ai.com/ko/docs/debugging/)으로 해결되는지 확인해 보세요.
