콘텐츠로 이동

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회)
운영/시스템 점검·결제·신고 필요 시

푸시 설계 원칙

  1. 무협 톤 — "비무대회가 시작됩니다"가 아니라 "낙양에 영웅들이 모이고 있소"
  2. 개인 호명 — 가능하면 캐릭터 이름·문파명 포함 ("화산파 진검(陳劍) 협사여")
  3. 시간대 배려 — 23:00–08:00은 위급 외 발송 금지 (사용자 설정 가능)
  4. 점진 학습 — 클릭률 낮은 종류는 자동 빈도 감소
  5. 빠지지 않을 정보 — 사제·의형제 위급은 사용자가 끄지 못한다 (의리 시스템의 무게)

푸시 → 게임 깊은 연결

  • 푸시 한 번에 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에 노출) 인스턴스 분리 + 메모리 스코프 검증