docs(BT13-GodDem): 인게임 중앙디펜스 전환 설계 v1 + 원작 APK 분석 (밸런스 암호화·이미지 저작권)

- 설계도 v1: 중앙 고정 웨이브 디펜스 전환 + 경험치/스킬 3종 시스템, 단계 분할 P1~P5
- 원작 Wild Survival 실측: il2cpp+YooAsset+pglarmor, 밸런스 259테이블 암호화(스트림), 이미지 평문(저작권 이슈)
- 도구 자동승인 project allow 보강 (ToolSearch·MCP 리소스 도구)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-08-19 23:53:03 +09:00
parent c4a5dfd706
commit 4346d4da79
3 changed files with 113 additions and 2 deletions

View File

@ -14,6 +14,10 @@
"Agent", "Agent",
"Edit", "Edit",
"Write", "Write",
"Edit(.claude/**)",
"Write(.claude/**)",
"Edit(//c/Users/sw/.claude/**)",
"Write(//c/Users/sw/.claude/**)",
"MultiEdit", "MultiEdit",
"NotebookEdit", "NotebookEdit",
"Skill", "Skill",

View File

@ -0,0 +1,83 @@
# GodDem 인게임 「중앙 고정 웨이브 디펜스」 전환 설계 v1
> **작성**: 총괄PM 2026-08-19 · **근거**: PD 전투 설명 + 영상(황야의 생존자, `com.and.wild.sur.victory`) + GodDem 레포 실측
> **PD 확정 방향** (AskUserQuestion): ① 신규 씬 신설 ② 기존 유닛 프리팹 재사용 ③ 설계도 먼저
> **원칙**: 아웃게임(로비·가챠·컬렉션 등) 유지 · 인게임 씬만 신규. 더미 리소스 = 기존 GodDem 자산 재사용.
---
## 1. 목표 게임 형태 (레퍼런스 = 황야의 생존자)
- 플레이어 캐릭터 1명이 **화면 중앙 고정**, 이동 없음.
- 사방(또는 좌우)에서 몰려오는 적을 **웨이브마다 자동 공격·처치**.
- 적 처치 시 인게임 재화 획득 → **매판 리셋되는 로그라이크식 스텟 강화**.
- **10웨이브마다 보스** 등장. 스테이지별 지정 웨이브 클리어 시 다음 스테이지.
- **(PD 신규 추가)** 경험치 도입 → 레벨업마다 **특수 스킬 3종 택1**.
---
## 2. 현재 GodDem 인게임 구조 (실측)
| 요소 | 현재 상태 | 파일 |
|------|----------|------|
| 전투 모드 | `Stage`(좌우 대전)·`Defense`(중앙 방어)·`Invasion`·`RandomBattle` | `BattleEnum.cs` |
| 플레이어 | 유닛을 **코스트로 소환** (본인 캐릭터 없음) | `BattleManager.Summon.cs` |
| 유닛 AI | 자동 탐지·이동·공격 (`Player`=우측 진격, `Enemy`=좌측 진격) | `AttackUnitBase.cs` |
| 웨이브 | `WavePatternGroup``WavePattern`(등급·수·등장시각) 코루틴 소환 | `BattleManager.Wave.cs` |
| 성장 | `BoostController`(영구 메타)·가챠·장비 | `PlayerManager.cs` |
| 보상 | 적 처치 + 구조물 피해 → 골드 | `BattleManager.Reward.cs` |
**핵심 발견**: `Defense` 모드가 이미 **사방 스폰(`EnemySpawnPoint` 7개) → 중앙 타겟(`DefenseTargetPoint`, `-1.38,0,0`)으로 적이 몰려오는** 구조. 목표 장르의 이동·스폰 골격이 이미 존재한다 (`AttackUnitBase.GetTargetStructureNormalizedDirection()` 내 `Defense` 분기).
---
## 3. 갭 분석 — 신규로 만들 것 vs 재사용할 것
### 3-A. 재사용 (더미 리소스 — 코드/에셋 즉시 활용)
| 자산 | 용도 |
|------|------|
| Unit 프리팹 54종 (`Resources/Prefabs/Unit/`) | 플레이어 캐릭터 1종 + 적 다수 |
| `AttackUnitBase` 자동 탐지·공격·투사체 | 플레이어 자동 공격 로직의 8할 |
| `Defense` 사방 스폰 + 중앙 타겟 | 적 몰려오기 이동 |
| `WavePattern`/`WavePatternGroup` 테이블 | 웨이브 구성 |
| `AbilityConfig.csv` + `Image/Ability/*.png`(01~10, active/inactive) | **레벨업 스킬 3종 택1** 데이터·아이콘 |
| `Card.csv`(등급·OptionType 배열·아이콘) | 스킬 카드 UI 표현 |
| `OptionType`(공격배율·HP배율·크리 등) | 로그라이크 스텟 강화 효과 |
| Spine 구조물·HP바·투사체 풀 | 연출 |
### 3-B. 신규 구현 (다음 단계)
1. **신규 씬** `SurvivalBattle.unity` — 중앙 고정 플레이어 + 사방 스폰 레이아웃.
2. **플레이어 중앙 고정 모드** — Unit 프리팹 1종을 중앙 배치, 이동 억제(`Move()` 오버라이드 또는 신규 `FixedPlayerUnit`). 자동 공격은 그대로.
3. **인게임 경험치·레벨** — 적 처치 시 EXP 누적, 임계치 도달 시 레벨업 이벤트. (`PlayerManager`와 분리된 매판 세션 상태)
4. **레벨업 스킬 3종 택1 UI** — 레벨업 시 `AbilityConfig` 풀에서 3종 랜덤 → 택1 → 즉시 스텟/효과 적용. `Card.csv`·Ability 아이콘 재사용.
5. **매판 로그라이크 스텟**`BoostController`(영구)와 별개인 **세션 임시 스텟 컨테이너**. 씬 진입 시 리셋.
6. **10웨이브 보스**`WavePattern`에 보스 등장 플래그 or 웨이브 인덱스 %10 규칙.
---
## 4. 단계 분할 (P32 맥락 분할 · C50 토큰 정책)
| Phase | 산출물 | 승인 필요 |
|-------|--------|----------|
| **P0 (본 문서)** | 설계도 v1 | PD 검토 |
| **P1** | 신규 씬 골격 배치 — 중앙 플레이어(더미 유닛) + 사방 스폰 + 카메라. 눈으로 보이는 레이아웃 | 착수 승인 |
| **P2** | 중앙 고정 플레이어 자동전투 + 웨이브 구동 (기존 로직 연결) | P1 후 |
| **P3** | 인게임 경험치·레벨 + 매판 로그라이크 스텟 | P2 후 |
| **P4** | 레벨업 스킬 3종 택1 시스템 (신규 스킬 도입) | P3 후 |
| **P5** | 10웨이브 보스 + 스테이지 진행 클리어 | P4 후 |
각 Phase는 개발팀장(설계) → 팀원(구현) → 개발팀장(검증)의 C49 프로세스로 진행.
---
## 5. 미결·PD 결정 대기
- **A. 적 접근 방향**: 사방(360°, 뱀서라이크형) vs 좌우(2방향, 원작 영상은 좌우 우세). → 영상 정밀 확인 or PD 지정.
- **B. 플레이어 무기/공격**: 근접 vs 원거리 투사체 (Unit 프리팹 중 무엇을 플레이어로). → P1에서 더미 지정 후 조정.
- **C. 스킬 3종 풀 규모**: `AbilityConfig` 기존 특성 재활용 vs 신규 스킬 테이블. → P4 상세 설계.
---
## 6. 참고 — APK 분석 불가 (기록)
PD 제공 APK(`game-killer-v5.4.0.1-MOD-gamekillerapp.com`)는 실측 결과 **원작 게임이 아닌 GameKiller 치트 도구**(Baidu 패킹 + `libcheat.so` + 오토클릭 UI, Unity 게임 흔적·원작 문자열 0건). 디컴파일해도 원작 로직 부재 + 크랙 패킹본 멀웨어 리스크로 분석 라인 종료. 원작 분석은 `com.and.wild.sur.victory` 정식 APK 필요하나, 본 설계는 PD 설명 + 영상으로 충분.

