카리온 보스 AI

플레이어를 학습하는 보스 AI 설계 · UE5 · 개인 기획


01. One-line Overview

“보스가 플레이어를 학습한다”

전통적인 액션 게임은 플레이어가 보스 패턴을 반복 학습해 클리어하는 구조다.
카리온은 그 구조를 역전시킨다 — 보스가 플레이어의 전투 습관을 Blackboard에 누적하고, 실시간으로 대응 전략을 바꾼다.

[일반 보스]
플레이어가 패턴 학습  →  반복 시도 →  클리어
                       (보스는 고정)

[카리온]
플레이어가 패턴 학습       ┐
                          ├→ 보스가 임계값 도달 시 학습 분기 발동
보스가 플레이어 습관 학습  ┘            ↓
                                  보스 패턴이 플레이어에 맞춰 바뀜
                                  같은 HP라도 다른 보스를 상대함

02. My Role Boundary

개인 기획 프로젝트. 아래 전부 단독 설계.

영역내용
서사 구조이중 결박(침식+주박) · 난이도 연동 서사 · 하드 복선 설계
Blackboard변수 11개 정의 및 역할 명세
BT 구조공용 Service 3개 + Phase 1~3 Tree 전체
학습 로직6분기 DominantStyle 판정 기준 · 난이도별 임계값
패턴 데이터Phase 1~3 전 21개 패턴, 60fps 기준 S/A/R 프레임 · 데미지 배율 · 특이사항 전부
연출 설계페이즈 전환 연출 · 입장 차이 · 대사 전체 목록

보스가 학습하는 “플레이어 행동”은 추상적 가정이 아니라, 같은 작성자가 별도로 설계한 플레이어 전투 시스템 기획서(경공격 3콤보 · Space 패링 스탠스 + 가드 게이지 · 우클릭 회피/저스트 회피 · E 스킬)에 정의된 실제 입력 체계다.


03. Core Decisions

① 난이도 = 수치 아닌 정보 비대칭

[문제] HP·데미지 수치로 난이도를 나누면 세 가지 문제가 동시에 발생한다.

[판단] 정보 제공량 자체를 난이도 변수로 설정한다.

세계관 연동: 쉬움/노말 = 침식이 강한 카리온(인식 약함), 하드 = 주박이 강화된 카리온(“이미 한 번 죽어봤고, 당신이 올 걸 알고 기다렸다”) → 설정과 게임플레이 구조가 같은 논리로 맞물림

[결과]


② DominantStyle 6분기 학습 BT

[문제] “보스가 플레이어를 학습한다”를 구현하려면 “플레이어 행동을 어떻게 분류할 것인가”를 먼저 결정해야 한다.

단순 카운트(회피 횟수 많으면 회피형)는 맥락을 잃는다 — 근거리 회피와 원거리 회피는 전혀 다른 전술이며, 순간 판단과 누적 습관도 구분해야 한다.

[판단] Blackboard에 11개 변수를 정의해 행동 맥락을 분리 수집한다.

이 변수들은 임의로 만든 게 아니라 플레이어 전투 시스템에서 실제로 쓰는 입력에 1:1로 붙는다 — DodgeCount=우클릭 회피, ParryAttempt=Space 패링, StanceRatio=패링 스탠스 유지(가드 게이지 소모) 의존도. 보스는 추상적 행동이 아니라 실제로 설계된 입력 체계를 학습한다.

EvaluateDominantStyle Service가 틱마다 임계값 비교 → DominantStyle enum 갱신 (복수 중복 가능)
틱 간격 자체가 난이도 변수: 쉬움 2초 / 노말 1초 / 하드 0.5초

[결과] 6개 독립 분기로 판정:

스타일판정 조건보스 대응
근접 회피형DodgeCount_Close ≥ 임계값AOE_Spin + 추적 반격
거리 조절형DodgeCount_Far ≥ 임계값광역 충격파, 공간 압박
원거리 유지형StayFar_Time ≥ 임계값대쉬 돌진, 지면 투사체
패링 의존형ParryAttempt ≥ 임계값페이크 모션, 딜레이 공격
스탠스 의존형StanceRatio ≥ 0.5패링 게이지 소진, 가드 브레이크
스탠스 미사용형StanceRatio ≤ 0.1빠른 연속기, 압박 강화

