3줄 요약

  1. 월드 모델 기업 Odyssey가 2026년 9월 멀티에이전트 월드 모델 Agora-2를 발표하고, 브라우저에서 플레이할 수 있는 연구 프리뷰와 기술 보고서를 함께 공개했다. 한 세션에는 사람과 자율 에이전트를 합쳐 최대 20명이 참여하며, 그중 사람 플레이어는 최대 4명이다. 모델은 블리자드의 액션 RPG 디아블로 II에서 관측, 행동, 상태를 짝지어 수집한 캡처로 학습했다.
  2. Agora-2는 세계가 어떻게 바뀌는지 예측하는 일과 그 결과를 화면으로 그리는 일을 서로 다른 모델에 맡긴다. 약 446만 파라미터의 시뮬레이션 모델이 모든 참가자의 행동을 받아 캐릭터의 이동, 전투, 애니메이션을 예측하면, 월드 서버가 그 예측을 공유 상태에 반영한다. 약 10억 파라미터의 렌더링 모델은 이 공유 상태와 화면별 시각 기록을 조건으로 플레이어마다 640×480 화면을 생성한다.
  3. 기술 보고서의 재구성 실험에서 Agora-2 렌더러는 VAE 기반 기준 모델보다 PSNR이 9.44dB 높았다. 조건화 방식을 교차 어텐션에서 구조화 프리픽스로 바꾸면 디노이저 실행 시간이 45.8% 짧아졌다. 시뮬레이션 모델의 이동 분기 정확도는 85.17%였지만, 벽에 막힌 사례만 따로 보면 68.17%였다. 장시간 화질과 플레이어 화면 사이의 일치, 실시간 지연은 이번 보고서에서 평가하지 않았다.

발표문이 소개한 내용

Odyssey는 Agora-2를 차세대 멀티에이전트 월드 모델로 소개했다. 사람과 에이전트는 한 생성 환경에서 실시간으로 상호작용하며, 한 참가자의 행동은 공유 시뮬레이션과 다른 참가자들의 경험을 바꾼다. Odyssey는 이 시스템을 학습된 게임 엔진(learned game engine)에 비유했다.

두 플레이어의 화면을 좌우로 이어 붙인 게임 화면. 두 화면 모두 같은 어두운 동굴 맵을 아이소메트릭 시점으로 보여 주며, 붉은 머리의 여성형 괴물과 창을 든 몬스터 무리, 흰 머리의 영웅 캐릭터가 있다. 왼쪽 위와 오른쪽 위에는 각각 목숨 5/5가 표시되고, 아래쪽에는 체력 구슬, 초록색 미니맵, 2p라고 적힌 구슬이 있다. 그림 1. 두 플레이어가 같은 동굴을 각자의 화면으로 보는 장면. 출처: Odyssey 발표 페이지의 데모 영상 대표 이미지

전작 Agora-1보다 한 세션의 참가자 수는 5배로, 시뮬레이션할 수 있는 환경은 하나에서 여러 개로 늘었다. 상호작용은 더 복잡해졌고, 행동이 전개되는 시간도 길어졌다. 기술 보고서에는 사람이 조작하는 캐릭터 4개와 자율 캐릭터 16개를 지원하는 배포 구성이 적혀 있다.

더 복잡한 멀티에이전트 상호작용을 탐구하기 위해 Odyssey가 고른 게임은 블리자드의 디아블로 II였다. 발표문에 따르면 게임은 에이전트가 주변 환경, 다른 에이전트와 상호작용하며 배울 수 있는 세계를 제공하므로 오래전부터 AI 연구에 유용한 환경으로 쓰여 왔다. Odyssey는 관측과 행동, 상태를 짝지은 디아블로 II 캡처로 모델을 학습시켜, 개체가 어떻게 이동하고 상호작용하며 서로에게 반응하는지 모델이 배우게 했다고 한다.1

Odyssey는 멀티에이전트 월드 모델이 앞으로 AI 학습, 로보틱스, 자율주행, 국방, 에너지, 사이버보안, 게임에 쓰일 것으로 내다봤다. 최근 보고된 AI 기반 사이버 공격과 에이전트 간 공모 사례를 들어, AI 시스템끼리 어떻게 상호작용하는지 이해하는 일이 시급한 연구 과제가 됐다고도 했다.2 멀티에이전트 월드 모델을 쓰면 해로운 행동을 통제된 시뮬레이션에서 조사할 수 있으므로 실제 시스템을 위험에 노출하지 않아도 된다고 주장했다.

브라우저에서 실행 중인 Agora-2 연구 프리뷰 화면. 가운데에는 해골 병사와 붉은 옷의 캐릭터들이 있는 어두운 동굴이 보이고, 위쪽에 “Simulating in real-time"이라는 문구가 있다. 왼쪽 패널에는 악마 얼굴 장식, 초록색 미니맵, W A S D 키가 있고, 오른쪽 패널에는 ODYSSEY 로고, 음량 스위치, 리더보드(PANJU, 0점), 붉은 SPACE 공격 버튼이 있다. 아래 중앙에는 퀘스트 이름 “The Den of Evil”, 레벨 1/6, 경험치 1244, 남은 시간 4:34가 표시된다. 그림 2. 브라우저에서 실행되는 Agora-2 연구 프리뷰. W, A, S, D 키로 이동하고 스페이스 키로 공격한다. 출처: Odyssey 발표 페이지

