| 항목 | 내용 |
|---|---|
| 프로젝트명 | 삼국지 AI — 하이브리드 프로토타입 |
| 목적 | MJ가 직접 플레이하며 재미를 검증하는 MVP |
| 타겟 유저 | 삼국지 매니아 (깊은 역사 지식 보유) |
| 핵심 경험 | ① 선택에 따라 역사가 바뀌는 재미 ② AI 캐릭터와의 몰입감 있는 대화 |
| 플레이 시간 | 캐릭터 1명 기준 약 5시간 |
| 개발 방식 | 빠르게 MVP → 반복 개선 (애자일) |
| 플레이 모드 | 싱글플레이 전용 |
| 첫 테스트 | 소규모 커뮤니티 — 삼국지 팬 5~10명 |
三國志 AI — SRS
소프트웨어 요구사항 명세서 v1.0 · 2026-02-27 · 하이브리드 프로토타입
1 프로젝트 개요 & 목적
▾2 범위 (In-scope / Out-of-scope)
▾✅ In-scope (프로토타입)
- 플레이 가능 캐릭터 3명 (조조, 유비, 손견)
- 4대 핵심 시스템 기본 구현 (전투/내정/외교/인사)
- 참모 시스템 — AI 생성 성격별 조언
- 하이브리드 인터페이스 (선택지 + 자연어 입력)
- 중간 수준 세계 시뮬레이션 (NPC 분기, 월드 상태 변화)
- 소설체 내레이션 (삼국지연의 스타일)
- 캐릭터 초상화 20명 + 간단한 지도
- BGM + 효과음 + TTS 음성
- 자동 저장 + 수동 세이브 슬롯
- 웹 PWA (Phase 1)
❌ Out-of-scope (프로토타입)
- 멀티플레이
- 4명 이상 플레이 캐릭터
- 스팀/모바일 빌드 (Phase 2~3)
- 서버 세이브 (Phase 2+)
- 고급 3D/애니메이션
- 실시간 전투 시스템
- 계정 시스템 / 소셜 기능
- 다국어 지원
- AI 음성 대화 (실시간 STT)
3 시스템 설계 (4대 시스템)
▾턴 구조: 1턴 = 1일, 이벤트 드리븐 방식
⚔️
전투
대화형 전투 판정
🏛️
내정
자원·건설·민심 관리
🤝
외교
동맹·배신·조공
👤
인사
등용·충성·관직
3.1 전투 시스템
- 대화형 전투: 전투 판정 AI가 상황을 묘사하고, 참모가 전략을 조언
- 플레이어 선택: 기본 선택지 + 자연어 직접 명령 가능
- 판정 요소: 장수 스탯, 병력 수, 지형, 날씨, 사기, 보급
- 참모 조언: 참모별 성격에 따른 차별화된 조언 (AI 생성)
- 전투 결과: 승패에 따른 영토·병력·장수 포획 처리
3.2 내정 시스템
- 자원 관리: 금, 식량, 병력 — 턴마다 수입/소비 계산
- 건설: 거점별 시설 건설 (농장, 시장, 병영, 대장간 등)
- 징병: 민심과 연동 — 과도한 징병 시 민심 하락
- 민심: 세금·징병·이벤트에 따른 동적 변화, 반란 트리거
3.3 외교 시스템
- 동맹: 세력 간 동맹 체결/파기, 조건부 동맹
- 배신: NPC 세력의 배신 가능성 (AI 판단 기반)
- 혼인: 정략결혼을 통한 관계 강화
- 조공: 약소 세력 조공 → 복속 경로
3.4 인사 시스템
- 인재 등용: 재야 장수 발견·등용, 포로 설득
- 충성도: 장수별 충성도 관리, 이반 방지
- 관직 배정: 적재적소 배치 → 효율 보너스
4 AI 아키텍처
▾4.1 듀얼 모델 전략
⚡
경량 모델 (90%)
Gemini Flash
GPT-4o-mini
Claude Haiku
GPT-4o-mini
Claude Haiku
🧠
고급 모델 (10%)
Claude Opus 4.6
GPT-4.5
Gemini Ultra
GPT-4.5
Gemini Ultra
4.2 용도 분배
| 용도 | 모델 계층 | 비중 |
|---|---|---|
| NPC 일반 대화 | 경량 | ~40% |
| 내정/외교 판정 | 경량 | ~25% |
| 참모 조언 (일반) | 경량 | ~15% |
| 이벤트 내레이션 | 경량 | ~10% |
| 핵심 서사 분기 | 고급 | ~5% |
| 전투 판정 (대규모) | 고급 | ~3% |
| 참모 특별 조언 | 고급 | ~2% |
4.3 AI 대화 비중
- 프로토타입: 핵심 장면 20~30% AI 생성
- 향후: 점진적 확대 예정 (40% → 60%)
- 나머지: 미리 작성된 미션 트리 + 템플릿 기반 텍스트
4.4 프롬프트 아키텍처
- 시스템 프롬프트: 캐릭터 성격/스탯/관계 데이터 주입
- 컨텍스트 윈도우: 최근 대화 + 현재 월드 상태 요약
- 가드레일: 역사적 일관성 유지, 메타 발언 방지
5 UI/UX 설계
▾5.1 하이브리드 인터페이스
- 기본 선택지 UI: 2~5개 선택지 버튼으로 빠른 진행
- '직접 말하기': 자연어 입력 옵션 — AI가 해석하여 게임에 반영
- 전환: 선택지 아래에 항상 자유 입력 필드 표시
5.2 화면 구성
- 메인 화면: 내레이션 텍스트 + 캐릭터 초상화 + 선택지
- 상태 패널: 자원/병력/민심 요약 (접힘 가능)
- 지도 화면: 간단한 세력 지도 (거점별 색상 구분)
- 장수 목록: 소속 장수 스탯/충성도 확인
5.3 내레이션 스타일
- 문체: 삼국지연의 스타일 소설체, 격식체
- 예시: "조조가 장막 안으로 들어서니, 순욱이 일어나 예를 갖추었다..."
- 대화: 캐릭터별 말투 차별화 (AI가 성격 데이터 기반 생성)
6 시각/오디오 설계
▾6.1 시각 요소
| 요소 | 스타일 | 상태 |
|---|---|---|
| 캐릭터 초상화 | 실사풍 | 20명 완료 |
| 텍스트 UI | 다크 테마, 금색 포인트 | 설계 중 |
| 세력 지도 | 간단한 2D 벡터 | 미정 |
6.2 오디오 요소
| 요소 | 용도 | 상태 |
|---|---|---|
| BGM | 장면별 배경 음악 (전투, 평화, 긴장 등) | 소스 미정 |
| 효과음 | UI 인터랙션, 전투 효과 | 소스 미정 |
| TTS 음성 | 핵심 대사 음성 출력 | 엔진 미정 |
7 저장 시스템
▾7.1 이중 저장 구조
💾
자동 저장
sessionStorage
매 턴·이벤트 후 자동
매 턴·이벤트 후 자동
📁
수동 세이브
localStorage
플레이어가 직접 저장
플레이어가 직접 저장
7.2 저장 데이터
- 월드 상태: 모든 세력의 영토, 자원, 병력, 관계
- 장수 상태: 위치, 충성도, 스탯, 건강
- 미션 진행: 현재 미션, 분기 이력, 플래그
- 대화 이력: 최근 N턴 대화 (AI 컨텍스트용)
- 플레이어 설정: 볼륨, TTS on/off 등
7.3 세이브 슬롯
- 수동 슬롯 5~10개 (프로토타입)
- 슬롯별: 캐릭터명, 턴 수, 날짜, 스크린샷(옵션)
- 내보내기/가져오기 (JSON) 지원
7.4 Phase 2+ 확장
- 서버 세이브 (클라우드 동기화) — 아키텍처 미정
- 크로스 플랫폼 세이브 공유
8 플랫폼 & 배포 전략
▾8.1 단계별 플랫폼
| Phase | 플랫폼 | 기술 | 목표 |
|---|---|---|---|
| Phase 1 | 웹 | PWA | MVP · 재미 검증 · 커뮤니티 테스트 |
| Phase 2 | 스팀 (PC) | Tauri | 유료 출시 · 본격 수익화 |
| Phase 3 | 모바일 | Capacitor | 시장 확대 · IAP 최적화 |
8.2 기술 스택 (Phase 1)
- 프론트엔드: Vanilla JS + HTML/CSS (기존 코드 리팩토링)
- 백엔드: Cloudflare Workers (API 프록시, 토큰 관리)
- AI 호출: Workers → 각 AI 제공자 API
- 호스팅: Cloudflare Pages (정적 자산)
9 수익 모델
▾9.1 가격 정책
| 상품 | 가격 | 내용 |
|---|---|---|
| 기본 패키지 | ₩5,000 | 게임 본편 + AI 토큰 500개 |
9.2 추가 토큰 IAP
| 패키지 | 가격 | 토큰 | 개당 단가 |
|---|---|---|---|
| 소량 | ₩1,000 | 120개 | ₩8.3 |
| 중량 | ₩3,000 | 400개 | ₩7.5 |
| 대량 | ₩5,000 | 750개 | ₩6.7 |
| 월정액 | ₩3,900/월 | 900개/월 | ₩4.3 |
9.3 토큰 경제
- 마진율: 20~30% (유저 경험 우선)
- 1토큰 ≈ AI API 1회 호출 (경량 모델 기준)
- 고급 모델 호출: 3~5토큰 소모
- 500토큰 ≈ 약 5시간 플레이 (캐릭터 1명 완주)
10 기존 자산 목록
▾| 자산 | 상세 | 상태 |
|---|---|---|
| 캐릭터 데이터 | 783명 — 스탯, 성격, 관계, 이벤트, 거점, 건강 | 완료 |
| 미션 트리 | 20명 × 325개 미션 = 총 975개 분기 | 완료 |
| 캐릭터 초상화 | 20명 실사풍 초상화 | 완료 |
| 비즈니스 모델 | 가격 정책, 토큰 경제, 수익 예측 문서 | 완료 |
| 프로토타입 코드 | play.js, play.css, worker/ (리팩토링 필요) | 리팩 필요 |
11 마일스톤 & 우선순위
▾M1 · Week 1~2
코어 리팩토링 & 기반 구축
기존 play.js/play.css 리팩토링, 모듈 구조 설계, 게임 루프(턴 시스템) 구현, 저장 시스템 기초
M2 · Week 3~4
AI 통합 & 대화 시스템
듀얼 모델 라우팅, 프롬프트 아키텍처 구축, NPC 대화 파이프라인, 캐릭터 성격 주입
M3 · Week 5~6
4대 시스템 기본 구현
전투(대화형), 내정(자원), 외교(동맹), 인사(등용) — 각각 최소 기능 구현
M4 · Week 7~8
미션 트리 연동 & 세계 시뮬레이션
975개 분기 데이터 통합, NPC 세력 AI, 월드 상태 변화, 이벤트 드리븐 처리
M5 · Week 9~10
UI/UX & 시각/오디오
하이브리드 인터페이스, 초상화 연동, 지도 UI, BGM/효과음, TTS 통합
M6 · Week 11~12
알파 테스트 & 폴리싱
MJ 자체 플레이 테스트, 버그 수정, 밸런스 조정, 캐릭터 3명 완주 검증
M7 · Week 13~14
베타 테스트 (커뮤니티)
삼국지 팬 5~10명 대상, 피드백 수집, 반복 개선
우선순위 매트릭스
| 우선순위 | 기능 |
|---|---|
| P0 · 필수 | 턴 시스템, AI 대화, 전투 판정, 미션 분기, 저장 |
| P1 · 중요 | 참모 조언, 내정·외교·인사 기본, 세계 시뮬레이션 |
| P2 · 부가 | 초상화 연동, 지도, BGM/효과음, TTS |
| P3 · 나중 | 세이브 내보내기, PWA 오프라인, 추가 캐릭터 |
12 미결 사항
▾| # | 항목 | 설명 | 긴급도 |
|---|---|---|---|
| 1 | BGM/효과음 소스 | 라이선스 프리 음원 or 자체 제작 여부 결정 필요 | P2 |
| 2 | TTS 엔진 | ElevenLabs / Google TTS / 브라우저 내장 중 선택 | P2 |
| 3 | 지도 UI 상세 | SVG 자체 제작 or 라이브러리 사용, 인터랙션 범위 | P2 |
| 4 | 테스터 모집 방법 | 커뮤니티 채널, 모집 기준, 보상 여부 | P1 |
| 5 | 서버 세이브 아키텍처 | Phase 2+ 클라우드 동기화 — DB 선택, 인증 방식 | P3 |
13 결정 사항 로그
▾라운드 1 — 프로젝트 기초 설정 (2026-02-27)
| # | 질문 | 결정 |
|---|---|---|
| 1 | 프로젝트 목적 | MJ가 직접 플레이하며 재미 검증 |
| 2 | 타겟 유저 | 삼국지 매니아 (깊은 역사 지식) |
| 3 | 핵심 경험 | 역사 변경 재미 + AI 캐릭터 대화 몰입감 |
| 4 | 플레이 시간 | 5시간 (캐릭터 1명 기준) |
| 5 | 완성 방식 | MVP → 반복 개선 (애자일) |
| 6 | 플레이 모드 | 싱글플레이 전용 |
| 7 | 4대 시스템 | 전투 · 내정 · 외교 · 인사 전부 구현 (기본 수준) |
| 8 | AI 모델 전략 | 90% 경량 + 10% 고급 듀얼 모델 |
| 9 | 플랫폼 전략 | 웹 PWA → 스팀 → 모바일 |
| 10 | 수익 모델 | ₩5,000 + AI 토큰 과금 |
라운드 2 — 프로토타입 상세 설계 (2026-02-27)
| # | 질문 | 결정 |
|---|---|---|
| 1 | 플레이 가능 캐릭터 | 3명: 조조(위), 유비(촉), 손견(오) |
| 2 | 참모 시스템 | 포함 — 참모별 성격에 맞는 AI 조언 |
| 3 | 인터페이스 방식 | 하이브리드 — 선택지 UI + 자연어 입력 |
| 4 | 세계 시뮬레이션 수준 | 중간 — NPC 분기 + 월드 상태 변화 |
| 5 | 내레이션 스타일 | 소설체 (삼국지연의 격식체) |
| 6 | 시각 구성 | 텍스트 + 초상화 + 간단한 지도 |
| 7 | 오디오 구성 | BGM + 효과음 + TTS |
| 8 | 저장 방식 | 자동 저장(세션) + 수동 슬롯(로컬) |
| 9 | AI 대화 비중 | 핵심 장면 20-30%, 점차 확대 |
| 10 | 첫 테스트 방법 | 소규모 커뮤니티 (팬 5~10명) |