StanceRatioDominantStyle과 독립 분기 → 복수 동시 발동 가능
예: CloseDoger + StanceRatio≥0.5 → AOE_Spin 및 GuardBreak_Heavy 동시 적용


③ 3-Phase 패턴 잠금 해제 이중 구조

[문제] HP 기반 패턴 해제만 사용하면: “체력을 일정 이하로 깎으면 자동으로 다음 패턴”이 열림 → 플레이어가 어떻게 싸웠는지와 무관하게 패턴이 바뀐다.

“나는 당신을 보고 있었다”는 보스 설계 전제와 정면 충돌한다.

[판단] 이중 잠금 구조를 설계한다.

HP 하락 → 페이즈 전환 → 패턴 풀(pool) 확장  (기본 패턴 추가 해제)
                              ↓
               풀 내 학습 패턴은 별도 잠금 상태
                              ↓
         플레이어 행동 판정 임계값 도달 → 해당 학습 패턴만 개별 활성화

HP를 깎아도 학습 패턴은 자동 해제 안 됨 — 반드시 플레이어 행동이 임계값에 도달해야 발동

[결과]

페이즈별 진입 조건 / 학습 분기 단계적 확장

페이즈진입 조건학습 분기 수특이사항
Phase 1 — 침식입장 즉시5개 (FarDoger 없음)거리 조절형 학습 패턴은 Phase 1에 없음 — 페이즈가 진행될수록 학습 폭이 넓어지는 단계적 확장
Phase 2 — 각성 시작HP ≤ 70%6개 (전체)FarDoger 추가, 분기 폭 최대치
Phase 3 — 명경지수HP ≤ 40% (하드 전용)6개 (이중 잠금 없음)임계값 도달 즉시 발동 + 예고 없음. 보스가 “이미 모든 학습을 마친 상태”로 등장

04. Evidence

같은 페이지 아래에 별도 정리본 2개가 그대로 통합되어 노출된다 — 채용자가 한 페이지에서 6섹션 본문 → Evidence 전문까지 스크롤로 연속 검토할 수 있다.

#자료위치
1BT 구조도 — 공용 Service + Phase 1~3 Tree + 학습 분기 6개 + 패턴 잠금 해제 이중 구조같은 페이지 아래(Boss_AI_BT_구조도.md 정리본 통합)
2패턴 수치표 — Phase 1~3 전 21개 패턴 / 60fps S·A·R 프레임 / 데미지 배율 / 가드 게이지 소진 / 특이사항같은 페이지 아래(Boss_AI_패턴_수치표.md 정리본 통합)
3패턴 배율 요약 — 페이즈별 위험도 비교 (“Phase 3 고배율은 hit 위력이 아니라 탈출 불가 구조”)Boss_AI_패턴_수치표.md 하단 요약표

원본 PDF의 drawio PNG·스크린샷이 깨졌으나, 모든 핵심 데이터를 마크다운 표·트리 정리본으로 재구성 → 가독성·검색성·복사 가능성 모두 향상.

토대 — 플레이어 전투 시스템 (보스가 학습하는 대상)

출처: 전투시스템_기획서.md (같은 작성자, 카리온과 동일 세계·동일 레퍼런스)

“보스가 플레이어를 학습한다”가 성립하려면, 학습 대상인 플레이어 입력이 실제로 정의돼 있어야 한다. 카리온 보스는 추상적 행동이 아니라 아래 입력 체계를 읽는다.

입력 맵 (핵심만)

입력액션
좌클릭 / 좌클릭 홀드경공격 3콤보 / 강공격
Space패링 (스탠스 진입·유지, 가드 게이지 -5/초)
우클릭 / 우클릭 저스트회피 / 저스트 회피
E스킬 (에너지 30 소모)

보스가 읽는 행동 → Blackboard 변수 (1:1)

플레이어 행동보스 AI 변수
우클릭 회피 빈도·거리DodgeCount_Close / DodgeCount_Far
Space 패링 입력ParryAttempt
패링 스탠스 유지 시간(가드 게이지 소모)StanceTime_Total / StanceRatio
거리 벌리고 버티기StayFar_Time

위 2개 표는 카리온 학습 토대의 핵심 압축본. 에너지·가드 게이지 루프·프레임 데이터 등 전체 명세는 별도 페이지 /combat-system 로 이동 — 깊이를 원하는 사람만 펼친다(Flagship 과잉 비중 방지, 같은 페이지 끝에 Enter Project 버튼 노출).