Agora-1과 달라진 구조

기술 보고서의 문제 설정에 따르면, 멀티플레이어 월드 모델은 행동이 공유 환경을 어떻게 바꾸는지 예측해야 하고 그 변화를 모든 플레이어의 시점에서 일관되게 그려야 한다. 두 요구는 서로 독립적으로 실패할 수 있다. 잘못된 상태 전이를 그럴듯한 이미지로 그릴 수도 있고, 올바른 상태를 플레이어마다 다르게 그릴 수도 있다.

1인칭 멀티플레이어 환경을 다룬 Agora-1에서는 비디오 모델이 플레이어마다 화면을 생성했다. 비디오 모델과 함께 동작하는 동역학 헤드가 비디오 모델의 특징, 플레이어 행동, 자세, 주변 벽까지의 깊이 정보를 합쳐 이동과 명중을 예측했다. 예측한 이동으로 카메라 자세가 갱신되면, 그 자세가 다음 단계에서 비디오 모델이 받는 기하 정보를 결정했다. 이처럼 시뮬레이션과 렌더링이 서로의 출력에 의존하며 순환하는 구조였다.

Agora-2는 이 순환 구조를 재설계해 시뮬레이션 모델을 독립시켰다. 시뮬레이션 모델은 RGB 프레임이나 비디오 잠재 표현을 쓰지 않고, 구조화된 개체 기록과 행동, 주변 기하 정보만으로 이동, 전투, 애니메이션을 예측한다. 사람의 조작과 에이전트 정책의 행동이 같은 시뮬레이션에 입력되고, 갱신된 상태는 각 플레이어 렌더러의 입력이 된다. 이렇게 설계하면 월드 갱신을 개별 화면의 생성과 별개로 계산하고 검사할 수 있다. 상호작용을 잘못 예측했는지, 맞게 예측한 상호작용을 화면에 잘못 그렸는지도 구별할 수 있다.

각 구성 요소에서 학습된 모델이 맡는 부분과 서버, 클라이언트가 맡는 부분은 다음과 같다.

구성 요소학습한 모델이 예측하는 것서버와 클라이언트가 처리하는 것
에이전트 정책자율 개체의 행동 선택정책 행동과 사람 입력을 합쳐 개체별로 배정
시뮬레이션 모델이동 분기와 방향, 공격과 재사용 대기 시계, 피해, 투사체 발사, 애니메이션 모드와 진행 단계, 투사체의 이동과 소멸과 피해선택된 분기를 변위로 변환, 이동 적분, 시계와 피해와 애니메이션 반영, 투사체 생성과 제거
렌더링 모델장면 조건과 시각 기록으로 비디오 잠재 표현 생성잠재 표현을 프레임으로 디코딩한 뒤 인코딩, 전송, 표시

서버는 체력과 개체의 수명 주기(사망, 시체 소멸, 생성, 부활)도 관리한다. 학습된 모델이 원래 게임 엔진을 모두 대체한 것은 아니다. 맵과 시나리오, 스폰, 그리고 시나리오가 소유한 월드 오브젝트 효과는 여전히 원래 엔진의 호스트가 처리한다.

시뮬레이션 모델

시뮬레이션 모델 구조도. 왼쪽의 세 입력 상자 「Motion + Actions(History)」, 「Local Geometry(Distance Field)」, 「Relative Entity State(Positions + Orientations)」가 하나로 합쳐져 개체마다 하나씩 만드는 「Entity Tokens」가 되고, 이것이 「Transformer」를 거쳐 「Predicted State Changes」의 「Movement」와 「Interactions」 두 상자로 이어진다. 두 출력은 오른쪽 「World Server」 영역의 「Apply State Updates(Session Rules)」로 들어가고, 그 결과가 「Shared World State」에 저장된다. 그림 3. 시뮬레이션 모델과 월드 서버의 구조. 출처: Odyssey 발표 페이지

시뮬레이션 모델은 현재 월드 상태, 최근 이동 기록, 플레이어와 에이전트의 행동을 받아, 다음 시뮬레이션 단계에서 월드 서버가 반영할 변화를 예측한다. 캐릭터마다 토큰을 하나씩 만들며, 토큰은 최근 4단계의 이동 기록, 바라보는 방향, 의도한 이동, 전투 상태, 그리고 장애물 경계까지의 거리를 11×11 격자로 기록한 주변 기하 정보로 구성된다. 충돌 영역, 주변 캐릭터의 상대 좌표, 애니메이션 상태처럼 특정 과제에만 필요한 특징은 해당 예측 헤드에 따로 입력된다.

