06. 살아있는 강호 — AI 동적 세계¶
이 문서의 역할: 강호가 "살아있는 것처럼 보이는" 메커니즘을 정의한다. AI 사건 생성·NPC 기억·푸시·가드레일의 단일 진실 소스.
6.1 핵심 원칙¶
AI는 묘사한다. 시스템은 결정한다.
- AI가 "장문인이 죽었다"고 말할 권한은 없다. 결정은 결정론적 시스템이 한다.
- AI는 결정된 사실을 어떻게 보일지만 만든다.
- 이 분리가 깨지면 "환각"·"드리프트"가 발생하고, 한 번 무너지면 게임의 신뢰가 무너진다.
6.2 사건의 3 스케일¶
| 스케일 | 영향 범위 | 빈도 | 트리거 주체 |
|---|---|---|---|
| 개인 사건 | 1명의 플레이어 | 매 세션 1–3건 | AI + 결정론 룰 |
| 지역 사건 | 한 도시·권역의 모든 플레이어 | 1–3일 1건 | 결정론 시스템 |
| 세계 사건 | 강호 전체 | 1주에 1건 | 결정론 시스템 + 운영 |
6.2.1 개인 사건 — "당신만의 강호"¶
- 플레이어 평판·관계망·과거 행동을 입력으로 AI가 생성
- 예: "당신이 작년에 살린 표국주가 답례를 가져왔다"
- 1차 MVP의 컨텐츠 핵심 (사용자별 인스턴스의 의미를 만드는 영역)
6.2.2 지역 사건 — "도시가 흔들린다"¶
- 같은 지역 플레이어 모두가 영향받음
- 예: "낙양 비무대회 개최", "흑풍채가 항주 표국 습격"
- 결정론적으로 트리거되고, AI는 묘사·NPC 반응만 생성
6.2.3 세계 사건 — "강호의 역사"¶
- 시즌 메인 라인의 일부
- 예: "마교 부활의 징조 발견", "절세 비급 출토"
- 1차 MVP에선 주간 푸시로 통합 강호 사건 시뮬레이션 (plan.md 6.1 참고)
- 시즌 2+부터 진정한 공유 페르시스턴트 영역 확대
6.3 사건 트리거 — 결정론 룰 카탈로그¶
AI가 임의로 사건을 만들지 않는다. 사건은 트리거 룰로 발생한다.
트리거 종류¶
| 종류 | 예 |
|---|---|
| 시간 트리거 | 매주 월요일 09:00 → 무림맹 회의 결과 발표 |
| 평판 트리거 | 살기 80+ 도달 → 정파 토벌대 출현 |
| 관계 트리거 | 사제의 사망 → 복수 임무 자동 발행 |
| 누적 트리거 | 화산파 임무 10회 완수 → 일대제자 승급 가능 |
| 무작위 트리거 | 일일 행동력 0 시 5% 확률 → 기연 인카운터 |
| 운영 트리거 | 운영자가 시즌 사건 수동 발사 |
사건 생성 파이프라인¶
[트리거 조건 만족]
↓
[결정론 시스템: 사건 메타 생성]
- 사건 ID, 종류, 영향 범위
- 등장 NPC 후보 (관계망에서)
- 보상·페널티 결정
↓
[LLM 호출: 묘사 생성]
- 위 메타 + 플레이어 페르소나 + 과거 사건 컨텍스트
- 3–6문장 출력
↓
[가드레일 검증]
- 묘사가 NPC 기존 사실과 충돌? → 재생성
- 룰 위반 묘사 (없는 무공·죽은 NPC) → 재생성
↓
[플레이어 통보 (푸시 또는 인게임)]
6.4 4계층 메모리 — 운영 가이드¶
plan.md에서 정의한 4계층 메모리 (작업·일화·의미·절차)를 GDD 측면에서 풀어쓴다.
작업기억 (Working Memory) — 현재 컨텍스트¶
- 한 세션의 직전 5–10턴
- 매 세션 시작 시 초기화 (단, 직전 미완료 대화는 인계)
- LLM 컨텍스트 윈도우의 상단
일화기억 (Episodic Memory) — 함께 겪은 사건¶
- 플레이어 ↔ NPC 간 모든 의미 있는 상호작용 로그
- 결정론 시스템이 ID + 타임스탬프 + 핵심 요약 1줄 저장
- AI 호출 시 관련성 높은 5–10개만 RAG로 주입
- 수년치 기록을 그대로 주입하지 않는다 (비용·드리프트 방지)
의미기억 (Semantic Memory) — 강호 일반 지식¶
- 문파·지리·NPC 기본 사실의 정적 데이터
- AI 호출 시 시스템 프롬프트 캐시로 활용
- 시즌 종료 시 갱신 (멸망한 문파 등)
절차기억 (Procedural Memory) — 행동 패턴¶
- NPC별 캐릭터성·반응 패턴
- 예: "혈천교 교주는 자비를 베풀지 않는다"
- 페르소나 카드 형태로 NPC마다 ~200자 텍스트
- 변하지 않는 핵심 → 시스템 프롬프트에 항상 포함
메모리 압축 정책¶
- 일화기억 30개 초과 시 → 오래된 것은 LLM이 "한 단락 회상"으로 요약 후 원본 폐기
- "강호 일반 지식화"된 사건은 의미기억으로 승격 (예: 1년 전 사건 = 모두가 아는 역사)
6.5 가드레일 에이전트 — 무엇을 막는가¶
가드레일은 LLM 응답을 받은 후, 플레이어에게 노출하기 전에 검증한다.
검증 항목¶
| 항목 | 위반 예 | 처리 |
|---|---|---|
| 권위 사실 충돌 | 죽은 NPC가 등장 | 재생성 |
| 무공 환각 | NPC가 가지지 않은 무공 사용 | 재생성 |
| 위치 일관성 | 화산파 장문인이 항주에 있음 | 재생성 (혹은 결정론 시스템 검토) |
| 평판 톤 일치 | 적대 NPC가 친절함 | 재생성 또는 톤 강제 주입 |
| 안전 정책 | 잔혹·성적·자해 묘사 | 차단·필터링 |
| 메타 누설 | "이건 게임이고 데미지는 12점" 같은 메타 발화 | 재생성 |
가드레일 vs 사용자 경험 trade-off¶
- 재생성을 너무 자주 하면 응답 지연 발생 (목표 P95 < 4초)
- 가드레일은 "치명적 위반"만 차단, 약한 위반은 로깅만 후 노출
- 위반 데이터는 누적되어 모델 라우팅·프롬프트 튜닝의 입력
6.6 푸시 알림 카탈로그¶
푸시는 강호 살아있음의 가장 강한 증거이자, 가장 빠른 이탈 트리거.
푸시 종류 — 관심도 우선¶
| 종류 | 예시 | 발송 빈도 |
|---|---|---|
| 사제·의형제 위급 | "당신의 제자가 흑풍채와 격돌 중" | 즉시, 드뭄 |
| 개인 사건 | "당신을 찾는 손님이 객점에 있다" | 일 1–2회 |
| 지역 사건 | "낙양에서 비무대회 개최" | 주 1–2회 |
| 세계 사건 | "마교 부활의 징조" | 시즌 1–2회 |
| 수련 완료 | "내공 1주천이 끝났다" | 자동 알림 |
| 기연 | "당신의 길에 누군가 쓰러져 있다" | 드뭄 (월 1–3회) |
| 운영/시스템 | 점검·결제·신고 | 필요 시 |
푸시 설계 원칙¶
- 무협 톤 — "비무대회가 시작됩니다"가 아니라 "낙양에 영웅들이 모이고 있소"
- 개인 호명 — 가능하면 캐릭터 이름·문파명 포함 ("화산파 진검(陳劍) 협사여")
- 시간대 배려 — 23:00–08:00은 위급 외 발송 금지 (사용자 설정 가능)
- 점진 학습 — 클릭률 낮은 종류는 자동 빈도 감소
- 빠지지 않을 정보 — 사제·의형제 위급은 사용자가 끄지 못한다 (의리 시스템의 무게)
푸시 → 게임 깊은 연결¶
- 푸시 한 번에 30초 만에 의미 있는 액션 가능해야 함
- 예: 푸시 → 탭 → "참가" / "거절" / "후일" 3선택 화면 → 끝
6.7 NPC 페르소나 카드 — 표준 템플릿¶
NPC마다 다음 데이터가 있다 (~200자 권장):
이름: 매화검객 진수(陳秀)
문파: 화산파 일대제자
경지: 절정
나이: 38
성별: 남
출신: 화산 본가
페르소나: |
과묵하고 자존심이 높다. 화산검법에 대한 자부심이 강하며,
사파를 경멸한다. 자신의 사부에게는 깊은 충성심을 보이지만,
동문 사형제와는 미묘한 경쟁의식을 가진다.
말투: |
높임말. 한자어 빈출. "그렇소", "...하셨소" 어미.
화가 나면 짧게 끊어 말한다.
금기: |
- 화산파를 욕하면 즉시 비무 도전
- 사부의 험담은 절대 용납하지 않음
- 술자리에선 평소보다 다정해진다
초기 호감: 정파 +20, 사파 -30
페르소나 작성 가이드¶
- 3개 키워드: 핵심 가치, 성격 결, 약점/금기
- "친절한", "착한" 같은 평면적 형용사 금지. 행동·맥락 중심.
- AI가 묘사를 만들 때 직접 인용 가능한 어휘 1–2개 포함
- 모든 메인 NPC는 인간 작가가 작성. 단역은 LLM 생성 + 인간 검수.
6.8 1차 MVP — 인스턴스 + 통합 사건 모델¶
plan.md 6.1에서 정의된 모델의 운용 가이드:
인스턴스 모델¶
- 각 플레이어는 자신의 강호 인스턴스를 가짐
- NPC 상태·관계·사건은 인스턴스마다 독립
- 메인 강호 백본 (5대정파 장문인 등)은 모든 인스턴스 공유 (단, 죽음·은퇴는 인스턴스별)
주간 통합 사건¶
- 매주 월요일 글로벌 세계 사건 1건 발행
- 이 사건은 모든 인스턴스에 동시 등장
- 각 인스턴스에서 플레이어가 어떻게 대응했는가는 서로 다름
- 다음 주 월요일에 "강호 동향" 요약 제공 — "당신과 같은 사건에 다른 영웅들은 이렇게 했소" (글로벌 통계)
점진적 공유 영역 확대 (시즌별)¶
| 시즌 | 공유 영역 |
|---|---|
| 시즌 1 | 인스턴스 + 주간 통합 사건 + 글로벌 비무대회 (시즌 종료) |
| 시즌 2 | 거점 도시 일부의 NPC 풀 공유 (실시간 만남) |
| 시즌 3 | 문파 거점 일부 공유 |
| 시즌 4 | 변경·서역 일부 영역 풀 공유 |
| 시즌 5+ | 단일 강호 통합 (목표) |
이 점진 확대는 기술 안정화·운영 능력에 따라 조정 가능. 무리하게 통합하지 않는다.
6.9 비용 관리 정책¶
LLM 호출 비용은 게임 손익의 1번 변수 (plan.md 8장 ARPU 1,300원 가정).
호출 라우팅¶
| 호출 타입 | 모델 | 이유 |
|---|---|---|
| 비전투 NPC 일상 대화 | Gemini Flash-Lite / GPT-4o Mini | 90% 케이스, 저렴 |
| 전투 묘사 | Claude Haiku 4.5 또는 Sonnet 4.6 | 톤 품질 중요 |
| 메인 시나리오·기연 | Claude Sonnet 4.6 | 핵심 임팩트 |
| 가드레일 검증 | Claude Haiku 4.5 | 빠르고 일관 |
| 시즌 메인 분기·복잡 회상 | Claude Opus 4.7 | 깊이 필요한 순간만 |
비용 절감 기법¶
- 프롬프트 캐싱: 시스템 프롬프트·세계관 데이터 캐싱 (반복 호출에서 저렴)
- 컨텍스트 압축: 긴 일화기억은 요약본으로 대체
- 배치 처리: 비실시간 묘사 (오프라인 자동 수련 결과 등)는 배치 큐
- 로컬 폴백: 단순 응답 (인사·간단 안내)은 룰 기반 템플릿
- 세션 요약 캐싱: 같은 NPC와 같은 컨텍스트의 반복 진입은 직전 요약 활용
목표: 토큰 비용 70–85% 절감 (plan.md).
6.10 핵심 KPI — 살아있는 강호¶
- 메모리 회상률 — 과거 사건이 자연스럽게 NPC 발화에 인용되는 세션 비율 (목표 40%+)
- 푸시 클릭률 — 강호 사건 푸시 → 게임 진입 (목표 25%+)
- 사건 다양성 지수 — 일주일 내 등장한 고유 사건 / 활성 유저 (낮으면 컨텐츠 풀 부족)
- 가드레일 위반율 — 1000 호출당 차단 (목표 < 5)
- 세션당 토큰 비용 — ARPU 대비 30% 미만 유지
6.11 위험과 대응¶
| 위험 | 대응 |
|---|---|
| AI가 NPC를 임의로 죽임 | 가드레일 + 결정론적 사망 권한 분리 |
| 같은 사건이 너무 자주 반복 | 사건 풀 다양화 + 최근 사용 사건 페널티 가중치 |
| NPC 톤 드리프트 | 페르소나 카드 정기 검수 + 프로덕션 샘플링 |
| 푸시 피로 | 빈도 자동 감쇄 + 사용자 설정 + 23–08시 묵묵 |
| 컨텍스트 누수 (다른 플레이어 정보가 NPC에 노출) | 인스턴스 분리 + 메모리 스코프 검증 |