05. Outcome

플레이어블 빌드 없음 (개인 기획 문서, UE5 구현 미착수). → 적용 가능한 최고 등급 = 3순위: 설계 완결성

설계 완결성 근거

1. 예외처리 완결

2. 프레임 데이터 완결

3. 레퍼런스 대비 차별점 (젠레스 존 제로 / 명조 기반 레퍼런스)


06. Reflection

난이도 차별화와 서사 충돌

난이도를 수치로만 나누는 구조를 피하고자, 난이도 차별화를 서사에 녹이는 방향으로 설계했습니다. 여기서 핵심 충돌이 발생했습니다.

카리온은 초대 소드마스터입니다. 보스의 격을 유지해야 하는 캐릭터입니다. 난이도별로 보스의 인식·대응을 다르게 설계하면서도 “쉬움의 카리온”과 “하드의 카리온”이 동일 인물로 읽혀야 했습니다. 격을 유지하면서 난이도 차이를 서사로 정당화하는 지점을 찾는 것이 가장 어려운 판단이었습니다.

이중 결박 구조로 해결했습니다. 난이도 차이를 보스의 약화가 아니라 “침식이 걷힌 정도 / 주박이 강화된 정도”로 치환했습니다. 소드마스터의 격을 유지하면서 난이도를 카리온과의 관계 선택으로 기능하게 설계했습니다.

다음 개선 — 설계 순서

이 충돌은 설계 순서에서 비롯됐습니다. 난이도를 특별하게 만들려는 의도가 앞서 서사를 먼저 구성했고, 난이도를 서사에 맞추며 충돌을 사후 봉합하는 흐름이 됐습니다. 두 축은 결과적으로 맞물렸으나, 정합성은 설계 순서가 아닌 사후 조정으로 얻었습니다.

다음 프로젝트에서는 난이도 설계 → 서사 구성 순으로 진행합니다. 난이도별 게임플레이 난점과 해결 메커니즘을 먼저 확정하고, 그 구조를 서사로 정당화합니다. 설계 리스크를 앞단에서 차단하는 방식으로 전환합니다.