4층짜리 트랜스포머가 모든 캐릭터 토큰을 함께 처리하므로, 한 캐릭터에 대한 예측에 다른 캐릭터들의 상태가 반영된다. 층마다 은닉 폭은 256, 어텐션 헤드는 4개다. 배포 구성은 플레이어 캐릭터 4개와 그 밖의 캐릭터 16개를 지원하고, 비어 있는 슬롯은 마스킹한다. 트랜스포머의 출력은 세 종류의 예측 헤드가 받는다.

  • 이동과 방향: 이동 헤드는 미리 정의한 14개의 이동 분기 가운데 하나를 고른다. 6개는 평상시 이동에 쓰는 분기로, 명령한 만큼 그대로 이동하기, 두 축 가운데 한 축 성분만 적용하기(2개), 옆으로 비껴 이동하기(2개), 멈추기로 구성된다. 나머지 8개는 장애물과 겹쳤을 때 빠져나오는 탈출 방향이다. 고정된 디코딩 함수가 이동 명령과 주변 기하 정보를 이용해 선택된 분기를 실제 변위로 바꾼다. 방향은 따로 예측한다. 회전할지, 이동 방향을 따를지, 현재 방향을 유지할지, 가까운 대상을 바라볼지를 고르고, 필요하면 회전 비율도 예측한다.
  • 전투: 전투 헤드는 공격 진행, 재사용 대기, 피격 후 회복이라는 세 가지 시계의 변화를 예측한다. 별도의 피해 헤드가 가까운 대상에게 피해가 발생하는지와 그 양을 예측하고, 또 다른 헤드가 투사체 발사 여부를 예측한다.
  • 애니메이션: 어떤 애니메이션을 재생할지, 그리고 그 애니메이션을 진행할지, 일시 정지할지, 재시작할지, 반복할지, 끝낼지를 예측한다. 전투 타이밍과는 따로 지도 학습한다.

투사체는 캐릭터 트랜스포머 대신 별도의 MLP로 예측한다. MLP는 투사체의 이동, 벽이나 캐릭터와 부딪혀 소멸하는지 여부, 주변 대상에게 주는 피해를 예측하며, 배포 구성은 투사체 슬롯 32개를 지원한다. 배포에 쓰는 시뮬레이션 구성 요소의 파라미터는 모두 합쳐 4,457,777개다.

학습은 기록된 상태 전이로 진행했다. 목적 함수는 이동, 방향, 전투, 애니메이션, 투사체 손실의 합이다. 이동 분기나 애니메이션 모드 같은 범주 선택에는 교차 엔트로피를, 명중이나 투사체 발사 같은 이진 사건에는 이진 교차 엔트로피를, 투사체 변위와 피해량 같은 연속값에는 Smooth L1 손실을 적용했다. 학습하는 동안 운동량 입력에는 드롭아웃(0.25)과 가산 노이즈(표준편차 1.0)를 적용했다.

추론할 때 근접 공격과 투사체의 피해 판정 임계값은 둘 다 0.9다. 투사체 명중 임계값을 보정하는 데는 기록된 구간 128개에서 나온 투사체 비행 174건을 썼다. 임계값 0.9에서 참 양성은 159건, 거짓 양성은 5건, 거짓 음성은 7건으로, 정밀도 97.0%와 재현율 95.8%에 해당한다.3 배포 구성에서는 피격 경직과 받은 피해량 헤드를 끄고, 근접 공격과 투사체가 대상별로 입힌 예측 피해를 합산해 체력 변화를 계산한다.

공유 상태

월드 서버는 시뮬레이션 모델이 고른 이동과 예측한 상호작용 결과를 영속적인 월드 상태에 반영한다. 변위와 방향을 적분하고, 예측 피해를 체력에 적용하고, 애니메이션 상태를 갱신한다. 생성, 사망, 시체 소멸, 부활 같은 수명 주기 이벤트는 세션에 설정된 규칙에 따라 서버가 관리한다. 예를 들어 예측된 피해가 대상의 체력을 바꾸면, 바뀐 상태가 이후 모든 화면의 조건이 된다. 렌더러들은 개체 위치, 식별 정보, 상호작용 결과를 같은 기준으로 받으면서도 시각 기록은 각자 따로 유지한다.

발표문은 개체의 속성이 특정 화면과 무관하게 공유 상태에 보존된다는 점도 강조했다. 개체가 화면 밖으로 나가도 속성은 그대로 유지되므로, 개체가 다시 화면에 들어올 때 그 플레이어의 시각 기록에서 속성을 재구성할 필요가 없다.

두 플레이어의 화면을 2행 2열로 배치한 비교 그림. 윗줄은 플레이어 1, 아랫줄은 플레이어 2의 화면이고, 왼쪽 열은 보스를 쓰러뜨리기 전(22.67초), 오른쪽 열은 쓰러뜨린 뒤(25.83초)다. 석조 기둥이 늘어선 방에서 파란 원으로 표시한 P1이 붉은 갑각류 모양의 보스 두리엘 옆에 서 있고, 아랫줄 화면에는 분홍색 원으로 표시한 P2도 보인다. 쓰러뜨린 뒤의 두 화면에는 두리엘의 시체와 흰빛의 포털이 함께 그려져 있다. 아래에는 「Duriel: 16.4 HP; alive」와 「Duriel: 0.0 HP; dead」가 적혀 있고, 오른쪽의 공유 월드 평면도에는 두 플레이어의 카메라가 비추는 영역이 실선과 점선 사각형으로, 두 플레이어 사이의 거리가 5.16타일로 표시되어 있다. 그림 4. 공유 상태를 조건으로 생성한 두 플레이어의 화면. 출처: 기술 보고서 Figure 3

보고서의 Figure 3은 공유 상태가 두 화면을 어떻게 조건화하는지 보여 준다. 스크립트로 조작한 두 플레이어 가운데 한 명은 두리엘에게 다가가 공격하고, 다른 한 명은 보스와 거리를 둔 관찰 지점으로 이동한다. 두 화면 모두 두리엘이 쓰러지기 전과 후의 모습을 그렸고, 쓰러진 뒤에는 두 화면 모두에 시체와 포털이 나타난다. 두리엘의 체력은 16.4에서 0.0이 됐다. 동역학과 렌더링 모두 학습된 모델이 생성한 결과다.4