View File

@ -43,6 +43,30 @@
- 미커밋 변경 149건 = 전부 LF→CRLF 줄바꿈 차이 (실질 내용 변경 0건, 새 PC 클론 부산물) — 위험 없음 - 미커밋 변경 149건 = 전부 LF→CRLF 줄바꿈 차이 (실질 내용 변경 0건, 새 PC 클론 부산물) — 위험 없음
- Unity MCP 패키지(`com.coplaydev.unity-mcp`) 프로젝트에 설치됨 - Unity MCP 패키지(`com.coplaydev.unity-mcp`) 프로젝트에 설치됨
## 4. 결론 ## 4. 결론 (초기)
개발 준비 완료 보고. 다음 작업은 PD 지시 대기. 개발 준비 완료 보고. → 이후 PD 인게임 재설계 지시로 전환 (§5~).
## 5. PD 지시 — 인게임을 「황야의 생존자」형으로 재설계
- **PD 원문 요지**: 유튜브(https://youtu.be/cBVc0OwUX6U, "황야의 생존자") 형태로 인게임 변경. 더미 리소스(기존 GodDem 자산)로 기본 시스템 동일 설계·씬 배치. **아웃게임 유지, 인게임 씬만 변경.**
- **PD 전투 설명**: ①플레이어 화면 중앙 고정, 몰려오는 적 웨이브마다 자동 공격·처치 ②처치 재화로 매판 로그라이크 스텟 강화 ③10웨이브마다 보스, 스테이지별 웨이브 클리어 시 다음 ④신규: 경험치→레벨업마다 특수 스킬 3종 택1.
- **원작 정체**: Wild Survival (`com.and.wild.sur.victory`), mnmfun. 캐주얼 방치형. 영상은 중앙 디펜스 전투 파트.
- **PD AskUserQuestion 확정**: ①신규 씬 신설 ②기존 유닛 프리팹 재사용 ③설계도 먼저.
- **산출**: 설계도 `공유/기획/GodDem/2026-08-19_인게임_중앙디펜스_전환_설계_v1.md`.
## 6. APK 분석 2건 (실측)
### 6-A. 1차 APK — 원작 아님 (오파일)
- `game-killer-v5.4.0.1-MOD-gamekillerapp.com` = **GameKiller 치트 도구**. Baidu 패킹(`baiduprotect*.dex`) + `libcheat.so` + 오토클릭 UI. Unity 게임 흔적·원작 문자열 0건. 디컴파일 무의미 + 크랙 패킹본 멀웨어 리스크. **분석 종료.**
### 6-B. 2차 APK — 원작 확정, 밸런스 암호화·이미지 평문
- 경로: `Downloads/Wild+Survival+-+Idle+Defense_862_APKPure/` (XAPK 스플릿 3종: base + UnityDataAssetPack 235MB + config.arm64_v8a).
- **엔진**: Unity **2022.3.62f3**, **il2cpp**(`global-metadata.dat` 매직 정상 `af1b b1fa`), **YooAsset**(해시 번들 2938개), **pglarmor 보호**(`libpglarmor.so`·`libil2cpp.so` 66MB).
- **밸런스 데이터**: TextAsset **259개 전부 존재** (`hero_level` 550KB·`pricetable`·`heroskillattributes`·`A80_CombatPowerConfig`·`heroequipmentupgrade`·`shop`·`rankrewards` 등). **그러나 커스텀 스트림 암호**로 암호화 — 전 파일 동일 32byte 헤더 `0d63611716074008120a471006623f394e560c7913687c4e4b171605044b0f0f`, 단일 XOR 불가. 복호화 키는 pglarmor 보호 `libil2cpp.so` 내부 → **네이티브 리버싱 필요(고난도·불확실)**. 파일명으로 원작 시스템 구조만 파악됨.
- **이미지 리소스**: **평문·추출 가능** (UnityPy로 Texture2D→PNG 6개 실증: 文字底框·背光·花 등 중국풍 UI 에셋). 단 **타사 상용 게임 아트 사용 = 저작권 침해 → 출시 불가**. 추출물은 scratchpad 임시 폴더에만, 레포 커밋 금지.
- **스케일 갭**: 원작은 방대한 수집형 RPG(hero·star·equipment·worldboss·pvp·crossserver·auction). 우리 중앙 디펜스 MVP와 근본 불일치.
- **결론**: 원작 밸런스 수치 그대로 이식 = 암호화+pglarmor로 즉시 불가, 리버싱은 별도 대형 과제. 원작 리소스 사용 = 저작권 불가. → **원작 시스템 구조를 참고하되 수치·리소스는 GodDem 자체 자산으로 설계** 권장 (PD 방향 결정 대기).
## 7. 도구 자동 승인 후속 (PD 반복 지시)
- 세션 중 `dontAsk` 미적용(재시작 전) + 빌트인 도구 unknown 분류로 프롬프트 반복 발생 → user/project/local 3계층에 `ToolSearch`·`ReadMcpResourceTool`·MCP 리소스 도구·`.claude/**` 편집 allow 등록. `settings.local.json` 신설.