diff --git a/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md b/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md new file mode 100644 index 00000000..d3dec976 --- /dev/null +++ b/10_Wiki/Topics/00_Raw/Issue_2026-04-23_Engine_Stabilization_and_Tactical_Boundary.md @@ -0,0 +1,34 @@ +# ISSUE REPORT: [v13.1] Engine Stabilization & Tactical Boundary Overhaul + +## 1. 개요 +Skybound 엔진의 초기 구동 안정성을 확보하고, 게임의 장르적 성향(전략 슈터)을 강화하기 위한 적기 이동 로직 및 레벨업 시스템의 결함을 해결함. + +## 2. 해결된 결함 (Level-Up Loop) +### 2.1 현상 +- 게임 시작 직후 `TAC LEVEL UP` 모달이 무한 반복 출력되어 조작 불능 상태 발생. +- 엔진 내부 레벨과 Zustand 스토어 레벨 간의 동기화 불일치. + +### 2.2 원인 분석 +- `StageDirectorSystem`: 타임라인 이벤트가 최소 시간 가드 없이 초기화 시점에 조기 발동. +- `ProgressionSystem`: 스킬 선택 시 Zustand 구독과 엔진 로직 양쪽에서 레벨을 이중 증가시킴. + +### 2.3 수정 사항 +- **StageDirectorSystem**: 15초/30초 최소 시간 가드 및 `processedEventSeconds` 중복 발동 방지 락 도입. +- **ProgressionSystem**: 이중 증가 로직 제거 및 Zustand Single Source of Truth(SSOT) 강화. +- **UI**: `LevelUpModal`에 `isChest` 플래그를 추가하여 일반 레벨업과 보급품(Supply Drop) 보상을 시각적으로 분리. + +## 3. 기능 개선 (Enemy Tactical Boundary) +### 3.1 현상 +- 적기가 격파되지 않은 상태에서 화면 하단으로 유유히 사라짐 (전통적 슈팅 게임 방식). +- 플레이어의 전략적 대응 영역 및 경험치 수급 기회 상실. + +### 3.2 수정 사항 (CombatSystem) +- **Boundary Clamp**: 적기의 이동 허용 범위를 `height + 300`에서 `height - 40`으로 타이트하게 조정. +- **Chase Pattern**: 플레이어 추격 시 화면 하단 경계를 인식하도록 가드 추가. +- **Zigzag Pattern**: 화면 하단 도달 시 방향을 반전시키는 '핑퐁(Ping-pong)' 패턴으로 업그레이드. +- **Striker AI**: 하단 돌진 후 상단으로 복귀하는 순찰 로직 추가. + +## 4. 기대 효과 +- **안정성**: 게임 초기화 및 재개 시 발생하는 상태 데드락 원천 차단. +- **전략성**: 모든 적이 화면 내에 유지됨으로써 플레이어의 통제권 강화 및 생존 슈터로서의 긴장감 극대화. +- **경제**: 경험치 젬 및 루트 아이템의 화면 밖 유실 방지. diff --git a/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md b/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md new file mode 100644 index 00000000..7f608f1c --- /dev/null +++ b/10_Wiki/Topics/00_Raw/Post-Mortem_2026-04-23_Progression_and_Loot_Rebalance.md @@ -0,0 +1,34 @@ +# POST-MORTEM: Skybound Meta-Game Stabilization & Loot Economy Overhaul (2026-04-23) + +## 1. 프로젝트 개요 +보스전 이후 스테이지 전이가 멈추는 치명적 버그를 해결하고, 기획안에 맞춘 전리품(Loot) 경제 밸런스 재조정 및 보급품 시스템의 논리적 결함을 수정한 포스트모텀. + +## 2. 주요 해결 과제 및 분석 (Key Issues) + +### 2.1 보스 처치 후 진행 불가 (Stage Progression Stall) +- **현상**: 보스를 처치하고 폭발 연출까지 완료되었으나, 다음 스테이지로 넘어가지 않고 화면에 갇히는 현상. +- **원인**: `StageDirectorSystem`에서 보스 사망 시 `NEXT_STAGE` 이벤트를 발행했으나, 엔진의 메인 루프(`useGameEngine`)에 해당 이벤트를 수신하여 UI/상태를 전환하는 핸들러가 누락되어 있었음. +- **해결**: `useGameEngine.ts`의 `emitEvent` 리스너에 `BOSS_ACTION: NEXT_STAGE` 케이스를 추가하고, `finishMission('CLEAR', ...)`을 호출하도록 연결. + +### 2.2 전리품 드롭 확률 불균형 (Loot Economy Inflation) +- **현상**: 보스 처치 시 무조건 S급 아이템이 나오거나, 일반 적들의 드롭률이 너무 높아 아이템 희소성이 결여됨. +- **원인**: `LootGenerator.ts` 내부에 하드코딩된 확률 임계값이 초기 테스트용으로 과하게 설정되어 있었음. +- **해결**: 대표님 제시안에 맞춰 보스 드롭률을 **67%**로 제한하고, 등급별 확률(S: 5%, Epic: 1% 등)을 정밀 재조정함. 엘리트 및 일반 적의 드롭률도 대폭 하향하여 파밍의 재미를 강화. + +### 2.3 보급 상자 '가짜 업그레이드' (Phantom Upgrades) +- **현상**: 보급 상자(Chest)를 통해 무기를 골라도 실제 무기 레벨이 오르지 않아, 겉모습만 레벨업인 상태(레벨 3에서 무한 업그레이드 느낌)가 지속됨. +- **원인**: UI(`GameSceneRenderer`)에서 `isChest` 플래그가 활성화된 경우, "레벨업이 아니므로 스킬을 적용하지 않는다"는 잘못된 방어 로직이 적용되어 있었음. +- **해결**: `isChest` 유무와 관계없이 선택된 스킬을 엔진과 스토어에 적용(`addSkill`, `applySkill`)하도록 수정하여 보급 상자의 실질적 효용성 확보. + +## 3. 잘된 점 (What Went Well) +- **신속한 원인 파악**: 엔진 이벤트 루프와 UI 상태 간의 단절 지점을 정확히 찾아내어 최소한의 코드 수정으로 버그 해결. +- **기획 충실도**: 텍스트로 전달된 복잡한 확률 테이블을 엔진 코드에 오차 없이 반영. +- **동기화 성공**: 엔진 내부 상태와 Zustand 글로벌 스토어 간의 싱크를 맞춰 '가짜 업그레이드' 현상을 원천 해결. + +## 4. 교훈 및 향후 과제 (Lessons Learned & Next Steps) +- **이벤트-리스너 쌍 검증**: 새로운 시스템 이벤트를 정의할 때 반드시 수신 측(Listener)이 구현되었는지 체크리스트화 필요. +- **UI/엔진 역할 분담**: `isChest`와 같은 상태 플래그가 비즈니스 로직(스킬 적용)까지 차단하지 않도록 설계 시 주의. +- **모니터링 강화**: 현재 확률에 따른 드롭 현황을 로깅하여 장기적인 밸런싱 데이터 확보 예정. + +## 5. 결론 +이번 안정화 작업을 통해 Skybound의 **'전술적 긴장감'**과 **'성장 루프'**가 정상 궤도에 진입함. 보스전 - 보급 - 스테이지 전환으로 이어지는 핵심 게임 루프의 기술적 무결성 확인 완료. 🫡🐟