렌더링 모델

렌더링 모델 구조도. 왼쪽의 「Noisy Image Tokens」가 Q, K, V로 「Rendering Model」 상자의 「Spatial Attention」에 들어가고, 위쪽의 「Structured Scene Tokens(Fixed During Generation)」 상자에서 Tiles, Entities, Effects, View + Roster 토큰이 K, V로 같은 공간 어텐션에 입력된다. 공간 어텐션 다음에는 「Causal Temporal Attention」이 있고, 아래쪽의 「Preceding Latent」와 「Visual History」가 각각 두 어텐션에 입력된다. 출력인 「Generated Latent」는 「Decoder」를 거쳐 「Frame 1」과 「Frame 2」 두 장의 프레임이 되고, 생성된 잠재 표현은 「Next Update」 화살표를 따라 시각 기록에 추가된다. 그림 5. 렌더링 모델의 구조. 출처: Odyssey 발표 페이지

렌더링 모델은 구조화된 장면 조건과 그 화면의 제한된 시각 기록으로 각 화면을 점진적으로 생성한다. 블록 16개, 폭 2,048의 플로 매칭 트랜스포머이며 파라미터는 약 10억 개다. 모든 블록에 공간 어텐션이 있고, 그중 5개 블록(0, 4, 8, 12, 15번)에는 이전 잠재 프레임을 참조하는 인과적 시간 어텐션이 추가로 있다.

렌더러는 출력 프레임 두 장을 생성할 때마다 장면 조건으로 조건 토큰 342개를 받는다. 토큰 구성은 다음과 같다.

입력 종류토큰 수내용
맵14412×12 주변 타일 격자의 기하, 통행 가능 여부, 외형
개체36사용자 조작 개체 슬롯 4개와 그 밖의 개체 슬롯 32개. 슬롯마다 두 출력 프레임의 상태를 순서대로 기록
일시 효과160출력 프레임에 맞춘 효과의 종류와 상태
시점 행동1시점 관련 조작 정보
명단1점유된 개체 슬롯의 비율과 비어 있는 그룹 표시

개체 토큰은 범주형 속성과 식별 레이블로 외형을 표현하고, 애니메이션 모드와 진행 단계도 두 출력 프레임마다 따로 기록한다. 수명 주기 정보가 있어서 빈 슬롯과 눈에 보이는 시체를 구별할 수 있고, 능력과 효과 정보는 위치만으로는 표현할 수 없는 사건을 기술한다.

조건 토큰을 이미지 토큰과 결합하는 방식을 연구진은 구조화 프리픽스라고 부른다. 각 공간 어텐션 층에서 키와 값은 이미지 토큰과 조건 토큰이 함께 제공하지만, 쿼리는 이미지 토큰만 제공한다. 따라서 어텐션 연산이 갱신하는 대상도 이미지 토큰뿐이다. 조건 토큰은 이미지로 디코딩하지 않으며, 시간 어텐션 캐시에도 저장하지 않는다. 소프트맥스는 두 토큰 그룹의 어텐션 가중치를 함께 정규화하고, 쓰지 않는 조건 슬롯은 마스크로 제외한다. 2차원 회전 위치 임베딩(RoPE)은 이미지 토큰에만 적용한다. 조건 토큰의 키와 값은 잠재 프레임마다 한 번만 계산하고 솔버의 모든 단계에서 재사용한다.

코덱으로는 MIRA의 구조를 바탕으로 한 표현 오토인코더(RAE)를 쓴다. 연속한 640×480 프레임 두 장을 15×20×32 크기의 잠재 프레임 하나로 압축하므로, 잠재 프레임 하나가 채널 32개짜리 공간 토큰 300개가 된다.

렌더러의 학습 방법은 다음과 같다.

  • 렌더러는 플로 매칭 목적 함수로 처음부터 학습했다. 첫 잠재 프레임의 손실에는 이후 프레임의 4배 가중치를 주고, 개체가 그려진 영역의 오차에 가중치 2의 손실 항을 추가했다.
  • 디퓨전 포싱 방식을 따라 잠재 프레임 위치마다 플로 시간을 독립적으로 샘플링한다. 인과적 시간 어텐션과 별도로, 직전 위치의 깨끗한 잠재 프레임을 받는 경로도 있다.
  • 학습 샘플의 80%에서는 시각 기록을 전달하는 두 경로를 함께 제거했다. 하나만 제거하면 모델이 다른 입력으로 이전 이미지를 복원할 수 있기 때문에, 둘을 함께 제거해야 모델이 구조화된 상태를 더 활용하게 된다.
  • 먼저 4,232,000개 구간에서 옵티마이저 업데이트 6만 번을 학습했고, 보스와 포털 데이터를 추가한 4,332,800개 구간에서 6만 번을 더 학습했다. B200 GPU 32장, 유효 배치 128, AdamW 학습률 1×10⁻⁴를 썼다.

추론할 때는 솔버 5단계로 잠재 프레임 하나를 만들고, 디코더가 이를 비디오 프레임 두 장으로 바꾼다. 생성한 잠재 프레임은 그 화면의 시각 기록에 추가되어 다음 갱신에 쓰인다. 플레이어가 생존 상태에서 비생존 상태로, 또는 그 반대로 바뀔 때(부활 포함) 시각 기록을 초기화한다. 카메라가 4.0타일보다 먼 거리를 불연속적으로 이동할 때도 초기화한다. 시각 기록을 초기화해도 공유 월드 상태는 유지된다.

