From 7599231a7cf289839a295eca3c8607004d57bc91 Mon Sep 17 00:00:00 2001 From: swrring Date: Thu, 16 Apr 2026 17:15:44 +0900 Subject: [PATCH] =?UTF-8?q?comm(req):=20=EA=B8=B0=ED=9A=8D=ED=8C=80=20?= =?UTF-8?q?=EB=B0=B8=EB=9F=B0=EC=8A=A4=20=EC=9E=91=EC=97=85=EC=9D=84=20?= =?UTF-8?q?=EC=9C=84=ED=95=9C=20=EC=8B=9C=EB=AE=AC=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=85=98=20=EB=8C=80=EC=9D=91=20=EC=9A=94=EC=B2=AD=20=EB=B0=8F?= =?UTF-8?q?=20=EA=B0=9C=EB=B0=9C=ED=8C=80=20=ED=98=84=ED=99=A9=EB=B3=B4?= =?UTF-8?q?=EA=B3=A0=20(PD=EB=8B=98=20=EC=A7=81=EC=A0=91=20=EC=A7=80?= =?UTF-8?q?=EC=8B=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PM→개발팀 시뮬레이션 대응 REQ 발행 - 개발팀장 현황보고: Phase A 부분완료, B~E 미착수, 차단요인 없음 즉시착수 - 개발팀 PD 지시 로그 #28 등록 (진행중) Co-Authored-By: Claude Opus 4.6 (1M context) --- 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md | 1 + ...04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md | 63 +++++++ .../2026-04-16_RPT_시뮬레이션_대응_현황보고.md | 156 ++++++++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 공유/소통/PM→개발팀/2026-04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md create mode 100644 공유/소통/개발팀→PM/2026-04-16_RPT_시뮬레이션_대응_현황보고.md diff --git a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md index 4f72e8b..cd7070f 100644 --- a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md +++ b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md @@ -31,6 +31,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**. | # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 | |---|------|----------|----------|-----------|----------|----------| +| 28 | 2026-04-16 | (PD님 직접 지시, 총괄PM 경유) 기획팀 밸런스 작업을 위한 시뮬레이션 대응 — 07 착수계획(시뮬레이터 이원화 해소) 진행 상태 보고 + 기획팀이 밸런스 작업에 사용할 수 있는 시뮬레이션 환경 구축 | 진행중 | `공유/소통/PM→개발팀/2026-04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md`, `공유/소통/개발팀→PM/2026-04-16_RPT_시뮬레이션_대응_현황보고.md` | - | - | | 27 | 2026-04-16 | NerdNavis.Framework 코어코드를 NerdNavisAi 조직 레포에 통합 — `코어코드/NerdNavis.Framework/`에 복사, git 커밋·푸시, 대화로그·지시로그 기록 | 진행중 | - | - | - | | 26 | 2026-04-16 | NerdNavis.Framework git 통합 관리 조치 — 저장소 상태 점검(git remote·원격 연결·코드 구조 정합성), 구현 완료/미완료 모듈 목록 정리, 설계 문서와 실제 코드 정합성 확인 후 보고서 작성 | 완료 | `공유/소통/개발팀→PM/2026-04-16_코어코드_git통합_점검_개발팀.md`, `공유/대화로그/코어프레임워크/2026-04-16.md` | - | - | | 1 | 2026-04-14 | NerdNavisCore 타 회사 소유 전환·담당자 퇴사 사실 통보, 자체 범용 코어 신규 제작 결정 | 진행중 | `개발팀/프로젝트_숙지/수상한잡화점/06_신규코어_설계안_v1.md` (초안), `개발팀/코어_설계/01_아키텍처_개요_v1.md` (v1.2→§4-9 ServiceLocator 신설 추가), `개발팀/코어_설계/02_수상한잡화점_추출대상_v1.md` (13+ 파일 분류표), `개발팀/코어_설계/_skeleton/` (UPM 패키지 스켈레톤), **`D:/NerdNavis/NerdNavis.Framework/` 구현체 — Tier 1 기반 Core 4종 완료 (Log·CoroutineRunner·MonoSingleton·ServiceLocator + 테스트 28건) Gitea push 완료** | - | OI-1(네임스페이스 NerdNavis.*) PD님 확정 반영 완료. **OI-2·3·4·5는 여전히 PD님 판단 대기**. Tier 1+2 MVP 범위 PD님 확정 반영. **Tier 1 잔여 9종(EnumToInt/EnumEx/FormatEx/SafeAreaBorder 등) 대기** | diff --git a/공유/소통/PM→개발팀/2026-04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md b/공유/소통/PM→개발팀/2026-04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md new file mode 100644 index 0000000..3ccb45d --- /dev/null +++ b/공유/소통/PM→개발팀/2026-04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md @@ -0,0 +1,63 @@ +--- +from: 총괄PM +to: 개발팀장 +type: 작업요청 +subject: 기획팀 밸런스 작업을 위한 시뮬레이션 대응 요청 +priority: high +status: 진행중 +created: 2026-04-16 +ref: PD님 직접 지시 (2026-04-16) +--- + +# 기획팀 밸런스 작업을 위한 시뮬레이션 대응 요청 + +> **PD님 직접 지시**: "기획파트에서 밸런스 작업을 진행할 수 있도록 시뮬레이션 대응을 요청해" + +--- + +## 1. 요청 배경 + +기획팀이 수상한 잡화점 밸런스 작업(Phase 3: 성장 요소별 기여도 측정)을 진행하려면 **신뢰할 수 있는 전투 시뮬레이션 환경**이 필요합니다. + +현재 상태: +- 기획팀 Phase 3 HOLD 중 (`⚠️_PHASE3_HOLD_공지.md`) +- HOLD 재개 조건 중 핵심: **개발팀 시뮬레이터 이원화 해소** +- 개발팀 PD 지시 로그 #3에 시뮬레이터 이원화 해소 작업이 `진행중`으로 등록됨 +- 착수계획 문서: `프로젝트/수상한잡화점/개발/07_시뮬레이터_이원화_해소_착수계획_v1.md` + +--- + +## 2. 요청 사항 + +### 2-1. 현재 진행 상태 보고 +07 착수계획의 Phase A~E 중 **어디까지 진행되었는지** 현황 보고 요청. + +### 2-2. 기획팀 밸런스 작업 지원을 위한 시뮬레이션 환경 구축 +07 착수계획에 따라, 기획팀이 밸런스 작업에 사용할 수 있는 시뮬레이션 환경을 구축해 주세요. + +기획팀이 필요로 하는 것 (Phase 3 재개 준비 체크리스트 기준): +1. **Unity 전투 로직 기반 Headless C# 시뮬** (BattleCore 라이브러리) +2. **CLI 실행 환경** (JSON 입출력, 배치 실행 가능) +3. **Python ↔ C# 교차 검증 완료 리포트** +4. **기획팀용 CLI 사용 가이드** (`공유/소통/개발팀→기획팀/` 경유) +5. **전투 공식 SOT 문서** (터치 방어·회피·시너지 명문화) + +### 2-3. 최소 선행 산출물 (기획팀 착수 가능 최소 조건) +전체 Phase A~E 완료 전이라도, 기획팀이 밸런스 작업을 **부분적으로라도 시작**할 수 있는 최소 환경이 있다면 그것부터 제공 요청. + +--- + +## 3. 연관 문서 + +- `프로젝트/수상한잡화점/개발/07_시뮬레이터_이원화_해소_착수계획_v1.md` +- `프로젝트/수상한잡화점/개발/08_전투시스템_SOT_v1.md` +- `프로젝트/수상한잡화점/기획/Phase3_재개준비_체크리스트_v1.md` +- `프로젝트/수상한잡화점/기획/Phase0_1_앵커전투시뮬레이션_v1.md` + +--- + +## 4. 응답 요청 + +1. 현재 시뮬레이터 이원화 해소 작업 진행 상태 +2. 기획팀에 시뮬레이션 환경 제공 가능 시점 또는 즉시 착수 계획 +3. 차단 요인이 있다면 명시 (C3) diff --git a/공유/소통/개발팀→PM/2026-04-16_RPT_시뮬레이션_대응_현황보고.md b/공유/소통/개발팀→PM/2026-04-16_RPT_시뮬레이션_대응_현황보고.md new file mode 100644 index 0000000..26ebb46 --- /dev/null +++ b/공유/소통/개발팀→PM/2026-04-16_RPT_시뮬레이션_대응_현황보고.md @@ -0,0 +1,156 @@ +--- +from: 개발팀장 +to: 총괄PM +type: 현황보고 +subject: 시뮬레이터 이원화 해소 작업 현황 및 기획팀 밸런스 작업 대응 계획 +priority: high +status: 보고 +created: 2026-04-16 +ref: PD님 직접 지시 (2026-04-16), PD 지시 로그 #28, #3 +req_ref: 공유/소통/PM→개발팀/2026-04-16_REQ_시뮬레이션_대응_기획팀_밸런스작업_지원.md +--- + +# 시뮬레이터 이원화 해소 작업 현황 및 기획팀 밸런스 작업 대응 계획 + +--- + +## 1. 07 착수계획 Phase A~E 진행 상태 + +| Phase | 작업 | 상태 | 비고 | +|-------|------|------|------| +| **A. 전투 로직 식별 및 경계 확정** | 전투 코드 전수 분석, Unity 의존성 식별, 전투 공식 명문화 | **부분 완료** | 08 SOT 문서(v1)로 핵심 피해 계산 15단계, 회피 판정 3단계, 크리티컬, 상태이상 등 명문화됨. A-1~A-3 실질 완료. A-4(전투공식 SOT 최종 확정)는 미확인 항목 잔존 | +| **B. Headless C# 추출 (코어화)** | BattleCore 라이브러리 분리 | **미착수** | 선행: Phase A 최종 확정 필요 | +| **C. CLI 실행 환경 구성** | dotnet CLI, JSON 입출력, 배치 러너 | **미착수** | 선행: Phase B 완료 필요 | +| **D. Python 교차 검증** | Python vs C# 결과 비교 | **미착수** | 선행: Phase C 완료 필요 | +| **E. 문서화 및 인수인계** | 기획팀용 가이드, 구조 문서 | **미착수** | 선행: Phase D 완료 필요 | + +--- + +## 2. Unity 전투 코드 분석 결과 (본 보고 시점 실제 확인) + +### 2.1 코드 규모 및 구조 + +| 파일 | 라인 수 | 역할 | +|------|--------|------| +| `Actor.cs` | 4,545줄 | **전투 핵심** -- 피해 계산, 회피, 크리티컬, 상태이상, 공격 루프 전체 | +| `PCActor.cs` | ~200줄 | 플레이어 전용 -- 방어, LowHP, 쉴드 Kill 효과 | +| `MobActor.cs` | ~250줄 | 몬스터 전용 -- 라인 위치, 샤이니, 드롭 보상 | +| `MonsterNodeControler.cs` | ~500줄 | 전투 루프 제어 -- 몬스터 배치, 라인 변경, 노드 종료 | + +### 2.2 Unity 엔진 의존성 분석 + +Actor.cs에서 식별된 Unity 의존성 (Headless 추출 시 제거/추상화 대상): + +| 의존 항목 | 사용 위치 | 추상화 방안 | +|----------|----------|-----------| +| `UnityEngine.Random` | 피해 범위, 회피 판정, 크리티컬 | `IRandomSource` 인터페이스로 교체 (시드 기반 결정론 보장) | +| `MonoBehaviour` / `Coroutine` | 공격 쿨타임, 상태이상 지속, 라인 변경 | 턴/틱 기반 루프로 전환 | +| `Animation` / `Animator` | 연출 전용 | `IBattlePresenter` 인터페이스 분리 (Headless에서는 NullPresenter) | +| `ObscuredInt/Float/Bool` (ACTk) | 치트 방지 | 순수 int/float/bool로 교체 (시뮬에서는 보안 불필요) | +| `Transform` / `Vector3` | 위치 기반 이펙트, 발사체 | 시뮬에서는 라인/슬롯 인덱스만 필요, 좌표 불필요 | +| `Addressable` / 리소스 로드 | 스프라이트, 이펙트 | JSON 직접 로드로 대체 | +| `table_GlobalValue.Ins` 등 싱글턴 | 전역 밸런스 값 참조 | `ITableLoader` 인터페이스로 추상화 | + +### 2.3 전투 핵심 공식 현황 (08 SOT v1 + 본 보고 시점 코드 직접 확인) + +**피해 계산 15단계**: `Actor.Get_Dmg()` (Actor.cs:521~834) -- 08 SOT 문서와 코드가 일치함을 확인. + +핵심 공식 요약: +``` +기본 = Random[Attack_Min, Attack_Max] (최소 1 보장) +중간 = 기본 + 절대증가 + (기본 x 배수증가) +(크리 시) 중간 x CriDmg +중간 - 절대감소(방어 포함) +중간 - (중간 x 감소비율) +max(중간, 1) +(쉴드 존재 시) 쉴드 먼저 흡수 -> HP 감산 +``` + +**회피 판정 3단계**: +1. 명중률 체크: `HitRate / (Avoid x 3.69)` -- 3.69 상수 근거 미확인 +2. PC 회피율: 근접/원거리 분리 확률 판정 +3. 최초 공격 무조건 회피 (카드 효과) + +**크리티컬**: 확률 판정 + N연타 강제 크리, 상한 90% + +### 2.4 미확인 항목 (A-4 완료 차단 요인) + +| 항목 | 상태 | 영향 | +|------|------|------| +| 회피 공식 3.69 상수 근거 | 미확인 | 시뮬 재현에 영향 없음 (값 자체는 확인됨) | +| PC 방어 입력 윈도우 연결 지점 | 미확인 | 시뮬에서는 "방어 상태 On/Off"로 추상화 가능 | +| `eCardType.G1~G5` 200+개 효과 전수 맵 | 부분 확인 | 주요 효과는 08 SOT에 문서화됨. 전수 맵핑은 점진적 보완 가능 | +| 상태이상 중첩 규칙 | 부분 확인 | 기본 CC(Stun/Freezing) 확인됨, 상세 상호작용 추가 확인 필요 | + +--- + +## 3. 기획팀 Python 시뮬레이터 현황 + +기획팀 `.cache/` 디렉토리에서 `battle_sim.py`, `full_stage_sim.py`, `stage_sim_v2.py` 등의 Python 시뮬레이터 파일이 **현재 확인되지 않음** (NerdNavisAi 레포 내에 부재). 원본은 기획팀 로컬 또는 별도 경로에 있을 것으로 추정. + +--- + +## 4. Headless C# 추출 기술 판단 + +### 4.1 추출 가능성 판단: **가능하나 상당한 작업량** + +Actor.cs 4,545줄의 전투 로직은 Unity 엔진 의존성이 **깊이 얽혀** 있어 단순 분리가 아닌 체계적 리팩토링이 필요합니다. + +**난이도 분류**: + +| 영역 | 난이도 | 사유 | +|------|--------|------| +| 피해 계산 (Get_Dmg) | **중** | 핵심 수치 로직. 의존성 정리하면 분리 가능. 단 300줄 내 카드 효과 분기가 다수 | +| 공격 루프 (Update/AttackCoolTime) | **중** | Coroutine → 틱 기반 전환 필요 | +| 몬스터 배치/스폰 | **하** | 테이블 기반, 순수 로직 | +| 상태이상 시스템 | **중** | 시간 기반 → 틱 기반 전환 + 효과 200종 분류 필요 | +| 카드 효과 200종 전수 대응 | **상** | eCardType 전수 분기 → 전략 패턴 리팩토링 권장 | +| ACTk Obscured 타입 제거 | **하** | 기계적 치환 가능 | + +### 4.2 차단 요인 + +1. **카드 효과 200종**: `eCardType.G1~G5` 전수를 시뮬레이터에 반영해야 정확한 밸런싱이 가능. 단, 기획팀이 필요로 하는 밸런스 작업 범위에 따라 **핵심 효과만 우선 구현**하는 것이 현실적 +2. **데이터 테이블 로더**: JSON 기반이므로 CLI에서 직접 로드 가능 (`GlobalValue.json`, `MonsterList.json`, `MonsterPatternList.json` 등 확인됨) +3. **결정론 보장**: `UnityEngine.Random` → 시드 기반 난수로 전환 필수 + +--- + +## 5. 착수 계획 및 기획팀 조기 제공 가능 산출물 + +### 5.1 즉시 착수 가능한 작업 + +1. **Phase A-4 완료**: 08 SOT 문서 기반으로 전투공식 SOT 최종 문서 작성 (미확인 항목은 "코드 기준 값" 그대로 반영, 기획 의도와의 대조는 별도) +2. **Phase B 착수**: BattleCore 순수 도메인 클래스 분리 시작 + 1) Actor → ActorCore (전투 스탯/피해 계산 순수 로직) + 2) IRandomSource, IBattlePresenter, ITableLoader 인터페이스 정의 + 3) ObscuredInt/Float → int/float 기계적 치환 + +### 5.2 기획팀 조기 제공 가능 산출물 (전체 Phase 완료 전) + +| 산출물 | 선행 조건 | 기획팀 활용 | +|--------|----------|-----------| +| **전투 공식 SOT 문서 v2** (A-4) | Phase A 잔여 정리 | 기획팀이 **Python 시뮬 로직을 C# SOT에 맞춰 검증/수정** 가능 | +| **JSON 데이터 테이블 스키마 문서** | 없음 (즉시 가능) | 기획팀이 데이터 테이블 구조를 파악하여 시뮬 입력값 정비 | +| **BattleCore 피해 계산 단독 모듈** (B-1 부분) | Phase A-4 완료 | 기획팀이 C# 콘솔에서 피해 계산만 단독 실행 가능 | + +### 5.3 차단 요인 없음 + +현재 이 작업에 대한 차단 요인은 없습니다. Unity 프로젝트 코드 접근 가능하고, 데이터 테이블 JSON이 확인되었으며, 08 SOT 문서가 Phase A의 주요 분석을 커버합니다. 즉시 착수합니다. + +--- + +## 6. 요청 사항에 대한 응답 정리 + +| 요청 | 응답 | +|------|------| +| 1. 현재 진행 상태 | Phase A 부분 완료 (08 SOT v1 작성됨), Phase B~E 미착수 | +| 2. 기획팀 시뮬 환경 구축 | 즉시 착수. 전투공식 SOT v2 → BattleCore 피해 계산 모듈 → CLI 순서 | +| 3. 차단 요인 | 없음. 즉시 착수 가능 | + +--- + +## 7. 변경 이력 + +| 일자 | 작성자 | 내용 | +|------|--------|------| +| 2026-04-16 | 개발팀장 | REQ 수령 후 현황 보고 초안 작성 |