type: 테이블 데이터 구조 재정비 (수상한잡화점)
작성일: 2026-04-20
작성자: 기획팀장 (PM 경유 PD 재발 방지 지시 #42 수용)
관련PD지시: 기획팀 #42 · PD 2026-04-20 "게임 내 테이블 데이터 구조 재확인 + 누락 정보 보완"
상태:
v1 초안 · PD 검증 선행
근거: Unity Export 실측 (D:/BurningTimes/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종 (재확인):
- 몬스터 특성: MonsterList.n_Specificity1~4 활용
- 고정+랜덤: 스테이지마다 고정 몬스터 + 매 판 랜덤 조합
- 3★ 조건: 12개 조건 풀 순환 배치 (P17 배타 7종 준수)
- 반복 방지: 지역 내 스테이지 간 + 지역 간 다양성
- 지역 순차: 지역 1 완성 → PD 승인 → 지역 2 착수
§3-4. 누락 정보 (추후 확인 필요)
n_AppearBossGroup 형식 불일치: CreateMapConfig에서 10001·10002 등 MonsterList.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. 즉시 (본 라운드)
- 본 v1 문서 작성 (SOT 확립)
- 기획팀 데이터 실측 의무 룰 (#43) 작성
- Phase4_지역1_노드구성_v2.md 재작성 (4개 스테이지 기준)
- 기존 v1 상단에 "아카이브됨" 배너 추가
§8-2. 후속 (별도 PD 지시 수령 시)
스테이지난이도곡선_v1.md §1 정정
Phase4_노드구성_착수가이드_v1.md 재정비
맵패턴_사전분석_v1.md·재검증보고_맵패턴_v1.md 재검증
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:/BurningTimes/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 |