학습된 렌더러와 원래 게임 엔진의 렌더링을 비교한 그림. 제목은 「Learned and engine rendering from identical game states」이고, 하수도 맵, 플레이어 1 카메라, 12초 연속 생성이라는 조건이 적혀 있다. 3.00초, 6.00초, 11.97초의 세 시점마다 윗줄에 생성 프레임, 가운데 줄에 엔진 프레임이 있고, 두 줄의 화면 구성은 거의 같다. 아랫줄은 표시한 영역을 확대해 생성 결과와 엔진 결과를 짝지어 보여 준다. 창을 든 캐릭터와 갑옷 입은 캐릭터의 확대 컷은 두 결과가 거의 같고, 6.00초의 석조 아치 확대 컷에서는 엔진 화면의 밝은 아치 기둥이 생성 화면에서 어둡고 흐릿하게 그려졌다. 그림 6. 같은 엔진 궤적을 학습된 렌더러와 원래 게임 엔진으로 그린 결과. 출처: 기술 보고서 Figure 5

보고서의 Figure 5는 두 렌더러에 매 시점 같은 개체 상태, 외형 식별자, 애니메이션 상태, 효과, 카메라를 입력한 결과다. 학습된 렌더러는 엔진의 RGB 이미지로 초기화하지 않고, 학습된 시퀀스 시작 표현에서 출발해 12초 동안 연속으로 생성했다. 이 비교는 렌더링만 검증하며 학습된 동역학은 평가하지 않는다.

학습 데이터

학습 데이터는 렌더링 화면과 구조화된 월드 상태를 함께 제공하도록 계측한 Rust 기반 아이소메트릭 게임 엔진에서 수집했다. 엔진이 장면 기하, 개체 식별 정보, 위치, 체력, 애니메이션, 상호작용 이벤트에 직접 접근할 수 있게 해 주므로, 행동과 그 결과를 영상과 함께 기록할 수 있다. 연구진은 여러 엔진 인스턴스를 병렬로 실행했다. 인스턴스마다 절차적으로 장면을 생성하고, 설정된 이동과 전투 행동을 수행하면서 시뮬레이션 틱마다 행동, 개체 상태, 상호작용 결과를 기록했다. 렌더링 데이터에는 플레이어별 화면과 함께 보이는 개체를 식별하는 인스턴스 ID 이미지도 저장했다. 절차적 레이아웃의 테마는 동굴, 지하 납골당, 던전, 감옥, 하수도, 무덤의 여섯 가지다.

모델학습 데이터평가 데이터지도 신호
렌더링4,332,800 구간모니터링 창 6개, 비교 클립 30개 × 시드 3개영상과 프레임에 맞춘 장면 상태
시뮬레이션1,108,800 구간3,456 구간상태와 행동 기록, 전이 목표
몬스터 정책예시 23,771개에피소드 252개국소 관측, 목표 행동, 공간 레이블
동료 정책예시 128,005개사례 24개사람 추종과 전투 관측, 목표 행동, 공간 레이블

렌더링 구간 하나는 30Hz로 기록한 60프레임이며, 연구진은 그중 40프레임을 학습 창으로 선택했다. 렌더링 코퍼스의 구성은 다음과 같다.

데이터 구성구간 수목적
전체 명단 전투1,200,000조작 개체와 자율 개체의 전투와 특수 콘텐츠
특수 능력 층화 수집2,016,000능력과 효과를 집중적으로 수집
시체 통과504,000시점이나 조작 개체가 움직이는 동안 남아 있는 시체
자율 개체 없는 이동512,000자율 개체가 없는 장면
보스와 포털 수명 주기100,800포털의 등장, 유지, 소멸
합계4,332,800연장 학습에 쓴 렌더링 코퍼스

보고서에 따르면 어떤 행동을 기록하느냐는 기록의 양만큼 중요하다. 일반적인 플레이 기록에는 자유로운 이동과 성공한 공격이 많지만, 막힌 이동, 실패한 공격, 장애물에서 빠져나오는 장면은 적다. 이 때문에 연구진은 벽을 향해 계속 이동하기, 좁은 틈 통과하기, 사거리 안팎의 대상 공격하기 같은 전용 시나리오를 만들어 이런 결과를 수집했다. 전투 기록에는 어느 개체가 어느 대상에게 피해를 얼마나 입혔는지를 피해가 없는 경우까지 포함해 기록했다. 능력, 남아 있는 시체, 포털 전환은 별도로 수집했고, 시나리오별로 수집 예산을 정해 드문 사건이 학습 데이터에서 일정 비율을 유지하게 했다.

에이전트 정책

강화학습 에이전트 데모 영상의 대표 이미지. 왼쪽은 석조 기둥과 벽감이 있는 어두운 지하 통로를 아이소메트릭 시점으로 보여 주는 게임 화면이고, 몬스터 두 마리가 보인다. 오른쪽은 같은 장면의 평면도로, 회색 통로와 검은 장애물 사이에 파란 점 P0과 주황색 점 C1, C2, C3, C4가 표시되어 있다. 그림 7. 강화학습 에이전트 데모 영상의 대표 이미지. 출처: Odyssey 발표 페이지

