Files
2nd/10_Wiki/Topics/2026-04-23_Post-Mortem_Loot_Rebalance.md
T

3.5 KiB

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.tsemitEvent 리스너에 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의 **'전술적 긴장감'**과 **'성장 루프'**가 정상 궤도에 진입함. 보스전 - 보급 - 스테이지 전환으로 이어지는 핵심 게임 루프의 기술적 무결성 확인 완료. 🫡🐟