Game AI · Reinforcement Learning · Unity · ML-Agents

Runaway If You Can

플레이어가 쉬운 경로로 게임을 공략하는 순간 난이도가 떨어지는 문제를, 지속적 강화학습(Continual RL) 기반 추격 시스템으로 해결한 연구. Unity로 만든 32×32 그리드 환경에서 경찰 NPC의 경로 예측을 매 회차 갱신해 플레이어의 체감 난이도를 유지한다.

저자
이정원 · 전귀로 (광운대학교 소프트웨어학부, 2024)
역할
연구·구현 전담 (환경 설계, RL 에이전트, 실험, 분석)
환경
Unity 2022 · Unity ML-Agents Toolkit · Python 3 (PyTorch)
알고리즘
DQN (ε-greedy, Experience Replay, Target Network)

1. 게임 화면

아래는 실제 플레이 화면이다. 플레이어(도둑)가 32×32 그리드를 이동하면, 경찰 NPC 3체가 학습된 정책에 따라 다음 위치를 예측해 배치된다.

게임 플레이 화면 — 도둑이 이동하면 경찰 3체가 예측 위치에 배치되는 모습
도둑 이동 → 경찰 3체가 5 step 주기로 경로 예측 후 배치

2. 문제

게임의 추격 NPC가 정적인 규칙으로 플레이어 경로를 예측하면, 플레이어가 한 번 쉬운 경로를 발견하면 그 패턴을 반복 사용한다. 같은 패턴을 반복해서 잡히지 않는 상황이 곧 체감 난이도의 하락으로 이어진다.

본 연구는 이 문제를 체감 난이도 유지라는 게임 디자인 관점에서 정의하고, 플레이어의 실제 플레이 경로를 주기적으로 학습 데이터에 추가하는 지속적 강화학습(Continual Reinforcement Learning) 파이프라인을 제안한다.

3. 시스템 설계

3.1 환경 (Unity)

3.2 에이전트와 관측·행동

경찰 NPC 추론 파이프라인 다이어그램: 도둑 경로 환경에서 관측(11-dim)·정책(ONNX)·행동(3팀 배치)으로 이어지는 순환과 decisionTimer 1초 트리거
경찰 NPC 추론 파이프라인 (PoliceManager.RequestDecision). decisionTimer(1초)마다 도둑의 최근 5 step 경로 방향(10) + 팀 ID(1) = 11-dim 관측을 ONNX 정책에 넣고, max_indices [2] → 도둑 현재 좌표 ±10 clamp로 3개 팀을 배치한다.

3.3 보상 설계

3.4 네트워크 & 학습 (DQN)

Input (11) → Linear(256) → Linear(256) → Linear(256)
              → Linear(256) → Linear(256) → Output [20, 20]

3.5 지속적 강화학습 루프

매 플레이 회차마다 다음을 반복한다.

지속적 강화학습 루프: 플레이 → 하위 경로 추출 → 데이터 추가 → 이어 학습 → 모델 갱신 → 추격 시스템 반영 순환
한 회차의 학습 사이클. 모델 w_t는 매 회차 이어 받아 갱신(w_t → w_{t+1})되어 cold start를 피하고, 하위 경로(경찰에 가장 적게 잡힌 경로)만 골라 replay buffer에 더해 플레이어 패턴 변화에 계속 적응한다.
  1. 플레이어가 게임을 플레이 → 도둑 이동 경로 데이터 누적
  2. 하위 3+개 경로(경찰에 가장 적게 잡힌 경로)를 추출
  3. 해당 경로들을 학습 데이터에 추가
  4. 기존 모델 가중치를 이어 받아 추가 학습 (Cold start 회피)

핵심 가정: 플레이어가 합리적이라면 자신이 가장 적게 잡힌 경로를 다음 회차에도 선택할 것이다. 따라서 그 경로에 대한 예측을 강화해 새로운 경로 탐색을 유도한다.

4. 학습 결과

경로 생성기(8방향 인접 동전 추적기)로 100 stage를 돌며 두 시스템의 하위 3+개 경로의 수명을 비교했다.

학습 기반 추격 시스템의 stage별 경로 수명 변화
학습 기반 시스템: stage별 경로 수명. 하위 경로가 0~6 stage 주기로 교체됨

정적 시스템

  • 평균 예측 성능은 더 안정·높음
  • 단, 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 열기