세 명의 merge 후 안정화가 완료된 시점에서, 다음 단계 개발 방향과 구체적인 구현 계획을 정리합니다.


현재 상태 요약 (v0.9)

완성도 높은 시스템

  • NPC AI: 9명, 일과 스케줄, 날씨 반응, 호감도 5단계
  • 날씨/시각: 6종 날씨, 파티클, 밤낮 전환, 별/반딧불이
  • 퀘스트: 하드코딩 튜토리얼 + 동적 퀘스트 9종 (3티어)
  • 카드: 8종 수집, 효과 적용, 드롭률 시스템
  • 발견: 15개 숨겨진 장소, 시간/날씨 조건부
  • 멀티플레이어: Firebase 위치 동기화, 실시간 접속자 표시
  • LLM 대화: Gemini 모델 체인, SSE 스트리밍

핵심 문제점

문제 설명
기억 없음 NPC가 이전 대화를 전혀 기억하지 못함
경제 없음 화폐/상점/교환 시스템 부재, 아이템이 퀘스트 토큰일 뿐
서사 없음 퀘스트가 독립적, 연결된 이야기가 없음
도전 없음 실패/긴장감이 없음, 리스크 제로
표현 없음 캐릭터 커스터마이징, 집 꾸미기 없음
소셜 없음 NPC 간 관계가 없음, 멀티플레이어 상호작용 없음

비전: "AI가 만드는 살아있는 마을"

LLM을 단순 채팅 응답기에서 세계의 두뇌로 격상시킵니다.

  • NPC가 플레이어를 기억하고, 관계가 깊어질수록 대화가 변합니다
  • NPC끼리 관계를 맺고, 갈등하고, 화해합니다
  • 마을에 사건이 생기고, 플레이어의 선택이 결과를 바꿉니다
  • 매 플레이스루가 다른 이야기가 됩니다

다른 브라우저 게임과의 차별점: 스크립트된 대화가 아닌, AI가 생성하는 살아있는 관계와 서사.


Phase 1: NPC 기억 시스템 🧠

가장 적은 코드로 가장 큰 체감 변화

목표

NPC가 플레이어와의 과거를 기억하고, 대화에 자연스럽게 반영한다.

구현 항목

  • NPC별 memory 배열 추가

    • 각 NPC에 memory: [] 필드
    • 대화할 때마다 요약을 저장 (최근 10개 유지)
    • 저장 형식: { tick, summary, sentiment, topic }
  • LLM 호출 시 기억 컨텍스트 주입

    • 시스템 프롬프트에 [과거 기억] 섹션 추가
    • 호감도 레벨에 따라 톤 지시 변경
    • "낯선 사이" → 존댓말/경계, "소울메이트" → 반말/농담
  • 대화 요약 자동 생성

    • LLM 응답 후, 별도 호출로 1줄 요약 생성 (flash 모델)
    • 또는 응답에 요약을 포함하도록 프롬프트 설계
  • 기억 기반 자발적 언급

    • NPC가 먼저 과거를 언급하는 ambient 대화
    • "저번에 커피 좋아한다고 했지? 카페에 새 메뉴 나왔대"
    • 호감도 2 이상일 때 활성화
  • 저장/불러오기에 memory 포함

    • save/load에 NPC memory 배열 직렬화
    • memory가 너무 길면 오래된 것부터 제거

API 비용 최적화

  • 기억 요약: gemini-2.0-flash (저렴, 빠름)
  • 기억 참조 대화: 기존 모델 체인 유지
  • 토큰 절약: 기억 10개 × ~30토큰 = ~300토큰 추가

Phase 2: 의미있는 대화 반응 💬

플레이어의 말이 게임에 실제로 영향을 준다

목표

NPC가 플레이어의 말 내용에 따라 감정/관계가 실질적으로 변한다.

구현 항목

  • LLM 응답에 감정 메타데이터 포함

    • 응답 JSON에 mood_change, relation_delta 필드 추가
    • 위로 → +관계, 무례 → -관계, 재미 → +무드
    • 서버 프록시에서 파싱 후 전달
  • NPC 감정 상태 시각화

    • 기존 mood(neutral/happy/sad) 확장 → 감동/화남/불안 등
    • 말풍선 색상이나 이모지로 현재 감정 표시
  • 특별 대화 트리거

    • 특정 주제(고민, 비밀, 꿈) 언급 시 숨겨진 반응
    • 호감도 3+ NPC에게 깊은 이야기를 꺼내면 특별 퀘스트 발동
    • "나 요즘 힘들어" → 위로 퀘스트 체인 시작
  • 대화 톤 학습

    • 플레이어가 주로 반말/존댓말 쓰는지 추적
    • NPC가 그에 맞춰 대화 스타일 조정

