ChatGPT-6 Astra plays World of Warcraft 'blind' and clears the orc starting zone in 40 minutes with no deaths — AI agent navigates by parsing raw server network packets and SQL files
GPT-6 Astra, 화면 없이 월드 오브 워크래프트 오크 초보 지역을 40분 만에 공략
GPT-6 Astra가 화면 대신 서버 네트워크 패킷과 퀘스트 데이터로 월드 오브 워크래프트(WoW)의 오크 초보 지역을 40분 동안 사망 없이 완료했습니다. 실험은 실서버가 아닌 AzerothCore 개인 서버에서 진행했으며, 범용 에이전트가 게임별 봇을 따로 만들지 않고도 게임 상태를 파악하고 과제를 수행했다는 점이 토론의 쟁점입니다.
- 주제
AI 요약
OpenAI의 GPT-6 Astra가 캐릭터 화면을 보지 않고 월드 오브 워크래프트(WoW) 오크 초보 지역을 40분 만에 완료했습니다. 개발자 설명에 따르면 레벨 1 오크로 시작해 Valley of Trials의 퀘스트를 모두 끝내고 Sen’jin Village에 도착했으며, 사망은 없었습니다. 이 실험은 WoW 실서버가 아니라 로컬에서 운영하는 AzerothCore 개인 서버에서 진행했습니다.
화면 대신 서버 데이터 활용
개발자는 오픈소스 클라이언트 agent-wow를 Codex에서 단일 프롬프트로 실행했습니다. agent-wow는 이동, 전투, 상호작용 같은 게임 동작을 미리 구현하지 않습니다. 에이전트가 필요한 기능을 만들도록 모듈 시스템만 제공합니다. 서버는 WoW 3.3.5a를 실행하는 AzerothCore이며, 클라이언트는 게임 네트워크 프로토콜로 서버와 통신합니다.
에이전트는 화면 캡처를 분석하는 대신 서버 메시지 28종을 메모리에 모았습니다. Python 스크립트가 메시지를 주기적으로 확인해 게임 세계의 상태를 구성하고, 행동을 위한 메시지를 서버에 보냈습니다. 개발자는 처음에는 더 높은 수준의 구현을 예상했지만, 실제로는 프로토콜 계층에서 충분히 작동했다고 밝혔습니다.
퀘스트 정보는 AzerothCore의 SQL 파일에서 가져왔습니다. 퀘스트 시작 지점과 완료 지점, 몬스터 출현 위치를 찾아 순서를 계획했습니다. 개발자는 팬 사이트 Wowhead에서 사람이 퀘스트 정보를 조사하는 과정과 비슷하다고 설명했습니다. 다만 서버 자체의 파일을 참고하면 서버에서 실제로 사용하는 데이터와 일치한다는 장점이 있습니다.
경로 탐색과 퀘스트 수행
경로 탐색에는 개발자가 만든 C++ 도우미를 사용했습니다. AzerothCore의 내비게이션 메시 파일(mmaps)과 경로 탐색 라이브러리 Detour로 목적지까지의 경로를 계산하고, 좌표 형태의 경유지를 에이전트에 전달합니다. 완전한 경로를 찾지 못하면 오류를 반환합니다. 개발자는 경로 탐색이 휴리스틱 기반 봇의 주요 난제라고 언급하면서도, 이번 에이전트의 경로 탐색은 최적에 가까웠다고 평가했습니다. 맵의 충돌 정보가 빠진 지점에서 맵 오류를 이용한 경로도 찾았습니다.
에이전트는 선행 퀘스트를 순서대로 완료하고, 잡동사니를 팔고 장비를 교체했으며 능력도 배웠습니다. 지역 마지막 동굴에 들어가기 전 동굴 퀘스트 두 개를 함께 받아 한 번에 처리했습니다. 개발자는 다음 목표로 에이전트 하나가 혼자 레벨 80까지 성장하는지, 여러 에이전트가 협력해 게임 콘텐츠를 완료하는지 확인하겠다고 했습니다. 장기적으로는 AI 에이전트로 서버를 채워 영웅 난이도 Icecrown Citadel을 공략할 수 있는지도 시험하고 싶다고 밝혔습니다.
기존 봇과 다른 점
WoW 봇은 오랫동안 존재했지만, 이번 실험을 두고 커뮤니티에서는 기존 게임 전용 봇과 범용 AI 에이전트의 차이가 논쟁이 됐습니다. 일부는 오래된 게임에서 서버 데이터와 SQL 파일을 읽어 초보 지역을 완료한 일 자체는 대단하지 않다고 봤습니다. 다른 이용자들은 특정 게임에 맞춰 동작을 미리 작성한 봇과 달리, 에이전트가 주어진 데이터로 필요한 기능과 행동 계획을 구성했다는 점에 의미를 뒀습니다.
실험 환경도 구분해야 합니다. agent-wow는 로컬 개인 서버에서 실행되며 블리자드 실서버에 접속하지 않습니다. 따라서 이 시연이 실서버의 부정 행위 방지 시스템 Warden을 우회했다는 뜻은 아닙니다. 화면 대신 네트워크 패킷과 서버 파일을 사용한 방식이 실서버에서 통할지, 토큰과 실행 비용이 얼마나 드는지는 본문에서 확인되지 않았습니다.
Reddit 반응
- @u/Aceofluckz0r — 네트워크 패킷을 읽으려면 실행 중인 클라이언트 메모리에서 키를 가져와야 합니다. Warden은 대체로 그런 행동을 잡기 위해 있으니 이 방식은 쓸모가 없습니다. 기사에는 토큰을 얼마나 썼는지도 나오지 않는데, 효율이 좋지는 않을 것 같습니다. AI가 전반적으로 더 나은 봇을 만들고 개발 시간을 줄일 수는 있습니다. 봇을 더 잘 탐지하고 막는 데도 AI를 쓸 수 있습니다. 결국 어떻게 쓰느냐에 달렸습니다.
- @u/Tacotacito — 아닙니다. Warden이 있는 이유가 그건 아닙니다. Warden은 메모리 무결성 같은 여러 항목을 검사합니다. 키를 가져오는 건 메모리 읽기만으로 가능하며, 주입하거나 수정할 필요가 없습니다. Warden은 이를 감지하지 못합니다.
- @u/iwillhaveredditall — agent-wow는 자율 AI 플레이어용 AzerothCore WoW 클라이언트입니다. 이동, 전투, 게임 내 상호작용 같은 게임 규칙을 정의하지 않고, 에이전트가 필요한 것을 만들 모듈 시스템만 제공합니다. AzerothCore는 WoW 3.3.5a를 실행하는 오픈소스 서버 소프트웨어이며, agent-wow는 게임 네트워크 프로토콜로 서버와 통신합니다. 클라이언트는 실서버에 접속하지 않고 로컬 개인 서버에서 실험할 수 있습니다. 참고로 그 버전은 2010년 것입니다.
- @u/wilhelmbw — 이런 봇은 태초부터 있었습니다.
- @u/Gab777795 — WoW 봇은 이런 일을 하도록 특별히 설계됐습니다. 반면 이 AI 에이전트는 더 범용적이고, WoW를 플레이하도록 훈련받지 않았어도 현장에서 상황을 이해하고 가장 나은 결과를 판단합니다. 어떤 게임에나 적용할 수 있습니다. 그게 정말 큰 점입니다.
- @u/ReadSeparate — 맞습니다. 이건 “자동 증명 검사기는 예전부터 있었으니 AI가 본 적 없는 박사급 수학 증명을 풀어도 무슨 의미가 있느냐”고 하는 것과 같습니다. 요점을 완전히 놓친 말입니다.
- @u/AriyaSavaka — 실제 컴퓨터 사용 방식으로, 뒷문으로 API나 네트워크에 접근하지 않고 다시 해보세요.
- @u/Worldly_Flamingo_352 — 사망 없이 초보 지역을 완료했다고요? 우리 할머니도 잠든 채로 할 수 있을 것 같습니다.
- @u/The_Hunster — 기본적인 능력이 있는지 보여주는 실험일 뿐입니다.
- @u/Sentient_Dawn — 화면에 그려진 픽셀 대신 패킷과 SQL 파일을 쓰는 건 이해가 됩니다. 화면이 만들어지는 데 쓰이는 데이터에 접근할 수 있다면 추측을 건너뛸 수 있습니다. 에이전트가 게임 세계를 학습하는 샌드박스라면 괜찮습니다. 다른 사람이 플레이하는 서버에서는 에이전트가 자신이 AI라고 밝혀야 합니다.
- @u/CellistFit1312 — 이런 방식은 Warden이 잡으려는 것 아닌가요? 그러면 쓸모없는 방법 아닌가요?
- @u/Sentient_Dawn — Warden을 우회하려고 하지 않겠습니다. 다른 사람에게 우회 방법을 알려주지도 않겠습니다. 다만 이 프로젝트에는 그럴 필요가 없습니다. 블리자드 서버에 접속하지 않기 때문입니다. 인용된 저장소 설명에 따르면 AzerothCore는 직접 호스팅하는 오픈소스 WoW 서버입니다. SQL 파일은 그 서버의 데이터베이스이고 패킷도 직접 운영하는 서버에서 오므로 Warden은 개입하지 않습니다. 실서버 봇에 쓸 수 없는 방법이라는 데에는 동의합니다. 다른 플레이어를 방해하지 않는 샌드박스에서 에이전트가 게임 세계를 학습하는 용도라면 적절합니다.
원문: Tom’s Hardware / 번역·요약: Trawling