Game AI · Reinforcement Learning · Unity · ML-Agents
Runaway If You Can
플레이어가 쉬운 경로로 게임을 공략하는 순간 난이도가 떨어지는 문제를, 지속적 강화학습(Continual RL) 기반 추격 시스템으로 해결한 연구. Unity로 만든 32×32 그리드 환경에서 경찰 NPC의 경로 예측을 매 회차 갱신해 플레이어의 체감 난이도를 유지한다.
1. 게임 화면
아래는 실제 플레이 화면이다. 플레이어(도둑)가 32×32 그리드를 이동하면, 경찰 NPC 3체가 학습된 정책에 따라 다음 위치를 예측해 배치된다.
2. 문제
게임의 추격 NPC가 정적인 규칙으로 플레이어 경로를 예측하면, 플레이어가 한 번 쉬운 경로를 발견하면 그 패턴을 반복 사용한다. 같은 패턴을 반복해서 잡히지 않는 상황이 곧 체감 난이도의 하락으로 이어진다.
본 연구는 이 문제를 체감 난이도 유지라는 게임 디자인 관점에서 정의하고, 플레이어의 실제 플레이 경로를 주기적으로 학습 데이터에 추가하는 지속적 강화학습(Continual Reinforcement Learning) 파이프라인을 제안한다.
3. 시스템 설계
3.1 환경 (Unity)
- 32×32 이산 그리드 보드, Step 단위 동기화
- 도둑 (플레이어 대응): 상하좌우 4방향 1칸 이동
- 경찰 (추격 NPC 대응): 5 step 주기로 도둑의 최근 5 step 경로 기반 배치, 거리에 무관한 즉시 이동
- 경찰 수: 3 (조절 가능)
3.2 에이전트와 관측·행동
PoliceManager.RequestDecision).
decisionTimer(1초)마다 도둑의 최근 5 step 경로 방향(10) + 팀 ID(1) = 11-dim 관측을
ONNX 정책에 넣고, max_indices [2] → 도둑 현재 좌표 ±10 clamp로 3개 팀을 배치한다.
- 에이전트: 각 경찰 개체 (3개가 그룹 보상 공유)
- 관측 (input, 11 dim): 최근 5 step의 이동 좌표 2차원 벡터 5개 + 각 에이전트 ID 1개
- 행동 (output, [20, 20]): 각 리스트 최댓값 인덱스 → 0~19 정수 → 10을 빼고 도둑 현재 좌표에 더해 0~31로 clamp
3.3 보상 설계
- 그룹 보상 (+): 도둑이 경찰이 배치된 위치에 도착했을 때
- 그룹 페널티 (−): 도둑이 경찰 위치를 피했을 때, 도둑–각 경찰 거리 합
3.4 네트워크 & 학습 (DQN)
Input (11) → Linear(256) → Linear(256) → Linear(256)
→ Linear(256) → Linear(256) → Output [20, 20] - ε-greedy 정책 (ε: 1.0 → 0.01, 100 episode마다 ×0.9 decay)
- Experience Replay (max 50,000), batch 256
- Target Network: 128 step마다 갱신
- γ = 0.99, lr = 0.001 (100 episode마다 ×0.99 decay)
3.5 지속적 강화학습 루프
매 플레이 회차마다 다음을 반복한다.
w_t는 매 회차 이어 받아 갱신(w_t → w_{t+1})되어 cold start를 피하고,
하위 경로(경찰에 가장 적게 잡힌 경로)만 골라 replay buffer에 더해 플레이어 패턴 변화에 계속 적응한다.
- 플레이어가 게임을 플레이 → 도둑 이동 경로 데이터 누적
- 하위 3+개 경로(경찰에 가장 적게 잡힌 경로)를 추출
- 해당 경로들을 학습 데이터에 추가
- 기존 모델 가중치를 이어 받아 추가 학습 (Cold start 회피)
핵심 가정: 플레이어가 합리적이라면 자신이 가장 적게 잡힌 경로를 다음 회차에도 선택할 것이다. 따라서 그 경로에 대한 예측을 강화해 새로운 경로 탐색을 유도한다.
4. 학습 결과
경로 생성기(8방향 인접 동전 추적기)로 100 stage를 돌며 두 시스템의 하위 3+개 경로의 수명을 비교했다.
정적 시스템
- 평균 예측 성능은 더 안정·높음
- 단, stage 0 경로가 stage 100까지 하위 3+개에 잔존
- 92 / 100 stage에서 새 경로가 한 번도 하위에 들지 못함
- → 플레이어가 쉬운 경로에 고착, 체감 난이도 지속 하락
학습 기반 시스템 (제안)
- 평균은 진동, 정적보다 다소 낮음
- 하위 경로 수명이 짧고 매 stage 새 경로 등장
- 플레이어가 새로운 전략을 탐색하도록 유도
- → 체감 난이도 유지에 효과적
트레이드오프. 학습 기반은 난이도 유지엔 강하지만 절대 예측 성능은 정적보다 낮다. 후속 연구 방향으로 정적 + 학습 기반 하이브리드를 제시했다.
5. 한계와 후속
- 이산 그리드 가정 → 연속 공간 일반화 필요
- 실 사용자 효용 측정 미포함
- 경찰 수 확장 시 행동 공간 폭발에 대한 스케일링 전략 필요
- 정적·학습 기반 그룹 분할 하이브리드 구성
6. 레포지토리
3개의 레포로 분리되어 있다. 게임 본체 / ML-Agents 학습 환경 / 경로 예측 분리 환경.
runaway-if-you-can Unity GamePrivate
게임 본체. 플레이어, 경찰 시스템, 맵, UI, 씬 매니저 등 Unity 프로젝트.
a7garden/runaway-if-you-can runaway-if-you-can-ml-agents Python · PyTorchPrivate
MAPOCA, PPO, DQN, QMIX 등 다수 알고리즘 구현과 학습된 모델(.pt) 포함.
a7garden/runaway-if-you-can-ml-agents runaway-if-you-can-path-predicator Unity · ML-Agents
경로 예측 분리 학습 환경. ThiefAgent(방문·점수·리스크 관측), PoliceSystemAgent(그룹 보상·거리 페널티).
a7garden/runaway-if-you-can-path-predicator 7. 논문
지속적 강화학습을 활용한 게임 난이도 조절 시스템 연구 — 이정원, 전귀로. 광운대학교 소프트웨어학부, 2024.
키워드: 게임 난이도 조절, 지속적 강화학습, 경로 예측. 본 페이지는 논문의 핵심 환경·방법·결과를 요약한 것이며, 전문은 아래 PDF에서 확인할 수 있다.
📄 논문 PDF 열기