발표문에 따르면 Odyssey는 강화학습으로 에이전트를 훈련해 상대를 추격하고, 장애물을 돌아가고, 갇히거나 동료와 떨어졌을 때 복귀하게 했다. 에이전트는 세계의 일부만 관측하므로, 최근 관측으로 주변 참가자를 추적하고 상황 변화에 적응해야 한다.

기술 보고서의 정책은 스칼라 관측과 공간 관측을 윈도 방식의 GRU(게이트 순환 유닛)와 학습된 밀집 이동장으로 처리한다. 행동은 8방향 이동, 대기, 공격 가운데 하나다. 정책은 시뮬레이션 틱 4번마다 행동을 고르고 다음 결정까지 그 행동을 유지한다. 시뮬레이션 시간으로 환산하면 133.3ms마다 한 번, 초당 7.5회에 해당한다. 몬스터와 자율 영웅 동료는 따로 학습한 체크포인트를 쓰며, 동료 정책은 따라가야 할 사람 플레이어의 정보도 관측한다. 사람이 조작하는 영웅은 브라우저 입력을 그대로 받는다. 정책은 의도한 행동만 정하고, 그 행동의 결과는 시뮬레이션 모델이 예측한다.

발표문은 이후 연구 방향으로 PROWL을 언급했다. Odyssey는 PROWL에서 에이전트가 월드 모델로 지능적인 행동을 배우고, 에이전트의 경험으로 다시 월드 모델을 개선해 둘이 함께 발전하는 방법을 탐구하고 있다. 여러 에이전트가 각자 결정하는 환경에서는 녹화된 시연으로 가르칠 수 있는 양에 한계가 있고, 직접 상호작용해서 배워야 할 것이 많다고 Odyssey는 설명했다. 한 에이전트가 나아지면 다른 에이전트들이 대응해야 할 상황도 바뀌기 때문에, Odyssey는 협력과 경쟁이 에이전트와 함께 발전하는 커리큘럼이 된다고 본다. 상호작용에서 발견된 실패는 월드 모델의 학습 데이터로 쓰인다. Odyssey는 멀티에이전트 상호작용을 파운데이션 월드 모델 Odyssey-3로 확장하는 방법이 분명하다고도 밝혔다.

서빙 시스템

브라우저 클라이언트가 조작 입력을 월드 서버로 보내면, 서버는 공유 세션 상태를 유지하며 학습된 모델들을 호출한다. 에이전트 정책이 자율 개체의 의도를 정하고, 시뮬레이션 모델이 개체 갱신을 예측하고, 화면별 렌더러가 영상을 생성한다. 서버는 인코딩한 프레임과 상태 메타데이터를 WebRTC로 각 클라이언트에 전송한다. 4인 세션은 NVIDIA RTX PRO 4500 GPU 4장에서 실행되며, GPU마다 렌더링 모델 하나가 플레이어 한 명의 화면을 생성한다. 그중 한 장은 시뮬레이션 모델과 에이전트 정책 모델도 함께 실행한다.

시뮬레이션은 30Hz 틱으로 진행하고, 렌더러는 화면마다 640×480 해상도에서 초당 잠재 프레임 15개, 표시 프레임 30장을 목표로 한다. RTX PRO 4500 구성은 BF16을 기본으로 디노이저와 디코더의 일부 선형 연산에 MXFP8을 쓰고, TeaCache(임계값 0.15)로 중간 솔버 단계의 속도 예측을 재사용한다. 출력 프레임은 H.264 인트라 전용 방식으로 인코딩한다.

최적화한 구현에서 렌더러를 한 번 호출해 프레임 두 장을 만드는 데 평균 56.69ms가 걸렸고, 최적화 전 구현의 62.92ms보다 9.9% 짧았다. 초당 잠재 프레임 15개라는 목표를 맞추려면 호출 한 번이 66.7ms 안에 끝나야 한다.5

평가 결과

렌더러 재구성

Agora-2 렌더러와 비교한 기준 모델은 VAE 기반 인과적 비디오 확산 모델이다. 기준 모델은 맵 타일, 행동, 시각 기록을 조건으로 쓰고, Agora-2 렌더러는 표현 오토인코더와 함께 구조화된 맵, 개체, 효과 토큰을 어텐션 프리픽스로 쓴다. 여섯 테마에서 5개씩 고른 클립 30개에 샘플링 시드 3개씩을 적용해 90쌍을 평가했고, 640×480, 30fps의 20프레임 참조 구간과 비교했다.

렌더러RGB MSE (낮을수록 좋음)PSNR (dB, 높을수록 좋음)
VAE 기반 기준 모델0.01027220.67
구조화 프리픽스 렌더러0.00127930.11

Agora-2 렌더러의 프레임당 평균 PSNR이 9.44dB 높았다. 두 모델의 학습 조건도 서로 달랐다. 기준 모델은 옵티마이저 업데이트 2만 번, Agora-2 렌더러는 12만 번으로 학습했고, 시각 기록은 각각 13프레임과 38프레임, 디노이징은 각각 5단계와 10단계였다.6

같은 클립 30개에서 Agora-2 렌더러의 디노이징 단계만 5단계와 10단계로 바꿔 보니 PSNR은 30.12dB와 30.08dB로 거의 같았다. 실제 프레임을 각 코덱으로 인코딩한 뒤 다시 디코딩한 재구성 PSNR은 기준 모델의 코덱이 28.13dB, 표현 오토인코더가 31.66dB였다.

