BurningTimesAi/프로젝트/수상한잡화점/기획/테이블_데이터_구조_재정비_v1.md

14 KiB
Raw Blame History

type: 테이블 데이터 구조 재정비 (수상한잡화점) 작성일: 2026-04-20 작성자: 기획팀장 (PM 경유 PD 재발 방지 지시 #42 수용) 관련PD지시: 기획팀 #42 · PD 2026-04-20 "게임 내 테이블 데이터 구조 재확인 + 누락 정보 보완" 상태: v1 초안 · PD 검증 선행 근거: Unity Export 실측 (D:/NerdNavis/FilGoodBandits/DeckBuilding/Assets/ResWork/Table/Export/)

수상한잡화점 — 테이블 데이터 구조 재정비 v1

§0. 본 문서의 목적

2026-04-20 PD 재발 방지 지시 5종 중 #42 "게임 내 테이블 데이터 구조 재확인 + 누락 정보 보완" 이행. 기존 기획팀이 "WorldMap 4개 그룹" 같이 추측·전제로 데이터 구조를 오해한 사건을 계기로 Unity Export CSV/JSON 전수 실측 기반 구조 재정비.

본 문서는 재발 방지 + 추후 모든 기획 작업의 1차 데이터 참조 SOT다.


§1. PD 용어 정의 확정 (SOT)

용어 정의 데이터 출처 총 개수
월드맵 게임 세계 전체 맵 WorldMapConfig 1개
구역 / 지역 월드맵 내 각 지역 (= Stage) WorldMapConfig.n_StageID 1~21 21개
스테이지 지역 내 각 맵 (= MapConfig) CreateMapConfig.s_MapConfigID 122개
서브맵 스테이지 내 노드 (전투·이벤트·이동 등) 런타임 생성 (RandomPatternConfig 기반) 스테이지마다 가변

§1-1. 용어 혼선 주의

  • 구 기획팀 용어 "WorldMap" = 실제로는 일부 스테이지 묶음의 배경 테마에 불과 (WorldMapConfig.s_StageBg = map_01~map_10 재활용)
  • "WM1~WM4 그룹"은 실측 무근 · 기획팀 추정이었음 — 본 v1 문서 이후 사용 금지
  • PD 지시 용어 엄수: 월드맵·구역/지역·스테이지 3층 명칭만 사용

§2. WorldMapConfig 구조

§2-1. 필드 정의 (실측)

필드 타입 의미
n_StageID int (1~21) 월드맵 장소(=지역) 고유 ID
n_StageName 참조 (localization) UI 표기용 명칭
s_StageDiorama string (공란) 월드맵 배치 디오라마 이미지
s_StageBg string UI 사용 BG 이미지 (map_01~map_10 재활용)
s_StageBGM string (공란) 스테이지 BGM
n_ExtraRandombag int 이벤트 추가 전리품 랜덤백 ID

§2-2. 실측 내용

21개 지역. Stage 1~21. 배경 이미지(s_StageBg)는 map_01~map_10이 반복 사용됨.

§2-3. 기획 의도 재확인

  • 각 지역은 독립적 세계관 공간 (지역 1 = 첫 입문 지역, 지역 21 = 최종 지역)
  • 지역별 배경 테마는 10종 순환 사용 (디자인 리소스 최적화)
  • 기획 시 "WorldMap 4개 그룹"은 실존하지 않음 — 21개 지역을 난이도 곡선 상 입문/초반/중반/후반으로 나누는 기획적 구분은 가능하나, 이는 데이터 구조가 아닌 기획 레이블

§3. CreateMapConfig 구조

§3-1. 필드 정의 (실측 41개 필드)

식별자 + 매핑

필드 의미
s_MapConfigID 맵 고유 ID (형식: Stage{지역번호}_{순번}, 예: Stage1_1·Stage1_4)
n_StageType 지역 번호 (1~21), WorldMapConfig.n_StageID 참조
n_AppearMonsterGroup 일반 몬스터 그룹 ID → ApprearMonsterPattern.n_AppearMonserGroup 참조
n_AppearBossGroup 보스 몬스터 ID (0 = 보스 없음) → MonsterList.n_ID 참조

노드 확률 체계 (10종 노드 타입)

각 노드 타입은 4필드 세트(확률·최소·최대·Data Border):

노드 타입 확률 필드 의미
몬스터 f_Monster / n_MobNodeMin / n_MobNodeMax 전투 노드
버프/디버프 f_BuffDebuff / n_BuffDebuffMin / n_BuffDebuffMax 효과 노드
캠프 f_CampFire / n_CampMin / n_CampMax 휴식·회복
암상인 f_Merchant / n_MerchantMin / n_MerchantMax 상점
보물 f_Treasure / n_TreasureMin / n_TreasureMax 보상
NPC f_NPC / n_NPCMin / n_NPCMax 이벤트
성소 f_Mine / n_MineMin / n_MineMax 특수 장소
갈림길 f_TwoWay / n_TwoWayMin / n_TwoWayMax 경로 선택
Nothing f_Nothing / n_NothingMin / n_NothingMax 빈 공간
Random f_Random / n_RandomMin / n_RandomMax 랜덤 롤

§3-2. 실측 현황 — 지역별 하위 스테이지 수

지역 하위 스테이지 수 지역 하위 지역 하위
1 4 8 5 15 5
2 6 9 6 16 3
3 5 10 5 17 8
4 7 11 5 18 8
5 6 12 7 19 9
6 7 13 4 20 9
7 4 14 5 21 4

총 122 스테이지. PD 2026-04-20 실측과 완전 일치.

§3-3. 기획 의도 재확인

  • 현재 수치는 임시 데이터 — 모든 스테이지에 동일 확률(80 몬스터 / 16.2 캠프 등) 입력
  • 기획팀의 역할: 스테이지별 노드 확률·최소/최대 개수 차별화 설계
  • PD 고려사항 5종 (재확인):
    1. 몬스터 특성: MonsterList.n_Specificity1~4 활용
    2. 고정+랜덤: 스테이지마다 고정 몬스터 + 매 판 랜덤 조합
    3. 3★ 조건: 12개 조건 풀 순환 배치 (P17 배타 7종 준수)
    4. 반복 방지: 지역 내 스테이지 간 + 지역 간 다양성
    5. 지역 순차: 지역 1 완성 → PD 승인 → 지역 2 착수

§3-4. 누락 정보 (추후 확인 필요)

  • n_AppearBossGroup 형식 불일치: CreateMapConfig에서 10001·10002MonsterList.n_ID 직접 참조로 보임. 하지만 이름이 n_AppearBossGroup(그룹 ID)이라 의미 혼동 — 개발팀 확인 필요

§4. ApprearMonsterPattern 구조

§4-1. 필드 정의

필드 의미
n_AppearMonserGroup 몬스터 그룹 고유 ID (CreateMapConfig.n_AppearMonsterGroup 참조)
n_MonsterID 해당 그룹에 소속된 몬스터 ID (MonsterList.n_ID 참조)
n_AppearRate 등장 확률 (100 = 무조건 등장 후보)

§4-2. 실측 예시 (Stage1_1)

  • n_AppearMonsterGroup = 10101
  • 소속 몬스터: 14001·14002·14013 (Pattern 소속 3종)

§4-3. 기획 의도

  • 그룹 ID 체계: {지역번호}0{순번} (예: 10101 = 지역 1 · 스테이지 1번 · 그룹 1)
    • Stage 1 = 10101~10104 (4개 하위 스테이지)
    • Stage 2 = 10201~10206 (6개)
    • ... Stage 21 = 82101~82104 (4개)
  • 각 그룹에 3~5종 몬스터가 등장 후보로 등록
  • 런타임에 해당 그룹에서 무작위 선택 (PD 고려사항 2 "랜덤" 대응)

§5. MonsterList 구조

§5-1. 필드 정의 (실측 24개 필드)

식별·표기

필드 의미
n_ID 몬스터 고유 ID (보스 10001~10028 · 일반 11001~14024 등)
n_Name 로컬라이제이션 참조 ID
e_MonsterType Boss_Range · Boss_Melee · Normal_Range · Normal_Melee 등
s_Image / s_Icon 리소스 경로

전투 능력치 (기획팀 1차 참조)

필드 의미
n_RewardExp 처치 경험치
n_HP 체력
n_Shield 보호막 (0 = 쉴드 없음)
f_AttackCoolTime 공격 쿨타임 (초)
n_AttackMin / n_AttackMax 공격력 범위
n_HitRate 명중력 (정수)
f_Cri / f_CriDmg 치명타 확률·피해량
n_Avoid_Meele / n_Avoid_Range 근·원 회피력
f_Scale 몬스터 크기 배율
e_AttackType Melee / Range
s_Projectile 원거리 투사체 경로

몬스터 특성 (PD 고려사항 1 대응 — 핵심 기획 축)

필드 의미
n_Specificity1~4 특성 ID (StatusConditionsList 참조 추정)

예시:

  • 오우거1 (10004): Specificity1=31004 · Specificity2=32004 → "체력 2배, 최대 공격력 2배"
  • 다크엘프 아처1 (10010): Specificity1=31010 · Specificity2=32010 → "광포화-신속 / 치명타 15%"

§5-2. 참고 필드 (CSV 헤더 31번째 이후)

  • Lv·DPS·몬스터 특성 — 기획 참고용 원본 수치

§5-3. 기획 의도 재확인

  • 몬스터 특성이 PD 고려사항 1의 핵심 — 스테이지별 몬스터 선정 시 특성 조합 기반
  • 특성 ID 체계(31XXX·32XXX)는 MonsterPatternList.json 또는 StatusConditionsList.csv와 교차 참조 필요
  • 누락 정보: Specificity ID → 효과명 매핑 테이블이 어디에 있는지 확정 필요 (개발팀 확인)

§6. 기타 관련 테이블 (요약)

§6-1. RandomPatternConfig

  • 스테이지 내 랜덤 노드 롤 규칙 (몬스터/버프/상인/보물/NPC/성소/갈림길 비중)
  • 4가지 프리셋: 기본·많은 상인·많은 상자·많은 몬스터
  • CreateMapConfig.f_Random이 이 테이블을 참조하여 런타임 확장

§6-2. StatusConditionsList

  • 상태 효과 정의 (Slow·Burn·Poison·Stun·Freezing·Blind·Heal_Hp_Add·Heal_Shield_Add 등)
  • 이펙트 경로 + 표시 위치
  • 몬스터 특성·카드 효과에서 참조 가능

§6-3. CardList

  • 카드 스탯 (공격력·쿨·효과)
  • Phase 3 이슈1_3_무시확정_v1.md §3에서 고정 전제 확정

§6-4. GlobalValue

  • 게임 전역 상수 (밸런스 조정 기준치 다수)

§6-5. 추후 전수 조사 필요

  • AchievementsMission·BuffPatternConfig·BattleLevelUp·ContentsOpenCondition 등 — 현 Phase 4 범위 외 보류

§7. 기존 산출물 오염 범위 (재정비 대상)

§7-1. 중대 오염 (전면 재작성 필요)

문서 오염 내용 재정비 방식
Phase4_지역1_노드구성_v1.md 지역 1 = Stage 1~6 (6개) 가정으로 전체 설계 전면 폐기 · v2 재작성 (지역 1 = Stage1_1~1_4 = 4개)
스테이지난이도곡선_v1.md §1 "WorldMap_1~4 4개 그룹" 가정 §1만 삭제·재작성 · §2~이후 실측 수치(서브맵수·보스)는 정확하므로 유지
맵패턴_사전분석_v1.md (의심) "42 슬롯" 체계 가정 (추정 = 21 스테이지 × 2 슬롯) 재검증 필요 — 121 스테이지 기준으로 재산출 가능성
재검증보고_맵패턴_v1.md (Day 11~14) 상위 가정 오류로 부분 오염 설계 원칙 추출만 승격 · 수치 재검증

§7-2. 경미 오염 (원칙 승격 + 언급 수정)

문서 오염 내용 재정비 방식
Phase3_종결_설계체계_v1.md WorldMap 4그룹 가정 잔존 가능성 본 v1 문서 참조 추가 + 해당 표현 교체
Phase4_노드구성_착수가이드_v1.md "청크 1 = Stage 1~6" 가정 재정비 — 청크 = 지역 1개씩으로 재정의 (Stage1_1~1_4 = 지역 1 청크)
이슈1_3_무시확정_v1.md §3 오염 없음 예상 (카드 수치 영역) 교차 점검만 수행

§7-3. 오염 없음 (유지)

  • 3성조건_12개_상세명세_v1.md — 조건 풀 자체는 WorldMap 구조 무관
  • SKILL.md P17 배타 7종 — 배타 조합 자체는 WorldMap 구조 무관
  • 밸런싱전략_v1.md·밸런싱문서_일관성점검_v1.md·전체테이블감사_v1.md — 데이터 테이블 실측 기반이라 오염 없음

§8. 재정비 우선순위

§8-1. 즉시 (본 라운드)

  1. 본 v1 문서 작성 (SOT 확립)
  2. 기획팀 데이터 실측 의무 룰 (#43) 작성
  3. Phase4_지역1_노드구성_v2.md 재작성 (4개 스테이지 기준)
  4. 기존 v1 상단에 "아카이브됨" 배너 추가

§8-2. 후속 (별도 PD 지시 수령 시)

  1. 스테이지난이도곡선_v1.md §1 정정
  2. Phase4_노드구성_착수가이드_v1.md 재정비
  3. 맵패턴_사전분석_v1.md·재검증보고_맵패턴_v1.md 재검증
  4. Phase3_종결_설계체계_v1.md 표현 수정

§9. 기각안

§9-1. 기각안 A: 기존 v1 수치 살리기 (Stage 1~6을 지역 1로 유지)

  • 기각 사유: PD 2026-04-20 "PD가 구성한 지역별 스테이지 수량 임의 수정 금지" 직접 지시 위반
  • 손실: v1 초안 전량 재작성 필요
  • 이득: 재작성 없음 (기각)

§9-2. 기각안 B: "WorldMap 4그룹"을 기획 레이블로 명시하고 병행 사용

  • 기각 사유: 용어 혼선의 근본 원인. 병행 사용 시 신규 기획자 재혼동 유발 (C22 용어 일관)
  • 대체안: "입문/초반/중반/후반 구간"은 기획 레이블로만 별도 명시 (데이터 구조가 아닌 밸런싱 분류)

§9-3. 기각안 C: 누락 정보(Specificity ID 매핑 등)를 기획팀 자체 추정으로 보완

  • 기각 사유: C23 허위 보고·추정 사실화 금지. 본 재발 방지 지시 #42의 교훈 정면 위반
  • 대체안: 개발팀 확인 요청 (소통 채널 발행 또는 PM 조율)

§10. 참고 문서

  • Unity Export 경로: D:/NerdNavis/FilGoodBandits/DeckBuilding/Assets/ResWork/Table/Export/
  • 실측 CSV 11종 (본 문서 기반): WorldMapConfig · CreateMapConfig · ApprearMonsterPattern · MonsterList · StatusConditionsList · RandomPatternConfig · CardList · PCList · PCAwakening · PCEvolution · PCEvolutionMax · GlobalValue · ItemList · BuffPatternConfig · RewardRandomBag · SanctuaryConfig · StatusOptionSet
  • 전수 감사: 프로젝트/수상한잡화점/기획/전체테이블감사_v1.md
  • 3성 조건 SOT: 프로젝트/수상한잡화점/기획/3성조건_12개_상세명세_v1.md
  • 배타 규칙: SKILL.md P17
  • 기획팀 룰: 프로젝트/수상한잡화점/기획/기획팀_데이터_실측_의무_v1.md (#43 산출물)

§11. 변경 이력 (P16 산출물 추적성)

일시 변경자 변경 필드 이전값 → 이후값 재미 근거 관련 PD 지시#
2026-04-20 기획팀장 전체 신설 (없음) → v1 초안 재발 방지 + 정확한 데이터 구조가 기획 의도 실현의 전제 #42