카리온 보스 AI — Behavior Tree 구조도 (Evidence #1)

출처: Boss_AI_기획서.pdf BT 구조 / Karion_포트폴리오_6섹션.md 학습 분기표
용도: Karion 페이지 Evidence — 계층 트리 + 표 정리본 (drawio PNG 깨짐 → 마크다운 정리본 대체)
정리일: 2026-05-18


0. 공용 Service — 전 페이즈 상시 동작

3개 Service가 페이즈와 무관하게 매 틱 동작하며 Blackboard를 갱신한다.

Service역할틱 간격 (난이도 변수)
TrackPlayerAction회피·패링·방어·거리를 Blackboard에 누적쉬움 0.5s / 노말 0.3s / 하드 0.1s
EvaluateDominantStyle임계값 비교 → DominantStyle enum 갱신 (복수 중복 가능)쉬움 2s / 노말 1s / 하드 0.5s
CheckPhaseTransitionHP ≤ 70% → Phase 2 / HP ≤ 40% → Phase 3 (하드 전용)매 틱

틱 간격 자체가 난이도 변수다. 하드는 0.5s 간격으로 평가 → 플레이어가 습관을 형성하기 전에 이미 판정이 끝난다.


1. 학습 분기 — DominantStyle 6분기 (전 페이즈 공통 판정)

EvaluateDominantStyle이 아래 6개를 독립 판정한다. StanceRatio 분기는 DominantStyle과 독립 → 복수 동시 발동 가능.

스타일BT 노드명판정 조건보스 대응
근접 회피형CloseDogerDodgeCount_Close ≥ 임계값AOE_Spin + 추적 반격
거리 조절형FarDogerDodgeCount_Far ≥ 임계값광역 충격파, 공간 압박
원거리 유지형FarKeeperStayFar_Time ≥ 임계값대쉬 돌진, 지면 투사체
패링 의존형ParrierParryAttempt ≥ 임계값페이크 모션, 딜레이 공격
스탠스 의존형StanceRatio ≥ 0.5StanceRatio ≥ 0.5패링 게이지 소진, 가드 브레이크
스탠스 미사용형StanceRatio ≤ 0.1StanceRatio ≤ 0.1빠른 연속기, 압박 강화

예: CloseDoger + StanceRatio ≥ 0.5 → AOE_Spin과 GuardBreak 계열 동시 적용.

난이도별 학습 트리거

난이도학습 발동 시점예고
쉬움페이즈 전환 시 1회연출 + 대사 예고
노말전투 중 임계값 도달 시 1회 + 페이즈 전환 시 1회연출 + 대사 예고
하드임계값 도달 즉시예고 없음 (전 페이즈 변신형)

2. Phase 1 — 침식 상태

[Phase1_Tree]
└─ Selector
   ├─ [쉬움·노말: 페이즈 전환 시] ApplyLearnedPattern_Phase1 (모션+대사 예고)
   │   ├─ CloseDoger          → AOE_Spin + TrackingSlash
   │   ├─ FarKeeper           → DashBurst
   │   ├─ Parrier             → FakeSwing
   │   ├─ StanceRatio ≥ 0.5   → GuardBreak_Heavy
   │   └─ StanceRatio ≤ 0.1   → RapidCombo_Pressure
   ├─ [하드: 임계값 도달 즉시] ApplyLearnedPattern_Phase1 (예고 없음)
   ├─ [PlayerDistance ≤ 3m]   → MeleeCombo_Erratic
   ├─ [PlayerDistance > 6m]   → ChargeOrSlam
   └─ PatternCycle_Default

Phase 1 학습 분기는 5개FarDoger(거리 조절형) 없음. 6분기 중 5개만 사용.
학습 패턴은 HP가 깎여도 자동 해제되지 않고, DominantStyle 임계값 도달 시 개별 활성화(이중 잠금).


3. Phase 2 — 각성 시작 (HP ≤ 70%)

[Phase2_Tree]
└─ Selector
   ├─ [노말: 전투 중 임계값 도달 1회] ApplyLearnedPattern_Phase2 (모션+대사 예고)
   │   ├─ CloseDoger          → AOE_Spin + BackstepCounter
   │   ├─ FarDoger            → GroundWave + SpaceControl
   │   ├─ FarKeeper           → DashBurst + Projectile
   │   ├─ Parrier             → FakeSwing + DelayedSlash
   │   ├─ StanceRatio ≥ 0.5   → GuardBreak_Chain + StaminaDrain
   │   └─ StanceRatio ≤ 0.1   → HighSpeedComboNoBreak
   ├─ [하드: 임계값 도달 즉시] ApplyLearnedPattern_Phase2 (예고 없음)
   ├─ [PlayerDistance ≤ 3m]   → MeleeCombo_Precise
   └─ [PlayerDistance > 6m]   → ControlPattern_Phase2

Phase 2 학습 분기는 6개FarDoger 포함(Phase 1과 차이).


4. Phase 3 — 명경지수 (하드 전용 / HP ≤ 40%)

이중 잠금 없음. DominantStyle 즉시 적용, 예고 없는 완벽한 반박.

[Phase3_Tree]  ※ 하드 전용, HP ≤ 40%
└─ Selector
   ├─ [DominantStyle 즉시] PerfectCounter_Pattern (예고 없음)
   │   ├─ CloseDoger          → PreemptiveRead_Melee
   │   ├─ FarDoger            → PreemptiveRead_Space
   │   ├─ FarKeeper           → InstantClose_Burst
   │   ├─ Parrier             → MultiHit_NoFake
   │   ├─ StanceRatio ≥ 0.5   → UnblockableSequence
   │   └─ StanceRatio ≤ 0.1   → PrecisionBurst_Full
   ├─ [플레이어 공격 모션 감지] → PreemptiveCounter
   ├─ [거리 무관]              → PressureCycle_Full
   └─ IdleStance

5. 패턴 잠금 해제 — 이중 구조 요약

HP 하락 → 페이즈 전환 → 패턴 풀(pool) 확장 (기본 패턴 추가 해제)
                              │
                  풀 내 학습 패턴은 별도 잠금 상태
                              │
       플레이어 행동 판정 임계값 도달 → 해당 학습 패턴만 개별 활성화
  • HP만 깎아서는 학습 패턴이 열리지 않는다 → “전략이 존재하는 보스”
  • 하드 Phase 3: 이중 잠금 없이 DominantStyle 즉시 → 예고 없는 반박
  • 하드 선행 학습: 쉬움·노말 클리어 데이터 존재 시 Phase 1 시작 시점에 DominantStyle 1개 선행 해제

범례

색/구분의미
Service 노드전 페이즈 상시 동작 (TrackPlayerAction / EvaluateDominantStyle / CheckPhaseTransition)
Easy·Normal 학습 발동페이즈 전환·임계값 도달 시 예고 동반 발동
Hard 즉시 발동임계값 도달 즉시, 예고 없음
DominantStyle 분기6분기 독립 판정 (복수 중복 가능)
학습 패턴 (Phase 1·2)이중 잠금 — 판정 도달 시 개별 활성화
Phase 3 패턴 (하드 전용)이중 잠금 없음, 즉시 반박
기본·거리 기반 패턴PlayerDistance 조건 상시 패턴

카리온 보스 AI — 패턴 수치표 (Evidence #2)

출처: Boss_AI_기획서.pdf 13. 패턴 수치 테이블
용도: Karion 페이지 Evidence — 마크다운 표 정리본 (PDF 스크린샷 깨짐 → 정리본 대체)
정리일: 2026-05-18


공통 기준

항목정의
프레임 기준60fps
S / A / RS = 스타트업 / A = 액티브(히트박스 활성) / R = 회복
데미지 배율보스 기본 공격 1.0x 기준 (엔진 절댓값은 별도 설정)
가드 게이지총량 100%, 방어 해제 후 초당 30% 회복

Phase 1 패턴 — 침식 상태

패턴명히트박스프레임 (S/A/R)데미지 배율특이사항
MeleeCombo_Erratic200cmS1218 / A14 / R1016 (3~4hit)0.85x 각 hithit 타이밍 ±4f 랜덤 변동 → 리듬 읽기 방해. Phase 1 기본 근접 패턴
AOE_Spin300cmS18 / A36 / R24 (총 78f)0.6x x 3hit (합산 1.8x)스타트업 12f까지 회피 방향 추적. 3hit 연속 시 넉백 40f
TrackingSlash180cmS14 / A20 / R30 (총 64f)1.5x스타트업~액티브 전 최대 90° 궤도 보정. 패링 가능 (저스트 타이밍 6f 창)
DashBurst200cm (선단)S12 / A18 / R36, 최대 이동 1500cm2.0x히트박스 활성 14f~32f. hit 시 경직 30f. 이동 14f 이전 회피로 방향 끊기 가능
FakeSwing220cm페이크 28f → 딜레이 24f → S10/A16/R28 (총 106f)2.2x페이크 구간 패링 입력 시 경직 30f, 실제 공격 패링 불가. 딜레이 구간 회피 유효
GuardBreak_Heavy200cmS24 / A18 / R32 (총 74f)1.2x (브레이크 시 추가 1.5x)패링 게이지 70% 소진. 브레이크 발생 시 경직 48f. 회피 가능
RapidCombo_Pressure160cmS8/A8/R6 x 5hit (간격 6f, 총 110f)0.7x x 5hit (합산 3.5x)6f 간격 → 일반 회피 캔슬 불가. 누적 경직으로 탈출 불가. 스탠스 미사용형 대응 패턴

Phase 2 추가 패턴 — 각성 시작 (HP ≤ 70%)

패턴명히트박스프레임 (S/A/R)데미지 배율특이사항
MeleeCombo_Precise200cmS12/A14/R10 x 4hit 고정 (총 92f)1.0x 각 hit각 hit 패링 창 6f 고정. 4hit 전부 패링 성공 시 보스 경직 60f (반격 기회)
BackstepCounter250cm백스텝 18f → S8/A16/R24 (총 66f)1.8x플레이어 공격 직후 발동. 백스텝 구간 무적. 긴 리치로 롤 후 공격 패널티
GroundWave폭 250cm x 길이 1500cmS20 / A30 / R24 (총 74f)1.4x선형 지면 충격파. 점프·측면 회피 유효. SpaceControl 패턴 시 2연속 발사
Projectile100cm (구체 반경)시전 24f, 비행 1200cm/s, 3발 간격 18f1.3x 각 발원거리 압박용. 가드 가능. 3발 전부 회피 시 DashBurst 즉시 연계
DelayedSlash220cmFakeSwing 연계 즉시 → S8/A18/R26 (총 52f)1.6xFakeSwing 딜레이 경직 중 자동 연계. 경직 중 회피 불가
GuardBreak_Chain200cmS12/A14/R8 x 3hit (간격 8f, 총 102f)0.9x x 3hit (합산 2.7x)패링 게이지 35% x 3. 3타째 게이지 잔존 시에도 강제 브레이크. 8f 간격 일반 회피 불가
StaminaDrain200cmS14 / A20 / R28 (총 62f)0.8x (패링 게이지 50% 추가 소진)GuardBreak_Chain 종료 직후 연계. 패링 게이지 0이면 자동 넘어짐 판정
HighSpeedComboNoBreak160cmS6/A8/R2 x 6hit (간격 2f, 총 96f)0.65x x 6hit (합산 3.9x)2f 간격 → 회피 입력 완전 불가. 첫 hit 후 캔슬 불가. 스탠스 미사용형 최강 패널티

Phase 3 패턴 — 명경지수 (하드 전용, HP ≤ 40%)

패턴명히트박스프레임 (S/A/R)데미지 배율특이사항
PreemptiveCounter250cmS6 / A12 / R20 (총 38f)2.5x플레이어 공격 스타트업 10f 이내 자동 발동. 스타트업 중 무적 5f. 회피로만 대응
PreemptiveRead_Space300cmS4/A16/R20 + DashBurst 즉시 연계1.2x + 2.0x (합산 3.2x)플레이어 후퇴 모션 감지 → GroundWave 차단 후 즉시 갭 클로즈 연계
InstantClose_Burst200cmS4 / A10 / R30, 이동 속도 3000cm/s2.2x거리 무관 순간 갭 클로즈. 히트박스는 이동 끝점에만 활성
MultiHit_NoFake180cmS10/A12/R6 x 4hit (간격 6f, 총 112f)1.2x x 4hit (합산 4.8x)페이크 없이 실전 패링 창 4f. 4hit 전부 패링 성공 시 보스 자세 붕괴 60f
UnblockableSequence220cmS10/A14/R4 x 4hit (간격 4f, 총 128f)1.5x x 4hit (합산 6.0x)스탠스 hit 시 즉시 패링 브레이크. 1타 자세 붕괴(Posture Break) 판정. 회피·패링만 유효
PrecisionBurst_Full150cmS6/A8/R4 x 7hit (간격 4f, 총 126f)0.8x x 7hit (합산 5.6x)4f 간격 → 회피 입력 완전 불가. 좁은 범위·극고속. 스탠스 미사용형 대응 최종 패턴

패턴 배율 요약 — 페이즈별 위험도 비교

페이즈패턴유효 데미지 합산 (최대)
Phase 1 기본MeleeCombo_Erratic (4hit)3.4x
Phase 1 학습RapidCombo_Pressure (5hit)3.5x
Phase 2 기본MeleeCombo_Precise (4hit)4.0x
Phase 2 학습HighSpeedComboNoBreak (6hit)3.9x
Phase 3 하드UnblockableSequence (4hit)6.0x
Phase 3 하드PrecisionBurst_Full (7hit)5.6x

Phase 3의 고배율은 개별 hit 위력이 아니라 “탈출 불가 구조” 자체가 위험 요소다.
합산 배율이 가장 높은 UnblockableSequence(6.0x)·PrecisionBurst_Full(5.6x)은 회피·패링 입력 자체를 봉쇄하는 간격 설계로, 같은 배율이라도 “맞을 수밖에 없는” 구조적 위험을 만든다.


전투 시스템 전체 명세

보스가 학습하는 플레이어 입력 체계의 풀 스펙 — 콤보·패링·에너지·회피·락온 전부.

Enter Project →

김한얼

게임 기획자

Galaxy 테마파크

즐겨한 게임 — 행성으로 시각화 예정
호버 시 확대 + 이름·이미지 / 클릭 시 팝업(게임명·플레이 타임·짧은 설명)
Steam API 연동 + 수기 보강 데이터 대기 중

인생에 영향을 끼친 게임 — 강조 행성으로 시각화 예정
매핑은 즐겨한 게임과 동일, 추가로 "어떤 영향을 끼쳤는지" 설명
수기 작성 데이터 대기 중

플레이 타임 — 은하수로 시각화 예정 (행성 크기 = 플레이 시간)
Steam API 시간 데이터 대기 중

원본 PDF ↗ 새 창