조건화 방식별 실행 비용

연구진은 같은 렌더러 백본에서 조건화 방식만 바꿔 가며 실행 시간을 측정했다. 무작위로 초기화한 디노이저에 동일한 합성 입력을 넣었고, 개체와 효과 슬롯을 모두 활성화한 상태에서 RTX PRO 6000 Blackwell GPU로 측정했다. 수치는 프레임 두 장을 만드는 갱신 한 번에 걸리는 시간이다.

조건화 방식디노이저 (ms)핵심 합계 (ms)
교차 어텐션37.0653.71
풀링 AdaLN18.8234.08
구조화 셀프 어텐션 K/V 프리픽스20.0935.37

구조화 프리픽스는 교차 어텐션보다 디노이저 시간을 45.8%, 월드 롤아웃과 디코더 시간을 더한 핵심 합계를 34.1% 줄였다. 풀링 AdaLN은 구조화 프리픽스보다 조금 빨랐다. 교차 어텐션 변형의 디노이저 파라미터는 15억 4,700만 개로, 나머지 두 방식의 11억 7,700만 개보다 많다.7

시각 기록과 상태 조건화의 균형

시각 기록을 쓰면 화면의 연속성은 좋아지지만, 이전 화면의 내용이 현재 시뮬레이션 상태와 맞지 않더라도 그대로 유지될 수 있다. 이 균형을 보려고 연구진은 교차 어텐션을 쓰던 이전 렌더러 구성으로, 학습 중 시각 기록을 제거하는 확률만 바꾼 네 가지 설정을 학습했다. 네 설정 모두 같은 체크포인트와 데이터에서 시작해 옵티마이저 업데이트 1만 번씩 학습했다.

시각 기록 드롭아웃스트리밍 잠재 MSE콜드 스타트 잠재 MSE맵 교란 오차 비율
0%0.060410.210821.45×
20%0.056410.200011.50×
50%0.056950.195351.55×
80%0.061010.195501.62×

스트리밍 평가는 시각 기록을 제공하고, 콜드 스타트 평가는 시각 기록 없이 생성한다. 맵 교란 오차 비율은 뒤집은(reflected) 맵을 입력했을 때의 속도 예측 오차를 올바른 맵을 입력했을 때의 오차로 나눈 값이다. 비율이 클수록 모델이 맵 조건에 민감하다는 뜻이다.

드롭아웃 확률이 높을수록 모델은 맵 조건에 더 민감해졌다. 드롭아웃을 적용한 세 설정은 모두 적용하지 않은 설정보다 콜드 스타트 오차가 낮았고, 스트리밍 오차는 20%에서 가장 낮았다. 연구진은 이 결과를 시간적 맥락과 명시적 상태 조건화 사이의 트레이드오프로 해석했다.8

시뮬레이션 모델

연구진은 학습에 쓰지 않은 기록 예시 128개로 구성한 배치 16개를 사용해, 배포한 시뮬레이션 체크포인트의 단일 단계 예측을 평가했다.

지표결과
이동 분기 정확도85.17%
막힌 이동 사례의 이동 분기 정확도68.17%
애니메이션 모드 정확도95.84%
예측한 애니메이션 모드 전환 비율7.49%
기록된 애니메이션 모드 전환 비율3.54%

막힌 이동 사례에서 정확도가 크게 낮았기 때문에, 연구진은 장애물 처리를 더 어려운 예측 영역으로 판단했다. 애니메이션은 프레임 단위 정확도가 높았지만, 모델은 기록된 시뮬레이션보다 애니메이션 모드를 두 배 이상 자주 전환했다. 모드 정확도만으로는 이런 시간적 행동의 차이가 드러나지 않기 때문에 보고서는 전환 빈도를 함께 보고했다.9

보고서가 밝힌 한계

  • 상태와 도메인 의존: Agora-2는 명시적인 장면 기하, 미리 정의한 상태 스키마, 고정된 외형 어휘를 갖춘 계측 환경을 요구한다. 선택한 입력과 유한한 기록 길이로 표현할 수 없는 상태가 있으면, 같은 입력에도 결과가 달라질 수 있다. 절차적 레이아웃으로 장면을 다양하게 만들어도 학습 도메인의 변형에 그치므로, 새 에셋, 규칙, 환경에서 모델이 어떻게 작동할지는 아직 검증되지 않았다.
  • 시뮬레이션 오류와 렌더러 입력의 차이: 이동, 전투, 애니메이션의 예측 오류는 시뮬레이션이 진행되면서 누적될 수 있다. 렌더러는 기록된 장면 상태로 학습했지만 실제 상호작용에서는 예측된 상태를 입력받기 때문에, 학습 때 보지 못한 개체 구성이나 이동과 애니메이션이 맞지 않는 조합을 받을 수 있다.
  • 화면 간 일관성과 시간적 일관성: 공유 상태가 모든 화면에 같은 개체 식별 정보, 위치, 상호작용 결과를 제공하더라도, 독립적으로 생성한 이미지는 외형, 가시성, 사건 시점이 서로 다를 수 있다. 화면마다 시각 기록이 다르므로 화면마다 다른 오류가 생길 수 있다. 제한된 맥락 길이와 시각 기록 초기화 때문에, 월드 상태가 유지되는 동안에도 화면의 연속성이 보장되지 않을 수 있다.
  • 평가 범위: 장시간 화질, 화면 간 일치, 종단 간 행동 준수, 에이전트 정책의 성능, 실시간 상호작용 중의 지속 프레임률과 입력 지연은 이 보고서에서 평가하지 않았다.