Phase 3: NPC 소셜 그래프 🕸️

NPC끼리 관계를 맺고, 드라마가 발생한다

목표

NPC 사이에 감정/관계가 존재하고, 그로 인한 이벤트가 자동 발생한다.

구현 항목

  • NPC-NPC 관계 매트릭스

    • npcRelations[npcA][npcB] = { type, value }
    • 관계 유형: 친구, 라이벌, 짝사랑, 무관심
    • 초기값: 성격 기반 자동 설정
  • 소셜 이벤트 생성기

    • 5~10분 주기로 LLM에 월드 상태 전달
    • "현재 NPC 관계 상황을 보고, 발생할 수 있는 사건 1개 생성"
    • 예시: "김민수가 최민영에게 고백했다가 거절당함"
  • 가십 시스템

    • NPC와 대화하면 다른 NPC에 대한 소문을 들음
    • "허승준이 요즘 공원에서 혼자 시간을 많이 보내더라..."
    • 플레이어가 전달/비밀유지 선택 가능
  • 중재 퀘스트

    • NPC 갈등 발생 시 플레이어가 중재할 수 있는 퀘스트
    • 결과에 따라 NPC-NPC 관계 변화
    • 양쪽 모두의 호감도에 영향

Phase 4: 동적 스토리 아크 📖

며칠에 걸친 이야기가 AI로 생성된다

목표

단발성 퀘스트가 아닌, 여러 단계로 이어지는 서사가 자동 생성된다.

구현 항목

  • 스토리 아크 생성기

    • LLM이 현재 월드 상태(관계, 날씨, 계절, 이벤트 이력)를 보고 3~5단계 스토리 생성
    • 템플릿 예시: 마을 축제, 실종 사건, NPC의 꿈 실현, 갈등 해소
  • 분기 시스템

    • 각 단계에서 플레이어 선택지 2~3개
    • 선택에 따라 다음 단계가 달라짐
    • LLM이 선택 결과를 반영한 후속 스토리 생성
  • 스토리 아카이브

    • 완료된 스토리를 기록/열람
    • "마을 이야기" 탭 추가

Phase 5: 경제 & 생활 시뮬 🏪

자원 순환과 코지 요소

구현 항목

  • 화폐 시스템 (골드/코인)

    • 퀘스트 보상, 아이템 판매로 획득
    • NPC 상점에서 소비
  • NPC 상점

    • 카페: 음료 (버프 아이템)
    • 시장: 재료, 선물용 아이템
    • 호감도에 따라 할인/특별 품목
  • 집 시스템

    • 플레이어 전용 공간
    • 가구/장식 배치
    • NPC 초대 가능
  • 계절/축제 이벤트

    • 봄: 벚꽃, 여름: 불꽃놀이, 가을: 수확, 겨울: 크리스마스
    • 계절 한정 아이템/퀘스트

Phase 6: 탐험 & 도전 확장 ⚔️

구현 항목

  • 맵 확장

    • 숲/동굴/해변 등 새 영역
    • 스토리 진행으로 해금
  • 미니게임

    • 낚시, 요리, 보물찾기
    • NPC와 대결 가능
  • 도전 퀘스트

    • 시간 제한, 조건부 성공, 랭킹
    • 실패 시 관계도 하락 등 리스크
  • 멀티플레이어 확장

    • 채팅, 이모트
    • 협동 퀘스트, 교환

구현 우선순위 & 예상 일정

순서 Phase 핵심 가치 상태
1 NPC 기억 시스템 가장 큰 체감 변화 🔲 시작 전
2 의미있는 대화 대화에 의미 부여 🔲 시작 전
3 NPC 소셜 그래프 살아있는 마을 🔲 시작 전
4 동적 스토리 아크 몰입감 극대화 🔲 시작 전
5 경제 & 생활 시뮬 장기 플레이 동기 🔲 시작 전
6 탐험 & 도전 확장 콘텐츠 다양성 🔲 시작 전

API 비용 전략

용도 모델 호출 빈도 토큰/회
일반 대화 gemini-2.0-flash 플레이어 발화 시 ~500
기억 요약 gemini-2.0-flash 대화 종료 시 ~100
소셜 이벤트 gemini-2.0-flash 5~10분 ~800
스토리 아크 gemini-2.5-pro 아크 시작 시 ~2000
감정 분석 gemini-2.0-flash 대화 시 (응답에 포함) +50

기존 대비 추가 비용: 주로 기억 요약(대화당 +100토큰)과 소셜 이벤트(5~10분당 1회). 대부분 flash 모델 사용으로 비용 최소화.


변경 이력

날짜 내용
2026-02-18 초안 작성, Phase 1~6 정의