31 KiB
31 KiB
GodDem 대화로그 — 2026-08-19
세션: BT13-GodDem 개시 (총괄PM). 프로젝트 레포:
E:\NerdNavis\GodDem
1. PD 지시 — GodDem 프로젝트 세션 개시 (신규 프로젝트)
- PD 원문: "이 세션은 우리 조직의 새로운 프로젝트인 GodDem 프로젝트 개발을 위한 세션이야. 현재 프로젝트 레포는 'E:\NerdNavis\GodDem' 이므로 코드 및 프로젝트를 제대로 검토해보고 개발할 준비가 되면 보고해."
- 수행: 레포 전체 실측 검토 (C39) → 검토 결과 보고 (본 로그 §3)
2. PD 지시 — 도구 자동 승인 처리
- PD 원문: "앞으로는 도구 사용을 묻지 않도록 자동으로 도구 승인처리해."
- 집행:
.claude/settings.json(조직 SOT) 갱신permissions.defaultMode:acceptEdits→dontAsk(승인 프롬프트 배제, deny 목록 차단은 유지)permissions.additionalDirectories:E:\NerdNavis\GodDem등록 (외부 레포 접근 자동화)- allow에
mcp__mcpforunityserver__*추가 (현행 Unity MCP 서버명 — 구mcp__unity-mcp__*병존 유지)
- 주의: defaultMode 변경은 세션 재시작 시점부터 완전 적용
3. GodDem 레포 검토 결과 (실측 요약)
정체
- Unity 6000.3.19f1 모바일 게임. productName "에어리언워", 구명 prototypeAlien (GitHub lucas-jg/prototypeAlien 유래)
- origin:
https://burning.i234.me/NerdNavis/GodDem.git(조직 자체 호스팅) · 브랜치 master 단일 · origin과 완전 동기화 (ahead/behind 0/0) - 마지막 커밋 2026-07-18
1cd8c04"Hero 탭 정보부 포트레이트 직하 배치 (PD 옵션 c 확정 반영)"
게임 구조
- 장르 골격: 유닛 코스트 자동 충전 → 소환 → Player vs Enemy 유닛 전투 + MainStructure(구조물) 방어. Wave·Stage·TimeLine 진행
- 전투:
Assets/Script/Battle/— BattleManager (partial: Reward·Stage·Summon·Wave), MeleeUnit/RangeUnit/ShotUnit, Projectile, MainStructure - 메타: 가챠(GachaController)·부스트(BoostController)·컬렉션·장비(EquipT)·미션(GeneralMissionController)·재화(CurrencyManager)
- 데이터:
Assets/Script/Table/18종 테이블 (Unit·Stage·StageBalance·WavePattern·Gacha·Collection·Equip·Mission·Goods 등) + TableManager - 매니저: PlayerManager (partial: Battle·Stage·Summon·TimeScale) = 유저 데이터 허브 (UserDataDTO 저장)
- 씬: BaseLoading → Lobby → Battle (+ UIBattleScene·SampleScene)
- 렌더링: Spine (TimeLine1~3 × Stage1~6 구조물 아틀라스), 네임스페이스
NerdNavis.* - 게임 코드 ~170개 .cs (Spine·TMP 서드파티 제외 395개 중)
조직 이력 (중요)
- 레포 내부
UIMigration/MIGRATION_SPEC.md= 총괄PM 2026-07-16 작성 (UI Toolkit → UGUI+TMP 전환 SOT). 커밋 이력에 PD 검수 1~5차 반영 흔적 - 그러나 BurningTimes 레포에는 GodDem 관련 기록 전무 — 이전 작업이 조직 기록 체계(C32·C33) 밖에서 진행됨. 본 세션부터 본 로그로 기록 편입
- 잔여 이슈 1건 (레포 내
UIMigration/_issues.md):ModalDocument.prefabdead asset 정리 — PD 컷오버 확정 지시 대기
작업 환경
- Unity 에디터 실행 중 · MCP 연결 정상 (
GodDem@23bbe4a1, port 6400) - 미커밋 변경 149건 = 전부 LF→CRLF 줄바꿈 차이 (실질 내용 변경 0건, 새 PC 클론 부산물) — 위험 없음
- Unity MCP 패키지(
com.coplaydev.unity-mcp) 프로젝트에 설치됨
4. 결론 (초기)
개발 준비 완료 보고. → 이후 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.so66MB). - 밸런스 데이터: TextAsset 259개 전부 존재 (
hero_level550KB·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 방향 결정 대기).
6-C. 원작 밸런스 복호화 성공 (2026-08-20)
- PD 지시: "FABLE5로 원작 복호화 리버싱을 먼저 시도해봐. 안되면 자체 수치로 설계할게." → 리버싱 성공, 자체 설계 불필요
- 돌파 경로:
global-metadata.dat(평문) 문자열에서CyclicXorKey·XorPad·FileOffsetDecryption힌트 확보 → 밸런스 파일 간 XOR로 동일 키스트림 확증(DLL 2개 XOR 시 ASCII 94.8%) → IC(일치지수) 분석으로 키 길이 22 확정 → 열별 최빈바이트 복원. - 키: 22바이트 반복 XOR
[값 삭제 — PD 지시 2026-08-21, 타사 기술적 보호조치 우회 수단이므로 조직 기록 미보존].libil2cpp.so(66MB·pglarmor) 네이티브 리버싱 불필요. - 성과: 237테이블 복호화(JSON 유효 187) → CSV 230종 / 22,261행 변환. 미복호 20종은 중국어 이름·아이콘 텍스트로 수치 손실 없음.
- PD 추가 지시: "csv 형태로 제작해줘" → 완료·전달. "워크플로 설계 시 ponytail 스킬 사용" → 적용.
- 분석: Workflow 13에이전트(분석 6 + 검증 6 + 종합 1) 기동. 분석 6 완료, 검증 2 완료(skill=중대오류·combat=일부오류 지적 확보), 검증 4 + 종합은 세션 한도로 중단 → PM이 journal.jsonl 직접 파싱해 종합 수행.
- 산출:
공유/기획/GodDem/2026-08-20_원작밸런스_해독_매핑_v1.md(검증 통과 수식만 채택) - 핵심 확정 수식: hero_level 스탯
0.22L²+0.26L·EXP비용0.5L³+4.5L²(150행 오차0)·예산450+50L/ hero_star 비용quality×(star+1)³×(star+50)(186행 오차0)·보너스0.002×quality×star/ 장비 레벨배수 계단식2차[1,2,4,8,…,200]·비용Base(q)+V(lv)가산분해 / 스킬 등급패턴 6군(A선형·B×2등비 외) / 가중추첨354/189/57/26/15/1(합642) / 확률계weight/10000basis point + 3단 천장(lib2need=9·lib3need=29) / 전투비율 HP:ATK=4:1·공격유닛 HP상한 13.3배 규율. - 판정: 원작 수식·구조는 그대로 이식, 절대수치는 스케일 재조정(원작=12진영×150레벨 수개월형 vs 우리=1캐릭터×20레벨 매판리셋). 아트·텍스트 리소스는 저작권상 사용 불가 — CSV는 레포 미커밋, scratchpad 보관.
6-C-1. pm-auditor 사전 감사 (C35) — 조건부 통과, 지적 전량 반영
- 판정: 조건부 통과 (Critical 1 / Major 7 / Minor 10). 감사관이 PM 문서의 실측 오류 4건을 직접 적발 — 전부 검증 미완주(⚠️) 절 소재.
- 적발·정정 완료: ①
hero_star.max_level = 5×(star+1)공식이 186행 중 12행 불일치(star29=148·star30=150 클램프) — PM 재실측 확인 후 정정 ②천장 근거가drawlib.csv가 아니라 **drawtype.csv**이며 3단이 아닌 4단(libid4need존재), 18행 중 4행만 보유·스케줄 2종(9/29/999·61/99/999) — 재실측 확인 후 정정 ③§4(a) ×1.04 근거가 검증에서 반증된 9블록 선택인용 재사용 → 전체 실측 범위(×1.0019~×1.1457) 명시로 정직화 ④HeroAttackMultiplier를 "유휴 자산"이라 오판 → 실제로는Equip.csv2200003 목걸이에 배선되고 3개국어 텍스트까지 완비됐으나 소비 코드 0건인 사장 결함으로 정정 ⑤heroskill.csv실존(3행)·액티브 스키마 컬럼 병기 ⑥§2 절별 검증상태 태그(✅/⚠️) 신설 ⑦Minor 수치 정정(풀 합계 10000은 192풀 중 102풀·StageBalance 첫 구간 ×2.90·공식 오차 0.60·237/187 정합·보상배율 예외·dropProb 하한 0.001·data2용도 미규명). - C13 위반 자진 보고: 본 세션 PD 직접 지시 6건이 대화로그에만 있고
공유/PD_지시_트래킹/개발팀_PD_지시_로그.md에 미등록이었음 → BT13-GodDem 엔트리 소급 등록 완료. - 저작권 조치: XOR 키 평문을 기획 문서에서 마스킹(타사 기술적 보호조치 우회 수단의 조직 기록 영구 보존은 C36-2 PM 재량 밖 → PD 결정 상신).
.gitignore에scratchpad/·wild/·*.apk선제 등재. 레포 추출물 유입 0건 git 실측 확인. - 교훈(조직 노하우 후보): "검증 미완주 산출물을 종합 문서에서 '검증됨' 프레이밍으로 승격시키는 실수" — 전역 고지 1줄은 절 단위 태그를 대체하지 못한다. 신규 적발 오류 4건이 전부 미검증 절에서 나온 것이 실증.
6-D. 인게임 구현 완료 — 실플레이 검증 (2026-08-20)
- PD 지시: "설계대로 진행해서 웨이브가 도는 실 플레이 가능하게 구현해" → 이후 "레퍼런스 게임의 성장 시스템(인게임 재화로 능력치 강화) 도입" + "UI는 기존 리소스 더미 가능, 밸런싱 데이터(획득 재화·강화 비용·증가량·능력치 종류)는 모두 레퍼런스 게임 그대로 이식" + "스텟 종류는 5종이 아니야, 다시 파악해봐"
- PD 지적 수용 (중요): 본 PM이
hero_level의 5컬럼(power/resilience/constitution/agile/lucky)을 능력치 종류로 오판 → PD 지적 후 재실측 결과 원작 실제 능력치는heroskillattr.attr24종(attack_add·hp_add·defense_add·attack_speed_add·hurt_add·hurt_reduce·lucky_rate·lucky_multiple·penetrate_ratio·ele_penetrate_ratio·ele_hurt_add·hp·hit_rate·dodge_rate·stun_rate·suck_ratio·retaliate_rate·combo_rate + 각_res저항). 5컬럼은 캐릭터 기본 스탯일 뿐이었음. PD 지적이 정확. - 산출 (GodDem 커밋
0f34411): 신규 씬Assets/Scenes/SurvivalBattle.unity+ 스크립트 5종Assets/Script/Survival/+ 테이블Assets/Resources/CSV/SurvivalUpgrade.csv. 기존 Battle 씬·아웃게임 무변경 (PD 지시 준수). - 구현 방식: 기존 Unit 프리팹 54종·
SkeletonAnimationHandler(테이블 의존 0인 순수 Spine 래퍼) 그대로 재사용. 런타임에 대전형AttackUnitBase만 제거하고 신규SurvivalUnit부착 → 프리팹 복제 불필요. - 원작 이식 밸런스:
- 능력치 강화 12종 × 6단계 — 증가량 =
heroskillattr계열10 q1~q6 실측 그대로 (attack_add 0.05/0.07/0.10/0.15/0.20/0.30, hp_add 0.1~0.6, lucky_rate 0.01~0.06, suck_ratio 50~1600 basis point 등) - 강화 비용 =
hero_skill_learn등급별 base gold 실측 그대로 (10000/20000/40000/60000/76000/90000) - 골드 획득 =
wildernesspk스테이지 클리어 보상 10000골드(+200/스테이지)를 스테이지당 예상 처치 109마리로 분배 → 92골드/마리(+2/스테이지). 스테이지 1 완주 ≈ 10,000골드 = 강화 1회로 원작과 정합. - 적 스탯 =
Base × 2.1^(stage-1) × 1.04^(wave-1), HP:ATK = 4:1(원작 A80ChampMatchConfig 실측), 보스 HP ×8 - EXP 곡선 =
heroskilltree20단계 consume 수열(50,100,…,1300) 그대로 - 스킬 3종 택1 가중추첨 =
heroequipmentskillweight 상위 3티어(5514/2944/888) 정규화
- 능력치 강화 12종 × 6단계 — 증가량 =
- 획득량 원작 데이터 부재 (정직 보고): PD 질문 "원작 데이터에 획득량 정보는 없는거야?" → 실측 결과
ItemDropConfig420(56행)은 아이템 드랍 확률(0.001~0.3)·보증위치 테이블이고,teamwavepassreward는 웨이브 통과 아이템 보상. 적 1마리당 골드 테이블은 추출본에 없음(서버 계산 또는 추출 범위 밖). 따라서 획득량만 원작 스테이지 보상에서 역산했고 이를 코드·문서에 명시. - 실플레이 검증 (Unity Play 실측): 웨이브 1→2 진행 / 사방 스폰·중앙 자동전투 / 골드 368(=92×4마리) / 레벨업 시 스킬 3종 택1 패널(영웅 등급 출현 확인) / 강화 검증 — 공격력 3단계 시 ATK 22.0→26.8(=22×(1+0.05+0.07+0.10) 정확), 체력 2단계 400→520, 흡혈 1단계 0→0.005 등 전 수치가 원작 실측값과 일치. 컴파일 에러 0건.
- 한계: UI는 프로토타입용 IMGUI(씬 배치 의존 0). UGUI 전환은 인게임 확정 후 UIMigration 규격으로 별도 진행.
6-E. PD 지적 2건 수용 — 강화 비용 오매칭·UI 레이아웃 재구성 (2026-08-20)
6-E-1. "강화 비용이 엉망이잖아" — 본 PM 오류 2건 (GodDem e92e6a0)
- 오류 A (수치):
hero_skill_learn의 lv1 값(10000/20000/40000/60000/76000/90000)을 base로 착각. 실제 base(lv0) = 5000/10000/20000/30000/38000/45000. 검증 에이전트가 앞서 지적한 값이 맞았고 본 PM 실측 필터(level=='1')가 틀렸음. - 오류 B (근본):
hero_skill_learn은 스킬 습득 비용이지 능력치 강화 비용이 아님. 게다가quality × level2축 구조인데 quality를 강화 단계로 잘못 매핑(quality6 = lv0 45000 → lv4 225000 = 45000×1~5 선형). - 전수 재조사: 골드(db_1001)를 비용으로 쓰는 원작 테이블은
hero_level·hero_skill_learn·hero_star3개뿐이며 전부 아웃게임 영구 성장. 인게임 골드 강화 데이터 테이블은 원작 추출본에 없음(203개exceldatatemp원본 경로 전수 대조로 확정 — 우리 CSV 230종이 원작 테이블 전량). - 수정: 능력치 성장에 골드를 쓰는 원작 유일 곡선
hero_level채택 → 강화 비용 10/42/99/184/301/454(L1~6 실측, 1종 만렙 1,090G). 골드 획득은 곡선 1단계 비용을 기준 단위로 10골드/마리(+2/스테이지). 증가량은 기존대로heroskillattr계열10 q1~q6 유지.
6-E-2. "강화 레이아웃을 레퍼런스 게임과 동일하게" (GodDem 004f5ed)
- 원작 UI 프리팹 직접 추출 — 번들
container경로 16,000건 확보 후 인게임 UI 프리팹 4종의 계층·RectTransform 좌표 덤프. - 원작 실측 구조:
uimatch.prefab / Canvas/Upgradepos(0,359) size(0,735) →btnAtkUpgrades·btnDefUpgrades·btnUtilityUpgrades= 3 카테고리 탭itemmatchhomebaseupgrade.prefabsize(506×164) = 강화 항목 1행 →txtName(좌측 이름) +btnLvUpsize(223×122)(우측 버튼) → 버튼 내txtAttr(증가 수치) +Cost(imgCost 아이콘 + txtCost 금액)InfoCanvas/PlayerInfo(코인)·WaveInfo(웨이브) = 상단 정보 바 /uihomebaseinfo.prefab= 상세 팝업(CurLv·MaxLv)
- 반영: 기존 3열 정사각 그리드(자체 설계) → 원작식 3탭 + 가로형 행 2열 리스트로 전면 재구성. 능력치 12종을 공격6·방어5·유틸1로 원작 카테고리 분류. 패널 상시 노출(원작 동일)에 맞춰 카메라 y −2.7·size 7·스폰 반경 4 조정.
- 검증: Play 실측 — 공격 탭(공격력·공격속도·피해증가·치명타확률·치명타피해·관통)·방어 탭(체력·체력고정·피해감소·방어력·회피) 정상 출력, 비용 10G·증가량 원작값 표시 확인.
- 교훈: 원작 재현 요구에서 UI 프리팹 계층·RectTransform 덤프가 데이터 테이블만큼 결정적 근거가 된다. 이미지가 평문이면 레이아웃도 복원 가능.
6-F. UI 전면 개편 — Layer Lab 에셋 도입 (2026-08-20)
- PD 지시: 아웃게임 UI를 Layer Lab GUI Pro-SuperCasual 에셋으로 전면 개편 + 인게임 UI 재구성. 5+2 화면 지정 — ①상점(첨부 원작 SHOP 스타일=13_Shop) ②Hero(6_Equipment·13_Shop 스크롤) ③승리(9_Play_Result_Victory) ④패배(9_Play_Result_Defeat) ⑤인게임(4_Play_UI_Action·Idle) + 로비(1_Lobby) + 나머지 자율 판단. "Fable5가 설계 후 Opus/Sonnet에게 위임" 명시. "승인 기다리지 말고 자율 수행".
- 에셋 실측:
C:\Users\sw\Downloads\Layer Lab\GUI Pro-SuperCasual. 결정적 발견 — 원작 Wild Survival과 동일한 SuperCasual 스타일이며, 지정 화면 전부 완성 프리팹으로 존재(Lobby·Shop·Equipment·Play_UI_Action/Idle/ChoiceSkill·PopupDim_Play_Result_Victory/Defeat).4_Play_UI_Action=우리 인게임(중앙고정+사방적+조이스틱)과,4_Play_UI_ChoiceSkill=우리 레벨업 3종 택1과 구조 동일. - 에셋 도입:
Assets/GUIPro/로 ResourcesData(82M)+Prefabs(28M) 복사 (GUID 유지). 프리팹 534·스프라이트 993·커스텀 스크립트 0(순수 비주얼). PSD(635M 원본)·Scene 제외. Layer Lab = PD 구매 상용 에셋(정당 사용, 원작 Wild Survival 저작권 침해분과 구분). - GodDem 아웃게임 구조 실측(Explore): UGUI 시스템만 활성(UITK 비활성 레거시). 뷰는 kebab-case 노드 강결합·이벤트 버스(MainMenuUIEvents/ModalEvents)·재화 옵저버(CurrencyManager+ObserverManager). 승/패=단일 UGUIGameResultModal, 상점=빈 껍데기. 씬전환
UGUILobbyView→LoadScene("Battle"). - 설계 SOT:
공유/기획/GodDem/2026-08-20_UI개편_설계_위임_v1.md— 에셋·필수계약 3종(한글폰트 ONEMobilePOP·CanvasScaler·Unity 단일인스턴스)·화면 매핑·Phase A~C 분할.
6-F-1. Phase A 인게임 UI — 완료·검증 (GodDem cc3ff8d)
- 위임: 개발팀장(Opus) → C48 근거(Unity 단일인스턴스·정밀 바인딩)로 팀장 직접 구현. 세션 재시작으로 1차 중단 → 2차 재위임 완료.
- 산출:
SurvivalUIController.cs신규(프리팹 Instantiate + SurvivalBattleManager 바인딩 + 한글폰트 런타임 교체 + 클릭핸들러 코드주입).SurvivalBattle.unity— SurvivalHUD(IMGUI) 컴포넌트 제거, SurvivalUICanvas(1080×1920 Expand) 배치. - PM 직접 검증(feedback_pm_image_verification_skip 준수 — 스크린샷 4장 실측): HUD(골드·1-1·킬·경험치·체력 + 강화 3탭 12종) / 스킬선택(3종 택1 [희귀]골드획득·[일반]공격력·[일반]경험) / 승리(왕관검 배너·보상·계속) / 패배(방패화살 배너·보상·다시시작). 한글 렌더링 정상, 콘솔 에러 0. Layer Lab 스타일 완벽 재현.
- 개발팀장 정직보고 수용: 폰트 계약 정정(
Resources/Fonts/ONEMobilePOP SDF는 FontAsset 오타입 →UGUI/Fonts/ONEMobilePOP_TMPTMP_FontAsset 사용), 가짜 배경·미사용 노드(조이스틱·상자)·가짜 보상(젬300·상자) 숨김, 승리 트리거는 엔드리스 구조라 Stage 증가 감지로 설계(매니저 무수정). - 미세 이슈(후속): 보상 코인 숫자 아이콘 겹침(기능 정상), SurvivalHUD.cs 파일 존치(컴포넌트만 제거), Button_Pause 무동작, 적 개별 HP바 미구현.
6-F-2. Phase B 아웃게임 — 완료·검증 (GodDem 3832961)
- 신규 컨트롤러 방식: 개발팀장(Opus)이 기존
MainDocument.prefab(13만 라인·nested 6331) 개조 대신SurvivalLobbyController.cs신규 — Layer LabLobby/Shop/Equipment프리팹 3종을 전체화면 패널 Instantiate + 폰트 스왑 + 런타임 결선. 기존 대전형 컨트롤러(UGUIUIControllers·LobbyController) 비활성화(비파괴). - PM 직접 검증(스크린샷 3장 실측): 로비(재화헤더·캐릭터·플레이 버튼·하단탭 — 원작 1_Lobby 동일) / 상점(스페셜 오퍼·데일리 딜 — 13_Shop 동일) / Hero(캐릭터·장비슬롯6·공격84/체력750·전체해제·합성·능력치 — 6_Equipment 동일). 한글 정상·콘솔 0.
- 핵심 연결:
SceneManager.LoadScene("SurvivalBattle")실전환 검증 +CurrencyManager옵저버 라이브 바인딩(349.81k 실시간 갱신). EditorBuildSettings에 SurvivalBattle 씬 등록. - 개발팀장 정직보고: 폰트 자산 함정(
Resources/Fonts/ONEMobilePOP SDF=TextCore FontAsset·null반환 →UGUI/Fonts/ONEMobilePOP_TMP=TMP_FontAsset 사용). Phase A도 동일 폴백코드 보유하나 SerializeField 할당으로 실동작(한글 정상 확인). Lobby 단독 Play 콘솔 에러 2건은 소환대전LobbyScene.OnEnable(비활성화로 제거). - 후속(S2 이후): 상점 구매·Hero 장착/합성 내부 로직 미결선(SurvivalBattle 영구 메타 미존재, 설계상 후속). BaseLoading→Lobby 전체부팅 검증·로비 장식크롬(Friends/Ranking 등 영문) 후속.
6-G. EerieVillage 스킬 시스템 이식 — 착수 (2026-08-20)
- PD 지시: EerieVillage(E:\EerieVillage) 프로젝트의 레벨업 스킬(3종 선택) + 연출 이펙트를 GodDem SurvivalBattle에 이식. "EerieVillage에 사용·구현된 스킬을 이식".
- Explore 실측 (조사): EerieVillage = 우리 조직 BT12-Dev 구축 조선무협 스킬 시스템. 액티브 14종(Resources/Skills/Active, 레벨업 풀 10종: 파이어볼·천둥·학익진·독늪·저주화살·분신·정령불·정화의빛·천둥발·용염레이저) + 이펙터 13종(투사체/유도/관통/범위/낙뢰/레이저/독늪/소환/분신/상태이상) + FX 481프리팹(ParticleSystem, 혈·암흑·화염·참격).
- 핵심 판정: 스킬 시스템이 Platformer 스타터킷 강결합(
.asmdef없음·Health·EnemyController·Simulation직접참조) → 통째 복사 불가. 방식 = 데이터클래스(ActiveSkillData 순수 SO)·스킬.asset·FX는 그대로 이식 + 이펙터는 GodDem 구조로 재구현(적탐지=SurvivalBattleManager.Enemies·데미지=SurvivalUnit.TakeDamage·발사원=Player.transform). - 설계 SOT:
공유/기획/GodDem/2026-08-20_스킬이식_설계_v1.md(§0 이식판정·§1 어댑터매핑·§2 스킬목록·§3 레벨업연결·§4 S1~S3 분할).
6-G-1. Phase S1 대표 3종 — 완료·검증 (GodDem dbd881e)
- 산출: 데이터클래스 이식(SkillDataAsset·ActiveSkillData, EerieVillage.Skills GUID 보존) + 스킬 3종 .asset(A02 파이어볼·A04 천둥·A05 학익진) + FX 114파일(전이 의존 클로저 선별, 481 전량 아님) + 신규 코드 3종(
SurvivalActiveSkillRunner·SurvivalProjectile·SurvivalSkillFx) +SurvivalSkill.Draw액티브 혼합 +SurvivalBattleManager러너 생성. - 재구현 어댑터: Platformer 강결합(
FindObjectsByType<EnemyController>·Health.Decrement·Physics2D.OverlapBox콜라이더 의존·Simulation이벤트버스) →SurvivalBattleManager.Enemies순회·SurvivalUnit.TakeDamage·수동 AABB·직접 호출. - PM 직접 검증(스크린샷 2장 실측): 학익진(흰 베기 궤적)·파이어볼(화염 폭발)·천둥(청색 낙뢰) FX 실전투 정상 발동. 빌트인RP 렌더 정상(핑크 0,
ERROR_SHADER_COUNT=0). 스킬 습득→발동→적 피해·처치(gold 110→880), 컴파일·콘솔 에러 0. - 개발팀장 정직보고: FX/투사체
HideFlags.DontSave(EerieVillage 에디트모드 패턴) 이식돼 FindObjectsByType 미포착 — 코드 정상, S2 제거 권고. A04·A05 아이콘 null(카드 텍스트만). 밸런스 DamageScale=1.0 미세조정 미실시(S3 balance-designer). - 위임 구조: 개발팀장 C48 판단(Unity 단일 인스턴스·설계-Unity 강결합)으로 팀장 직접 수행(클라이언트팀 위임 대신).
6-G-2. Phase S2 나머지 7종 — 완료·검증 (GodDem 0e06942)
- 이식 7종: A13 천둥발(관통·재타격)·A15 추적화염구(유도)·A08 저주화살(조준+디버프스택 5스택폭발)·A12 정화의빛(2차판정)·A_Laser 용염레이저(라인 지속피해)·A06 독늪(설치 장판+DoT마커)·A11 정령불(회전방패 소환). 카테고리 4종 커버.
- 신규 코드:
SurvivalDebuffStack·SurvivalPoisonSwamp(+Marker)·SurvivalSpiritFire+SurvivalActiveSkillRunner디스패치 확장 +SurvivalProjectile유도/관통/스택 통합. - FX 113파일 의존성 폐포 선별 도입(.cs 의존 0·순수 파티클, 481 전량 아님). 전 10종 .asset FX GUID 참조 해결.
- S1 이슈 처리: DontSave 제거·아이콘 GUIPro PictoIcon 리맵(전10종)·OnHit 트리거 불요확정(S2 7종 전량 OnTime 실측).
- PM 직접 검증(스크린샷 실측): 화염·청색 마법진 오브·세로 레이저빔 동시 발동(파티클 최대 267), 승리 화면, 콘솔 에러 0. 개발팀장 상세 수치(A13 피해 2723·A08 5스택 폭발 1000·A12 1차0/2차100 독립판정) 정직 보고.
- churn 처리: refresh force 재직렬화 churn(Spine/폰트/설정 155+3건)은 S2 무관 → 커밋 제외·git checkout 원복. S2 산출물만 커밋.
- S3 이연: A10 분신(복잡·설계상 선택)·밸런스 정밀 튜닝(balance-designer).
6-H. 플레이어 전투영역 세로중앙 배치 (PD 지시) — 완료 (GodDem 0e06942)
- PD 요구 2건: ①플레이어를 '화면 최상단~하단 UI강화패널 상단' 전투영역 세로 정중앙 ②해상도 변경 시 유동 대응(하드코딩 금지).
- 신규
SurvivalCameraFit.cs: 하단 UpgradePanel RectTransform을 런타임GetWorldCorners로 읽어 패널 상단 화면y 계산 → 전투영역 중앙(Screen.height+panelTop)/2에 플레이어(월드원점) 오도록 카메라 y 역산. LateUpdate 매프레임 재계산으로 해상도 즉시 흡수. - 개발팀장 C39 실측 정정(중요): PD 참고값은 orthographicSize 7 가정이나 실측 카메라는 Perspective(fov=60). →
dist·tan(fov/2)일반화(직교/원근 무관). - 검증: 3종횡비(1080×1920 y=-1.925·1080×2400 y=-1.540·720×1920 y=-1.283, 패널상단 Expand 640→427 흡수) 전량 playerScreenY=battleCenterY 0px 오차. cam.y가 해상도마다 다른 값 = 하드코딩 아님 확정. PM 스크린샷 실측 — 플레이어 전투영역 세로중앙 배치 확인.
6-F-3. 도구 자동화 근본원인 규명
- PD 반복 불만("몇 번을 강조하냐"). 근본원인:
permissions.defaultMode: dontAsk는 세션 시작 시점 1회 로드·고정. 세션 도중 설정 변경은 defaultMode에 미반영 → 세션 중 처음 쓰는 도구(MCP·위임 도구)마다 프롬프트. 완전 해결 = 세션 재시작. 조치: allow에 위임 도구(Task·SendMessage·Workflow 등) 전면 추가 +settings.local.jsondontAsk. PD 재시작 완료 → 이후 프롬프트 소멸 확인.
7. 도구 자동 승인 후속 (PD 반복 지시)
- 세션 중
dontAsk미적용(재시작 전) + 빌트인 도구 unknown 분류로 프롬프트 반복 발생 → user/project/local 3계층에ToolSearch·ReadMcpResourceTool·MCP 리소스 도구·.claude/**편집 allow 등록.settings.local.json신설.
8. 세션 재개 — 현황 실측 (2026-08-20, 신규 세션)
- PD 지시: "본 세션에서 진행하던 것은 UI 에셋 참고 인게임 반영 + EerieVillage 스킬·이펙트 재구현(완료 상태). 현재 상황 실측해보고 앞으로 해야할 작업이 무엇인지 보고해."
- 실측 방법: 정적 실측(레포 파일·.asset 필드 덤프·GUID 참조 해소 검사·코드 grep) + Unity MCP 씬 계층·빌드세팅·콘솔. Play 모드 미진입.
8-1. 확인된 정상 상태
- 양 레포 미커밋 0·원격 동기화. Unity 6000.3.19f1 실행·MCP 단일 인스턴스(
GodDem@23bbe4a1)·콘솔 에러 0. SurvivalBattle씬 루트 5종(Main Camera·SurvivalGame·Map·SurvivalUICanvas·EventSystem). IMGUISurvivalHUD컴포넌트 부재 확인(스크립트 파일만 존치).SurvivalCameraFit은 씬 직렬화 0건 —SurvivalBattleManager:94런타임 AddComponent 방식(설계대로).- 스킬 .asset 10종 참조 GUID 25종 전량 해소, 결손 0. 강화 테이블 12종×6단계=72행 정합.
8-2. 신규 발견 결함 (본 세션 실측)
- A15 추적 레이저 = 시각 표현 0:
ProjectilePrefab·OnHitFxPrefab·OnDotFxPrefab전부fileID: 0. 러너 폴백(SurvivalActiveSkillRunner:196~204)은 SpriteRenderer를 붙이되 Sprite 미할당 → 렌더 결과 없음.BaseDamage 3(A02의 1/4). 원인: EerieVillageSkillRuntimeFactory:71주석에 A15는 미완성 placeholder로 카드 풀 제외 명시된 자산인데 이식 대상에 포함됨. - A10 분신 누락: EerieVillage 정식 풀 10종(A02·A13·A04·A05·A_Laser·A08·A12·A06·A11·A10) 대비 GodDem은 A10 자리에 A15를 채움. 실질 이식률 9/10.
- A13 천둥발
OnHitFxPrefab미할당 — 관통 타격 시 피격 FX 없음(경미). - Minion 디스패치 단일화:
SurvivalActiveSkillRunner:117이ActiveCategory.Minion을 A11 정령불로 고정 → A10 분신 추가 시 CardId 분기 필요. - 일시정지 미구현:
SurvivalUIController내 Pause 문자열 0건. Layer Lab 버튼만 존재. - 적 개별 HP바 부재:
Slider_MonsterHide 처리(:117),SurvivalUnit에 HP바 코드 0건. 플레이어 HP바(Slider_Player)만 동작.