수치를 비교하며 확인한 것

내가 먼저 주목한 것은 두 모델의 크기 차이다. 시뮬레이션 모델의 파라미터는 약 446만 개로 렌더러의 200분의 1에도 못 미친다. 월드 상태의 변화를 계산하는 모델은 작고, 파라미터 대부분은 화면을 생성하는 데 쓰인다. 그런데 보고서가 공개한 정확도 수치 가운데 가장 낮은 값은 작은 모델인 시뮬레이션 모델에서 나왔다. 벽에 막힌 이동의 분기 정확도가 68.17%에 그쳤다. 연구진은 벽을 향해 계속 걷는 전용 시나리오까지 만들어 이런 데이터를 모았지만, 장애물 처리는 여전히 가장 정확도가 낮은 과제다.

Figure 5의 확대 컷에서도 캐릭터와 배경의 품질 차이가 드러났다. 창을 든 캐릭터와 갑옷 입은 캐릭터는 엔진 화면과 거의 똑같이 그려졌지만, 6.00초의 석조 아치는 생성 화면에서 밝은 기둥이 빠진 채 어둡고 흐릿하게 그려졌다. 이 차이는 렌더러가 학습할 때 개체 영역의 오차에 두 배의 가중치를 준 설계와 일치한다. 발표문이 쓴 「학습된 게임 엔진」이라는 표현도 한정해서 읽는 편이 정확할 것이다. 맵, 시나리오, 스폰, 포털 효과는 여전히 원래 엔진의 호스트가 맡고 있고, 학습된 모델이 맡는 것은 캐릭터의 이동과 전투를 계산하는 일과 그 결과를 화면으로 생성하는 일이다.

출처

Odyssey, “Introducing Agora-2: Advancing Multi-Agent World Simulation”, 2026년 9월.10 원문: https://odyssey.systems/introducing-agora-2

James Grieve, Vinh-Dieu Lam, Ali Abbas Panju, Kaiwen Guo, Jeffrey Hawke, “Agora-2: An Action-Conditioned World Model for Real-Time Multiplayer Environments”, Odyssey 기술 보고서, 2026. 보고서: https://agora-2.odyssey.systems/agora-2.pdf

연구 프리뷰: https://agora.odyssey.systems/


  1. 기술 보고서는 디아블로 II라는 이름을 쓰지 않았다. 보고서에는 학습 데이터의 출처가 렌더링 화면과 구조화된 월드 상태를 함께 제공하도록 계측한 Rust 기반 아이소메트릭 게임 엔진으로 적혀 있다. 보고서 Figure 3의 보스 두리엘(Duriel)은 디아블로 II 2막의 보스이고, 프리뷰 화면의 퀘스트 이름 「The Den of Evil」은 디아블로 II 1막의 첫 퀘스트다. ↩︎

  2. 발표문은 앞의 사례로 Anthropic의 2026년 9월 위협 인텔리전스 보고서를, 뒤의 사례로 METR이 2026년 8월 26일에 게시한 OpenAI와 Hugging Face 관련 사고 조사 글을 링크했다. ↩︎

  3. 이 수치는 임계값을 고르는 데 쓴 보정 데이터에서 잰 값이며, 독립된 테스트셋의 결과는 아니다. ↩︎

  4. 보고서에 따르면 이 그림은 정성적 예시이며, 화면 간 일관성을 측정한 결과는 아니다. 포털 생성에는 학습된 모델의 예측 대신 시나리오의 게임 규칙이 적용된다. ↩︎

  5. 165W 전력 제한을 설정한 RTX PRO 4500에서 렌더러 호출만 잰 시간이며, 인터랙티브 시스템 전체를 잰 값은 아니다. 실시간 상호작용 중의 지속 프레임률과 입력에서 표시까지의 지연은 보고서에서 정량 평가하지 않았다. ↩︎

  6. 완성된 두 시스템을 비교한 결과여서 아키텍처의 기여를 분리하지 못하며, 같은 연산량에서의 성능을 보여 주지도 않는다고 보고서에 적혀 있다. 기준 모델은 카메라만 조건으로 다룬(camera-only) 데이터로 학습했다. 따라서 평가 클립의 전체 명단 전투 장면은 기준 모델의 학습 데이터에 포함되지 않은 유형이다. ↩︎

  7. 이 측정은 실행 비용만 비교하며 학습된 모델의 화질은 재지 않았다. 핵심 합계는 따로 잰 월드 롤아웃과 디코더의 평균을 더한 값으로, 실시간 종단 간 지연과는 다르다. ↩︎

  8. 설정마다 학습 시드는 하나였다. 이 결과만으로는 최종 프리픽스 렌더러의 최적 드롭아웃 비율을 정할 수 없다. 최종 렌더러는 학습 샘플의 80%에서 시각 기록을 제거한다. ↩︎

  9. 이 지표들은 단일 단계 예측의 정확도이며, 여러 단계를 이어 생성하는 자기회귀 롤아웃의 정확도는 재지 않는다. ↩︎

  10. 발표 페이지에는 날짜가 표기되어 있지 않다. 기술 보고서 PDF의 생성 시각은 2026년 9월 24일(UTC)이다. ↩︎