diff --git a/00_Raw/2026-04-22_All_Repos_Update.md b/00_Raw/2026-04-22_All_Repos_Update.md deleted file mode 100644 index 05631c10..00000000 --- a/00_Raw/2026-04-22_All_Repos_Update.md +++ /dev/null @@ -1,25 +0,0 @@ -# [LOG] All Repositories Update (Full Sync) - -- **작업 일시**: 2026-04-22 -- **작업 내용**: 4개 주요 프로젝트 거점(`2nd`, `skybound`, `Legal`, `Agent`)에 대한 원격 저장소 동기화(`git pull`). -- **이유/목적**: 로컬 작업 환경을 최신 상태로 유지하여 개발 및 문서화 작업 시 발생할 수 있는 충돌을 방지하고 코드 정합성을 확보하기 위함. -- **기대값**: - 1. 모든 로컬 브랜치가 최신 원격 브랜치(`main`)와 동기화됨. - 2. 동기화 과정에서 에러 및 수동 충돌 해결 작업 0건 유지. -- **처리 과정**: - 1. `2nd` (Wiki): `git pull lm_sync main` 진행 -> 최신 상태 확인. - 2. `skybound`: `git pull origin main` 진행 -> 최신 상태 확인. - 3. `Legal`: `git pull origin main` 진행 -> 최신 상태 확인. - 4. `Agent`: `git pull origin main` 진행 -> 최신 상태 확인. -- **사용 지식**: - 1. Git Remote Operations (`git pull`) - 2. Local Git Mapping Protocol (신규 수립 지침) -- **결과**: - * 4개 프로젝트 모두 성공적으로 `Already up to date` 또는 최신 커밋 반영 완료. - * 작업 경로 및 리모트 명칭(lm_sync vs origin) 혼선 없이 처리됨. -- **연결 지식 (Relevant Knowledge)**: - * [[E:\Wiki\2nd\10_Wiki\Topics\03_DevOps_Environment]] (데브옵스 및 환경 구성) - * [[E:\Wiki\2nd\10_Wiki\Topics\Automation]] (작업 자동화) - ---- -**작성자**: AI 개발부장 코다리 🫡 diff --git a/00_Raw/2026-04-22_CombatLevelDesign.md b/00_Raw/2026-04-22_CombatLevelDesign.md deleted file mode 100644 index f7837683..00000000 --- a/00_Raw/2026-04-22_CombatLevelDesign.md +++ /dev/null @@ -1,66 +0,0 @@ -# 작업 로그: Combat Level Design — Time-Based Difficulty Scaling 구현 - -## 📋 작업 내용 (What) -"전투 타임라인 & 난이도 프로토콜" 설계안을 기반으로 Skybound 프로젝트의 -StageDirectorSystem, SpawnerSystem, EngineProtocol을 업그레이드하고, -신규 CombatTimeline 설정 파일을 추가함. - -## 🎯 왜 했는지 (Why) -기존 스테이지 시스템의 문제점: -- StageDirectorSystem: 하드코딩된 `if frame >= X` 체이닝, 새 phase 추가 불가 -- SpawnerSystem: 완전 무작위 스폰 → 스파이크 없음, 긴장감 없음 -- 난이도 곡선 부재: 적 HP 단순 배율만 존재, 밀도/타이밍 변화 없음 -- Death Trap 발생 가능: EVO 준비 없이 Spike 구간 진입 - -## 💡 기대값 (Expected Value) -- 시간(초) 기반 스크립티드 웨이브 등장 (STANDARD 15분 / BLITZ 8분) -- 페이즈별 difficultyMult / spawnIntervalMult 자동 동기화 -- Spike 30초 전 자동 EXP 젬 밀도 2배 부스트 (Death Trap Avoidance) -- 스웜 구간에서 최대 6유닛씩 3프레임 간격 분산 스폰 (성능 보장) -- 보스 처치 후 영구 성장 보상 발행 (UX Continuity) -- TypeScript 에러 0개 - -## 🔧 처리 과정 (How) - -### 1. CombatTimeline.ts (신규 생성) -- StageMode: STANDARD(15분) / BLITZ(8분) -- DifficultyPhase: name, startSec, diffMult, spawnIntervalMult, maxEnemyCount, bgmCue -- WaveTrigger: triggerSec, enemyType, density, isSpike, eventEffect, comms, shake -- STANDARD_TIMELINE: 5개 페이즈, 15개 WaveTrigger (Spike 4회) -- BLITZ_TIMELINE: 5개 페이즈, 10개 WaveTrigger (Spike 6회) -- 유틸 함수: getActivePhase(), collectDueTriggers(), getTimeline() - -### 2. StageDirectorSystem.ts (전면 재작성 v2.0) -- tickTimeline(): 매 프레임 currentSec = frame/60로 getActivePhase() 및 collectDueTriggers() 호출 -- 페이즈 자동 전환: activePhase.name !== phase일 때 STAGE_TRANSITION 인텐트 발행 -- difficultyMult / tensionLevel: activePhase.diffMult + densityFactor로 자동 동기화 -- EXP 밀도 부스트: 다음 Spike까지 30초 이내 시 EXP_DENSITY_BOOST 인텐트 발행 -- processTriggers(): WaveTrigger → 이벤트(COMMS, SCREEN_SHAKE) + SCRIPTED_SPAWN 인텐트 -- UX Continuity: 보스 처치 시 PERMANENT_REWARD 인텐트 발행 - -### 3. SpawnerSystem.ts (전면 재작성 v2.0) -- notifyScriptedSpawn(): Director로부터 스폰 요청 수신 (메서드 호출 방식) -- flushSpawnQueue(): 큐 소비 + MAX_ENEMIES_HARD_CAP(=30) 보호막 -- activateSwarmBurst(): SWARM_BURST 모드 활성화 -- tickSwarmBurst(): MAX_SWARM_BATCH(=6), SWARM_SPAWN_GAP(=3프레임) 분산 스태거링 -- 절차적 스폰: difficultyMult 기반 간격 계산, 타임라인 간격 채우기 보조 역할 -- dispose(): 큐 + 버스트 상태 초기화 - -### 4. EngineProtocol.ts (확장) -- SCRIPTED_SPAWN, SPAWN_MODE, EXP_DENSITY_BOOST, PERMANENT_REWARD 인텐트 타입 추가 - -## 🧠 사용한 지식 (Knowledge Used) -- Time-Based Difficulty Scaling 패턴 -- Object Pool + Staggered Spawn 패턴 (성능 최적화) -- "Death Trap Avoidance" 게임 디자인 원칙 -- "UX Continuity" 실패 보상 설계 -- TypeScript discriminated union (EngineIntentType) -- Observer → Direct Method Call 결정 (EventBus 미도입 상태에서의 최적 통신 방식) - -## ✅ 결과 (Result) -TypeScript 에러 0개 — `npx tsc --noEmit` 클린 통과 - -## 🔗 연결 지식 (Relevant Knowledge) -- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (Difficulty Curve, Spike Design, Time-Based Scaling) -- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Intent Protocol, Event-Driven) -- E:\Wiki\2nd\10_Wiki\Topics\Performance-Optimization (Staggered Spawn, Object Pooling) diff --git a/00_Raw/2026-04-22_CombatProgression_Finalization.md b/00_Raw/2026-04-22_CombatProgression_Finalization.md deleted file mode 100644 index a303131c..00000000 --- a/00_Raw/2026-04-22_CombatProgression_Finalization.md +++ /dev/null @@ -1,56 +0,0 @@ -# 작업 로그: Combat Progression — Nova Burst, Permanent Upgrades & Event Pass 구현 - -## 📋 작업 내용 (What) -Skybound 프로젝트의 핵심 성장 루프(Dopamine Loop)를 완성하기 위해 다음 3대 요소를 구현함: -1. **Nova Burst (aoe_nova)**: 광범위 충격파 및 넉백 기능을 갖춘 신규 액티브 스킬 인게임 로직 구현. -2. **Permanent Upgrade (Hangar Shop)**: 런 간 유지되는 기체 스탯 영구 강화 시스템 및 전용 상점 UI 구축. -3. **Event Pass System**: 포인트 적립형 티어 시스템 및 S/SS급 장비 보장 쿠폰 보상 체계 수립. - -## 🎯 왜 했는지 (Why) -- **전투 카타르시스 부족**: 기존 스킬들은 투사체 중심이라 '물량'을 한 번에 정리하는 쾌감이 부족함. -- **메타 게임 부재**: 게임이 끝나면 모든 성장이 초기화되어 장기 리텐션(Retention) 유인이 약함. -- **아이템 가치 인플레이션 방지**: S/SS급 아이템이 너무 쉽게 드롭되지 않도록 희귀도를 극한으로 조정하고, 확정 획득 경로(Pass/Crafting)를 명확히 함. - -## 💡 기대값 (Expected Value) -- **Nova Burst**: 5초마다 발생하는 강력한 충격파로 위기 탈출 및 대량 처치 쾌감 (Dopamine Spike). -- **영구 성장**: 골드(Gold) 소모처를 제공하여 "한 판 더" 할 이유를 제공 (Meta-Progression). -- **희귀도 밸런스**: SS급 장비의 자연 드롭율을 0%로 설정하여 제작(Cosmic Cast) 및 패스 최종 보상의 가치 극대화. -- **UI 일관성**: Hangar 내 7개 탭(EQUIP, MERGE, DISASSEMBLE, COSMIC, FORGE, UPGRADE, PASS) 통합 관리. - -## 🔧 처리 과정 (How) - -### 1. ModularWeaponSystem.ts (Nova Burst 로직) -- `updateNovaBurst()`: 5/4/3초 주기로 동작하는 전방위 충격파 로직 구현. -- **넉백 물리**: 중심점으로부터의 거리(dist)에 반비례하는 벡터 힘을 적군 vx, vy에 가산. -- **시각 연출**: Lv1~2(16방향 링), Lv3(24방향 2중 링) 파티클 및 강력한 화면 흔들림(Screen Shake) 연동. - -### 2. useGameStore.ts (상태 관리 확장) -- `permanentUpgrades`: HP, ATK, SPEED, MAGNET, GOLD_GAIN 5종 스탯 정의 (최대 5레벨). -- `purchasePermanentUpgrade()`: Gold 차감 및 지수적 비용(300~8000G) 테이블 적용. -- `eventPass`: 500pts당 1티어 상승, Tier 10(S급 쿠폰), Tier 20(SS급 쿠폰) 보상 로직 구현. - -### 3. LootGenerator.ts (희귀도 조정) -- `rollLoot()`: S급(엘리트 1.5%), SS급(자연 드롭 0%)으로 드롭률 극한 하향 조정. -- `rollWithCoupon()`: 패스 보상용 S/SS급 확정 생성 메서드 추가. - -### 4. HangarOverlay.tsx & CSS (UI/UX) -- **탭 확장**: 기존 5탭에서 UPGRADE(🛸), PASS(🎫) 포함 7탭으로 확장. -- **UPGRADE UI**: 레벨별 Pip 바(5칸) 시각화 및 구매 가능 여부 실시간 피드백. -- **PASS UI**: 티어 진행도 바, 마일스톤 카드, 프리미엄 패스 구매 CTA 구현. -- **Premium Style**: 네온 블루/황금색 그라디언트, 마이크로 애니메이션(Hover Scale) 적용. - -## 🧠 사용한 지식 (Knowledge Used) -- **Dopamine Loop Design**: 'Pop Effect'와 'Satisfaction of Scale'을 위한 파티클/넉백 결합. -- **Resource Scarcity**: 고가치 자산(SS_CLASS)의 인위적 희소성 관리. -- **Exponential Cost Curve**: 후반부 성장을 위한 지수적 비용 설계. -- **Meta-Progression Architecture**: Zustand를 이용한 영구 상태(Persistent State) 관리. - -## ✅ 결과 (Result) -- TypeScript 에러 0개 (`npx tsc --noEmit` 통과) -- Git Commit: `0ac0084` (feat_nova_burst_perm_upgrade_event_pass) -- Push 완료: `origin/main` - -## 🔗 연결 지식 (Relevant Knowledge) -- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (Meta-Progression, Dopamine Loop, Scarcity) -- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Persistent State, Action-Reducer Pattern) -- E:\Wiki\2nd\10_Wiki\Topics\UI-UX (Tab System, Progress Visualization) diff --git a/00_Raw/2026-04-22_CombatProgression_Process_Log.md b/00_Raw/2026-04-22_CombatProgression_Process_Log.md deleted file mode 100644 index ba3deac7..00000000 --- a/00_Raw/2026-04-22_CombatProgression_Process_Log.md +++ /dev/null @@ -1,65 +0,0 @@ -# 작업 과정 로그 (Process Log): Event Pass & Nova Burst 시각화 구현 - -## 🗓️ 날짜: 2026-04-22 -## 👤 담당: Antigravity (AI Coding Assistant) - ---- - -## 1. 요구사항 분석 및 아키텍처 탐색 (Analysis) - -### 🔍 분석 대상 -- `useGameEngine.ts`: 엔진의 메인 루프와 외부 API(Store) 연결부. -- `StageDirectorSystem.ts`: 스테이지 페이즈(Boss, Stage Clear) 관리 주체. -- `GameRenderer.ts`: Canvas 2D 렌더링 최상위 클래스. -- `ModularWeaponSystem.ts`: 스킬 로직 처리부. - -### 🚩 발견된 문제점 -- **이벤트 연결 누락**: `addEventPassPoints` 함수는 스토어에 정의되어 있었으나, 실제 인게임 이벤트(보스 처치, 클리어) 발생 시 호출되는 로직이 부재함. -- **렌더링 레이어 분리**: `ModularWeaponSystem`은 물리/데미지 로직만 처리하며, `GameRenderer`는 상태(State) 기반으로만 그려야 함. 즉, "방금 폭발함"이라는 정보를 전달할 매개체가 필요했음. - ---- - -## 2. 해결 전략 수립 (Strategy) - -### 💡 포인트 지급 전략 -- **보스 처치**: 이미 존재하는 `PERMANENT_REWARD` Intent를 재활용. Intent 핸들러에서 Gold와 Pass Point를 동시에 지급하도록 수정하여 코드 중복 방지. -- **미션 클리어**: `StageDirectorSystem`의 `STAGE_CLEAR` 페이즈 전환 시 `phaseTimer === 1` 조건을 활용하여 딱 한 번만 포인트를 지급하는 'Atomic Trigger' 방식 채택. -- **런 실패**: `useGameEngine`의 사망 루프에서 런 타임(프레임)을 포인트로 환산하여 지급. - -### 💡 시각화 전략 (Signal Pattern) -- `ModularWeaponSystem`이 `novaBurstRingEffect`라는 임시 객체를 `state`에 기록. -- `GameRenderer`가 매 프레임 이 객체가 있는지 확인하고, 있으면 20프레임 동안 애니메이션 처리 후 스스로 타이머를 깎아 소멸시키는 'Auto-decay Signal' 패턴 적용. - ---- - -## 3. 구현 단계 (Execution) - -### Step 1: 통신 채널 확장 -- `stateMachine.ts`의 `PhaseTransitionContext` 인터페이스를 확장하여 `addEventPassPoints` 콜백을 주입할 준비를 마침. (추후 리팩토링 대비) - -### Step 2: 실제 로직 주입 -- `useGameEngine.ts` 내 Intent 핸들러 수정. -- `StageDirectorSystem.ts` 내 클리어 보상 로직 추가. -- `useGameEngine.ts` 내 사망 보상 로직 추가. - -### Step 3: 프리미엄 시각 효과 구현 -- `GameRenderer.ts`에 4단계 레이어(링, 보조 링, 플래시, 스파이크) 렌더링 로직 작성. -- `ModularWeaponSystem.ts`에서 폭발 시점에 신호(Signal) 발생 코드 삽입. - ---- - -## 4. 검증 및 배포 (Verification & Sync) - -### ✅ 기술 검증 -- `npx tsc --noEmit`을 통한 타입 안정성 확인. -- PowerShell 권한 이슈 발생 시 즉시 `cmd /c`로 전환하여 작업 중단 방지. - -### ✅ 기록 및 동기화 -1. **Skybound Repo**: 코드 커밋 및 푸시 (`226eb7c`). -2. **Wiki Repo (RAW)**: 작업 내용 요약(`2026-04-22_EventPass_NovaBurst_Renderer.md`) 및 본 과정 로그 기록. -3. **Wiki Repo (Sync)**: 모든 문서를 원격 저장소에 Push 하여 대표님(User)과 공유. - ---- - -## 🧐 부장님(코다리) 한마디 😎 -"단순히 코드만 짜는 게 아니라, 왜 이렇게 짰는지 흐름을 기록하는 것이 진짜 엔지니어링이지! 🫡 시스템은 기록으로 증명된다. 🐟" diff --git a/00_Raw/2026-04-22_CraftingSystem_Full.md b/00_Raw/2026-04-22_CraftingSystem_Full.md deleted file mode 100644 index 184cd6a2..00000000 --- a/00_Raw/2026-04-22_CraftingSystem_Full.md +++ /dev/null @@ -1,98 +0,0 @@ -# [RAW LOG] 2026-04-22 — Crafting System Full Activation - -## 작업 개요 -- 날짜: 2026-04-22 -- 세션: Skybound Crafting Economy Full Integration (Option B) -- Git: `facb2ba` → `9e0110d` - ---- - -## 1. 감사 결과 (진단) - -| 항목 | 이전 상태 | -|------|----------| -| `mergeEquipment()` | ✅ HangarOverlay에서만 연결됨 | -| `cosmicCast()` | ❌ 호출처 없음 | -| `astralForge()` | ❌ 호출처 없음 | -| `disassemble()` | ❌ 호출처 없음 | -| `mergeTechPart()` | ❌ 호출처 없음 | -| `techParts`, `materials` 상태 | ❌ 선언만 있고 실제 데이터 입출력 없음 | - ---- - -## 2. 구현 내역 - -### A. `useGameStore.ts` — 크래프팅 액션 전면 활성화 -- `addMaterials(mats)`: TechMats/Core 획득 시 상태 누적 -- `addTechPart(part)`: 드롭된 TechPart 인벤토리 추가 -- `disassembleItems(ids)`: 선택 아이템 일괄 분해 → 재료 획득 + 슬롯 해제 -- `cosmicCastAction()`: 재료(Eternal×50, Destruction×50, Tech×2000) 소모 → SS급 장비 생성 -- `astralForgeAction(targetId, sacrificeId)`: LEGEND/SS 대상 + S급 희생 → forgeLevel +1 -- `mergeTechPartAction(targetId, fodderIds)`: 동일 티어/스킬 TechPart 합성 → plusLevel +1 - -### B. `HangarOverlay.tsx` — 5탭 크래프팅 UI 전면 재작성 -| 탭 | 기능 | -|----|------| -| 🔩 EQUIP | 기존 장착 슬롯 + 인벤토리 | -| ⬆ MERGE | 장비 합성(3개) + TechPart 합성(2개) | -| 🔧 DISASSEMBLE | 선택 아이템 분해 + 재료 미리보기 | -| ✦ COSMIC CAST | SS급 제작 재료 요구량 체크 + 실행 | -| ⚒ FORGE | TARGET/SACRIFICE 슬롯 선택 → forgeLevel +1 | - -- 재료 패널(TechMats, Eternal, Destruction, Relic)을 좌측 패널에 항상 표시 -- Feedback Toast: 성공/실패 3초 표시 - -### C. `HangarOverlay.css` — 새 스타일 추가 -- `.craft-tabs`, `.craft-tab-btn` — 5탭 네비게이션 -- `.materials-panel`, `.mat-grid` — 재료 표시 -- `.disassemble-preview` — 분해 미리보기 패널 -- `.cosmic-recipe`, `.cosmic-result-preview` — 코스믹 캐스트 -- `.forge-slots`, `.forge-slot-box` — 포지 슬롯 UI -- `.craft-feedback` — 피드백 토스트 애니메이션 -- `.tech-list`, `.tech-row` — TechPart 목록 - -### D. `CombatSystem.ts` — 재료 드롭 연결 -- 일반 적: 3% 확률 TechMats 10~30 획득 -- 엘리트 적: 10% 확률 TechMats 50~100 획득 + 파란 텍스트 알림 -- 엘리트 적: 5% 확률 TechPart 드롭 → 보라색 텍스트 알림 - -### E. `LootGenerator.ts` — `rollTechPart()` 신규 추가 -- 6종 스킬 풀: fire_rate / speed_boost / magnet_range / damage_up / shield / missile -- 스테이지 연동 티어: Stage 1-2→EXCELLENT, 3-4→EPIC, 5+→LEGEND - ---- - -## 3. 경제 흐름 (완성된 파이프라인) - -``` -적 처치 (일반 3% / 엘리트 10%) - ↓ -addMaterials({ techMats }) - ↓ -HangarOverlay [DISASSEMBLE 탭] → 불필요 장비 분해 → Eternal/Destruction Core 획득 - ↓ -HangarOverlay [COSMIC CAST 탭] → 코스믹 캐스트 → SS급 장비 생성 - ↓ -HangarOverlay [FORGE 탭] → SS/LEGEND 장비 forgeLevel +1~5 - -엘리트 처치 (5%) - ↓ -addTechPart() - ↓ -HangarOverlay [MERGE 탭] → TechPart 합성 → plusLevel +1 -``` - ---- - -## 4. TypeScript & Git -- `npx tsc --noEmit`: **에러 0개 ✅** -- Commit: `feat_crafting_full_ui_economy` (`9e0110d`) -- Push: `main` ✅ - ---- - -## 5. 다음 과제 (Next Steps) -1. **보스 처치 시 Eternal/Destruction Core 보장 드롭** 추가 -2. **코스믹 캐스트 결과 다양화** — Twin Lance 외 랜덤 SS급 풀 확장 -3. **TechPart 효과 실제 반영** — 인게임 스탯에 plusLevel 반영 로직 -4. **UI 시각 검증** — `http://localhost:5174/` 5탭 동작 확인 diff --git a/00_Raw/2026-04-22_EventPass_NovaBurst_Renderer.md b/00_Raw/2026-04-22_EventPass_NovaBurst_Renderer.md deleted file mode 100644 index 4a34978b..00000000 --- a/00_Raw/2026-04-22_EventPass_NovaBurst_Renderer.md +++ /dev/null @@ -1,59 +0,0 @@ -# 작업 로그: Event Pass 연동 + Nova Burst Canvas 렌더러 구현 - -## 📋 작업 내용 (What) -1. **addEventPassPoints 실제 연결**: 보스 처치, 미션 클리어(STAGE_CLEAR), 미션 실패(부분 런) 시 Event Pass 포인트를 실제 게임플레이 이벤트에 연결. -2. **Nova Burst Canvas 링 이펙트**: `GameRenderer`에 20프레임 확장 충격파 링을 4개 레이어로 렌더링하는 `renderNovaBurstEffect` 메서드 구현. - -## 🎯 왜 했는지 (Why) -- **패스 포인트가 UI에만 존재**: HangarOverlay에 PASS 탭을 만들었지만 실제 게임플레이에서 포인트를 지급하는 파이프라인이 없었음. -- **Nova Burst 시각 부재**: 스킬 논리(`ModularWeaponSystem`)는 완성됐으나 Canvas 렌더러와 연동되지 않아 플레이어가 충격파를 시각적으로 느끼지 못했음. - -## 💡 기대값 (Expected Value) -- 보스 처치 시 스테이지 × 200pts 지급 (Stage 1: 200, Stage 3: 600) -- 스테이지 클리어(STAGE_CLEAR) 시 기본 500 + 스테이지 × 100pts -- 런 실패 시에도 10초당 1pt 지급 → "패배해도 진전이 있다" 심리적 보상 -- Nova Burst 발동 시 20프레임(0.33초) 확장 충격파 링 + 스파이크 라인 시각화 - -## 🔧 처리 과정 (How) - -### 1. useGameEngine.ts — 보스 처치 패스 포인트 -- `PERMANENT_REWARD` intent 핸들러에 `addEventPassPoints(200 × stage)` 추가. -- 보라색 플로팅 텍스트 `+N PASS PTS` 연출. - -### 2. StageDirectorSystem.ts — STAGE_CLEAR 패스 포인트 -- `case 'STAGE_CLEAR'`의 `phaseTimer === 1` 시점에 `addEventPassPoints(500 + stage × 100)` 1회 호출. -- phaseTimer === 1 조건으로 중복 지급 완전 차단. - -### 3. useGameEngine.ts — 게임오버 부분 런 보상 -- 최종 사망 분기에 `Math.floor(frame / 60 / 10)` pts 지급 (10초당 1pt). -- "실패해도 패스 티어가 오른다" UX 확보. - -### 4. stateMachine.ts — PhaseTransitionContext 확장 -- `addEventPassPoints`, `addGold` 콜백 시그니처 추가 (미래 확장성 확보). - -### 5. ModularWeaponSystem.ts — novaBurstRingEffect 신호 생성 -- 충격파 발동 시 `state.novaBurstRingEffect = { x, y, radius, level, timer: 20 }` 설정. -- GameRenderer가 이 신호를 읽어 20프레임 동안 링을 렌더링. - -### 6. GameRenderer.ts — renderNovaBurstEffect (4레이어 렌더러) -- **레이어 1**: 외부 청록(#00e5ff) 충격파 링 — 두께 4→1px, 글로우 shadow -- **레이어 2**: 내부 흰색 보조 링 (50% 반경, 40% 투명도) -- **레이어 3**: 중심 시안 라디알 플래시 (초기 8프레임만, 빠른 소멸) -- **레이어 4**: 6/8방향 스파이크 라인 (Lv3이면 8개) — 링 바깥으로 뻗는 방출 연출 -- `ring.timer--`로 자체 tick하여 별도 상태 관리 불필요. - -## 🧠 사용한 지식 (Knowledge Used) -- **Canvas 2D Compositing**: globalAlpha 스택 + save/restore 패턴으로 레이어별 독립적 투명도 관리. -- **RadialGradient API**: createRadialGradient(cx, cy, r0, cx, cy, r1) 패턴으로 중심 플래시 구현. -- **Signal Pattern**: 시스템 간 결합을 최소화하기 위해 state 오브젝트에 임시 신호 필드를 기록하고 렌더러가 읽는 방식. -- **Event Pass Economics**: 보스>클리어>실패 순의 포인트 차등화로 플레이 깊이에 따른 보상 곡선 설계. - -## ✅ 결과 (Result) -- TypeScript 에러 0개 -- Git Commit: `226eb7c` (feat_event_pass_hooks_nova_burst_canvas_renderer) -- Push: `origin/main` - -## 🔗 연결 지식 (Relevant Knowledge) -- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (Event Pass Economy, Consolation Reward) -- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Signal Pattern, System Decoupling) -- E:\Wiki\2nd\10_Wiki\Topics\UI-UX (Canvas Compositing, Visual Feedback Loop) diff --git a/00_Raw/2026-04-22_Git_Protocol_Setup.md b/00_Raw/2026-04-22_Git_Protocol_Setup.md deleted file mode 100644 index fed77b19..00000000 --- a/00_Raw/2026-04-22_Git_Protocol_Setup.md +++ /dev/null @@ -1,27 +0,0 @@ -# [LOG] Git Operation Mapping Protocol & Work Log System Setup - -- **작업 일시**: 2026-04-22 -- **작업 내용**: 구역별 Git 명령어 맵핑(Wiki, Skybound, Legal, Agent) 및 작업 자동 기록 시스템(Work Log) 수립. -- **이유/목적**: 대표님의 명령 한마디로 복잡한 Git 작업을 정확한 경로와 저장소에 수행하고, 모든 AI 작업 과정을 체계적으로 문서화하여 누락 없는 히스토리 관리를 하기 위함. -- **기대값**: - 1. Git 작업 시 경로 혼선 및 저장소 오류 0건 달성. - 2. 모든 작업의 의도, 지식, 결과가 md 파일로 축적되어 추후 지식 베이스 강화에 기여. -- **처리 과정**: - 1. 각 프로젝트별(`2nd`, `skybound`, `Legal`, `Agent`) 현재 Git 설정 확인. - 2. 대표님 지시 URL과 로컬 설정 대조 및 필요 시 `set-url`로 업데이트. - 3. 각 폴더에 `GIT_PROTOCOL.md`를 생성하여 명문화. - 4. `E:\Wiki\2nd\00_Raw` 경로에 작업 일지 작성 시스템 가동. -- **사용 지식**: - * Git Remote Management (`git remote set-url`) - * Organizational Process Assets (OPA) 구축 방법론 - * Markdown 기반 기술 문서 표준화 -- **결과**: - * 4개 주요 거점의 Git 맵핑 완료 및 승인 대기. - * 첫 번째 작업 로그(`2026-04-22_Git_Protocol_Setup.md`) 생성 완료. -- **연결 지식 (Relevant Knowledge)**: - * [[E:\Wiki\2nd\10_Wiki\Topics\04_Governance_Reliability]] (거버넌스 및 신뢰성) - * [[E:\Wiki\2nd\10_Wiki\Topics\Automation]] (자동화) - * [[E:\Wiki\2nd\10_Wiki\Topics\Skybound]] (프로젝트 연계) - ---- -**작성자**: AI 개발부장 코다리 🫡 diff --git a/00_Raw/2026-04-22_LevelUp_Evolution_System.md b/00_Raw/2026-04-22_LevelUp_Evolution_System.md deleted file mode 100644 index fb6bba51..00000000 --- a/00_Raw/2026-04-22_LevelUp_Evolution_System.md +++ /dev/null @@ -1,70 +0,0 @@ -# 작업 로그: In-Game Level-Up & Evolution System (Phase 1~4) 전체 구현 - -## 📋 작업 내용 (What) -Skybound 프로젝트의 인게임 레벨업 및 진화 시스템을 4개 핵심 파일에 걸쳐 완전 구현. - -## 🎯 왜 했는지 (Why) -기존 `ProgressionSystem.ts`에 EXP 수집, 레벨업, 진화 구조가 골격만 있었고: -- 게임 Pause 연동이 없어 카드 선택 중에도 전투가 진행됨 -- 스킬 선택 후 엔진 내부 상태에 `(engine as any).state` 해킹으로 불완전 반영 -- EVO 스탯 적용 로직 없음, 패시브 스킬 확장 불가 -- 카드 풀 생성이 UI에서 무작위 생성되어 엔진 로직과 분리됨 - -## 💡 기대값 (Expected Value) -- 레벨업 시 게임 완전 Pause + 3지선다 카드 표시 → 선택 후 재개 -- 스킬이 엔진 내부 state에 정확히 반영됨 (단방향 플로우) -- 진화 조건 달성 시 EVO 이펙트 + 스탯 즉시 반영 -- TypeScript 타입 에러 0개 - -## 🔧 처리 과정 (How) - -### 1. ProgressionSystem.ts (전면 재작성) -- `handleLevelUp()`: ctx.setPaused(true) 호출 후 `generateSkillCards()` 결과를 LEVEL_UP 이벤트에 포함 -- `generateSkillCards()`: MAX_SKILL_SLOTS 가드, 소유 스킬 2x 가중치 Fisher-Yates 셔플 -- `applySkillSelection(ctx, skillId)`: 외부 콜백 포트 — UI에서 호출 → 엔진 state.skills 직접 업데이트 → setPaused(false) -- `processEvolution()`: EVOLUTION_RECIPES 레지스트리 기반 스캔으로 EVO 트리거 -- `syncPassives()`: magnetRadius, speedBoost, fireRateBoost 패시브 스탯 매 프레임 동기화 - -### 2. useGameEngine.ts -- `skillUpdaterRef` 추가: React UI → 엔진 단방향 주입 포트 -- `ctx` 선언 전 클로저 TDZ 방지를 위해 `let ctx` 패턴 사용 -- `applySkill()` 메서드 훅 반환에 추가 - -### 3. GameSceneRenderer.tsx (전면 재작성) -- `engineRef` 패턴으로 hoisting 에러 제거 -- `handleEngineEvent`에서 `e.cards` 수신 → `levelUpCards` state 저장 -- `handleSkillSelect`: addSkill(store) + engine.applySkill(engine) 순서 보장 -- LevelUpModal에 `preGeneratedCards` prop 전달 - -### 4. LevelUpModal.tsx (전면 재작성) -- `preGeneratedCards` prop 우선 사용 (엔진 결정론적 생성) -- 레벨 업그레이드 표시 (Lv.N → Lv.N+1) -- 빈 풀 처리 (Skip 옵션) - -### 5. 타입 시스템 업데이트 -- `EffectiveStats`: `magnetRadius: number` 추가 -- `GameEvent.LEVEL_UP`: `cards: string[]` 추가 -- `createDefaultState`: `magnetRadius: 180` 초기화 -- `calculateEffectiveStats`: `magnetRadius: 180` 반환 - -### 6. AudioManager.ts -- `playLevelUp()`: C5→E5→G5→C6 상승 아르페지오 절차형 사운드 -- `playEvoSuccess()`: 베이스 충격파 + 5음 하모닉 버스트 + 시머 레이어 -- `playSFX()` 라우팅: 'level-up', 'evo-success' → 전용 메서드 - -## 🧠 사용한 지식 (Knowledge Used) -- JavaScript TDZ (Temporal Dead Zone): `let ctx` + closure 패턴 -- Fisher-Yates 셔플 알고리즘 (결정론적 랜덤) -- Game Engine State-Driven Architecture (Pause Gate Pattern) -- React useRef 패턴 (closure staleness 방지) -- Web Audio API: OscillatorNode, BiquadFilterNode, GainNode 절차형 합성 -- TypeScript 인터페이스 확장 원칙 - -## ✅ 결과 (Result) -**TypeScript 타입 에러 0개** — `npx tsc --noEmit` 클린 통과 - -## 🔗 연결 지식 (Relevant Knowledge) -- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (State Machine, Loop Design) -- E:\Wiki\2nd\10_Wiki\Topics\TypeScript-Patterns (Closure, TDZ, Ref Pattern) -- E:\Wiki\2nd\10_Wiki\Topics\Audio-Engineering (Procedural Sound Design) -- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Unidirectional Data Flow) diff --git a/00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md b/00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md deleted file mode 100644 index 94b0df99..00000000 --- a/00_Raw/2026-04-22_NovaGuardian_PermUpgrade_StatInjection.md +++ /dev/null @@ -1,69 +0,0 @@ -# 작업 로그: NOVA_GUARDIAN EVO + Permanent Upgrade Stat Injection - -## 📋 작업 내용 (What) -1. **NOVA_GUARDIAN EVO 레시피**: `aoe_nova(Lv3 MAX) + energy_shield(Lv1+)` 조합으로 황금 충격파 수호자 진화 구현. -2. **Permanent Upgrade → EffectiveStats 실반영**: 영구 업그레이드 구매 시 실제 인게임 스탯(HP, ATK, SPD, MAGNET, GOLD)에 즉시 반영. - -## 🎯 왜 했는지 (Why) -- **Nova Burst의 EVO 목적지 부재**: `aoe_nova` 스킬이 최대 레벨 달성 후 더 이상 성장이 없어 장기 동기부여 약화. -- **Permanent Upgrade 구조적 결함**: 골드를 소비해 영구 업그레이드를 구매해도 실제 인게임 세션에 아무런 영향이 없는 "빈 껍데기" 상태였음. - -## 🔧 처리 과정 (How) - -### 1. evolutions.ts — 레시피 등록 + 스킬 최대 레벨 테이블 -- `aoe_nova`를 `SKILL_REGISTRY`에 PRIMARY 스킬로 등록 (기존에 없었음). -- `SKILL_MAX_LEVEL` 테이블 추가: `aoe_nova`의 최대 레벨을 3으로 명시적 정의. -- `checkEvolutionPossible()` 로직을 하드코딩 `>= 5` → `SKILL_MAX_LEVEL[baseId]` 조회로 변경하여 **스킬별 상이한 최대 레벨 지원** 확보. -- NOVA_GUARDIAN 레시피 및 메타데이터 추가 (icon: ✨). - -### 2. ProgressionSystem.ts — NOVA_GUARDIAN EVO 스탯 -- `applyEvoStats()` switch에 `NOVA_GUARDIAN` 케이스 추가: - - 쿨다운: 5s → 2.5s (`novaBurstCooldown` = 150프레임) - - 반경: +50% (`novaBurstRadiusBonus` = 0.5) - - 데미지: 기존 대비 ×2.5 - - 버스트 발동 시 1.5초(90프레임) 무적 플래그 (`novaGuardianShield: true`) - -### 3. ModularWeaponSystem.ts — 분기 처리 + 황금 색상 연출 -- `update()`: `evolved.has('NOVA_GUARDIAN')` 분기 추가 → `isGuardian=true`로 `updateNovaBurst()` 호출. -- `updateNovaBurst(isGuardian)` 파라미터 추가: - - `eff.novaBurstCooldown` 오버라이드 (EVO 스탯 반영) - - `eff.novaBurstRadiusBonus`로 반경 확장 - - Guardian 발동 시: 90프레임 무적, 황금 파티클 3중 링, "✨ SHIELD BURST ✨" 텍스트 - - `novaBurstRingEffect.isGuardian` 플래그 → GameRenderer에 색상 전달 - -### 4. GameRenderer.ts — 황금/청록 이중 색상 분기 -- `renderNovaBurstEffect()`: `ring.isGuardian` 기반 색상 팔레트 분기: - - Guardian: `#ffd700` 황금 외부 링, `#ffab40` 중간 링(75%), `#ff8f00` 글로우, 12방향 스파이크 - - Nova: 기존 청록 팔레트 유지 -- Guardian 전용 3번째 중간 링 레이어 추가 (확장감과 위용 강화). - -### 5. combatUtils.ts — V12.0 Stat Injection Engine -- `calculateEffectiveStats()` 시그니처 변경: - - 3번째 인자: `PermanentUpgradeState | any[]` (하위 호환성 유지) - - 4번째 인자: `inventory?: any[]` (옵셔널) -- Permanent Upgrade 파이프라인: - - HP_MAX: `eff.maxHp += level` (레벨당 +1 HP) - - ATTACK: `eff.dmg *= (1 + level * 0.05)` (레벨당 +5%) - - SPEED: `eff.speed *= (1 + level * 0.04)` (레벨당 +4%) - - MAGNET: `magnetRadius = 180 + level * 30` (레벨당 +30px) - - GOLD_GAIN: `eff.goldGainBonus = level * 0.10` (경제 시스템용 계수) - -### 6. 호출부 동기화 -- `useGameEngine.ts` L110: `calculateEffectiveStats('FALCON', equipped, permanentUpgrades, inventory)` -- `HangarOverlay.tsx` L27: `useMemo` 의존성 배열에 `permanentUpgrades` 추가 → 구매 즉시 미리보기 갱신 - -## 🧠 사용한 지식 (Knowledge Used) -- **하위 호환성 패턴**: 3번째 인자 타입 분기(`Array.isArray`)로 기존 HangarOverlay 호출도 에러 없이 유지. -- **EVO 설계 원칙**: 기반 스킬(aoe_nova)의 최대 레벨 도달 + 보조 스킬(energy_shield) 보유를 EVO 조건으로 하여 조합 전략성 부여. -- **Signal Pattern**: `eff.novaGuardianShield`, `eff.novaBurstCooldown`, `eff.novaBurstRadiusBonus`를 EffectiveStats에 플래그로 전달하여 WeaponSystem이 렌더러/로직에 결합 없이 EVO 상태를 인식. - -## ✅ 결과 (Result) -- TypeScript 에러 0개 -- 수정 파일: 7개 (evolutions.ts, ProgressionSystem.ts, ModularWeaponSystem.ts, GameRenderer.ts, combatUtils.ts, useGameEngine.ts, HangarOverlay.tsx) -- Git Commit: `cefd1a2` (feat_nova_guardian_evo_permanent_upgrade_stat_injection) -- Push 완료: `origin/main` - -## 🔗 연결 지식 (Relevant Knowledge) -- E:\Wiki\2nd\10_Wiki\Topics\Game-Design (EVO Design, Skill Max Level, Meta-Progression) -- E:\Wiki\2nd\10_Wiki\Topics\Software-Architecture (Signal Pattern, Backward Compatibility, Pipeline Design) -- E:\Wiki\2nd\10_Wiki\Topics\UI-UX (Canvas Ring Rendering, Color Palette Branching) diff --git a/00_Raw/Boss_Battle_Design_System.md b/00_Raw/Boss_Battle_Design_System.md new file mode 100644 index 00000000..d10395c5 --- /dev/null +++ b/00_Raw/Boss_Battle_Design_System.md @@ -0,0 +1,113 @@ +# 🛡️ Skybound: Boss Battle System & Damage Architecture + +이 문서는 Skybound 프로젝트의 보스전 메커니즘과 데미지 계산 체계를 정의합니다. 향 후 새로운 보스가 추가될 때, 이 문서의 **[Data Schema]**를 참조하여 `BossDefinition` 객체를 생성하십시오. + +--- + +## 1. [Core] Damage & Shield System (데미지 체계) + +플레이어 기체의 생존은 '장갑(Shield)' 게이지에 의존하며, 피탄 유형에 따라 감쇄율이 다릅니다. + +### 📊 기체별 피탄 감쇄율 (Damage Multiplier) +| 플레이어 기체명 | 탄환 피탄 시 (Projectile) | 충돌 시 (Collision/Crash) | +| :--- | :---: | :---: | +| **아즈마 (Azuma)** | 17% 감소 | 34% 감소 (2x) | +| **스피릿 오브 드래곤** | 13% 감소 | 26% 감소 (2x) | +| **물랑 루즈 (Mulang Rouge)** | 20% 감소 | 40% 감소 (2x) | + +> **Rule**: 모든 충돌(Collision) 데미지는 탄환 피탄 데미지의 정확히 **2배**를 적용한다. + +--- + +## 2. [Architecture] Boss Implementation Schema (보스 구현 구조) + +새로운 보스를 추가할 때는 아래의 `BossDefinition` 인터페이스를 구현하는 클래스를 생성하십시오. 확장성을 위해 **Phase(형태)**를 리스트로 관리합니다. + +### 🧬 Boss Definition Interface +```typescript +interface BossDefinition { + id: string; // 예: 'STAGE_01_PLATON' + name: string; // 보스 명칭 + totalPhases: number; // 총 형태 수 (2 or 📋) + + phases: Array<{ + phaseIndex: number; // 1, 2, 3... + description: string; // 해당 페이즈의 특징 + attackPatterns: Pattern[]; // 이 페이즈에서 사용 가능한 패턴 리스트 + transformationTrigger: string | null; // 다음 페이즈로 넘어가는 조건 + }>; + + warningSequence: { + audioSfx: string; // 경고음 ID + cameraEffect: 'ZOOM_IN' | 'SHAKE'; // 카메라 연출 + }; +} + +interface Pattern { + type: 'DIRECT_FIRE' | 'SPREAD' | 'WINDER' | 'DRIFT' | 'AOE'; + projectileType: 'NORMAL' | 'DESTRUCTIBLE' | 'GREEN_HAZARD'; + complexity: number; // 탄창의 밀도 및 난이도 +} +``` + +--- + +## 3. [Database] Boss Patterns Registry (보스별 데이터) + +### ⚔️ Stage 1: 플라톤 (Platon) [2 Phases] +* **Phase 1**: 기생 전투기 2대 소환 $\rightarrow$ 플레이어 조준 4점사 및 저격탄 발사. +* **Phase 2**: 본체 등장 $\rightarrow$ 날개 충전식 포(2), 직선 기총(6), 파괴 가능 탄(4)을 통한 정밀 사격. + +### ⚔️ Stage 2: 그레이트 혼 (Great Horn) [2 Phases] +* **Phase 1**: 조준탄 $\rightarrow$ 회오리탄 $\rightarrow$ 드릴(파일벙커) 및 돌덩이 투척. +* **Phase 2**: 전방 팽이 포탑 배치 $\rightarrow$ 일렬탄 난사 및 전방 돌진 $\rightarrow$ 좌우 산탄/조준탄 복합 패턴. + +### 🦑 Stage 3: 크라켄 (Kraken) [3 Phases] +* **Phase 1 (Ship Form)**: 직선 함포, 고속 조준탄, 기뢰 투척, 탄뭉텅이 생성. +* **Phase 2 (Transformed)**: 함체 뒤집힘 $\rightarrow$ 초고속 방사(5/7점사), 잠수 후 미사일, 5-way 이중 조준탄. +* **Phase 3 (Land/Flight Form)**: 4족 보행 비행형 $\rightarrow$ 파괴 가능 탄량사, 주포 3점사, 중앙 돌진 패턴. + +### 🦋 Stage 4: 스파이스 버드 (Spice Birds) [2 Phases] +* **Phase 1**: 광역 조준탄 $\rightarrow$ 화면 이동 후 산탄(4회) $\rightarrow$ 대각선 연사 및 빈 공간 탄 형성. +* **Phase 2 (Split)**: 본체 분리(호버 탱크 2대) $\rightarrow$ 전체 화면 회오리탄 $\rightarrow$ 3-way 및 산탄 난사. + +### 🐝 Stage 5: 블로우 오브 호른 (Blow of Hornet) [3 Phases] +* **Phase 1**: 회오리탄(3~5발) 이중 난사, 고속 광역 조준탄, 2연속 록온 레이저. +* **Phase 2**: 연사탄 좌우 발사 $\rightarrow$ 고속 광역탄 $\rightarrow$ 노란색 경고 표시 광역 레이저 투하. +* **Phase 3**: 중앙 코어 거대 레이저(이동 제한) $\rightarrow$ 양옆 포의 조준탄 및 초고속 확산탄. + +### 🚂 Stage 6: 쉬프트 메시아 (S.H.I.F.T Messiah) [3 Phases] +* **Phase 1**: 열차 1대 $\rightarrow$ 와인더(침탄줄)로 플레이어 가둠 $\rightarrow$ 고속 조준탄 및 촘촘한 탄막. +* **Phase 2 (Armor Up)**: CIWS 개틀링, 3포신 포탑 고속탄, 랜덤탄, 화염방사 패턴 추가. +* **Phase 3 (Triple Threat)**: 열차 3대 동시 등장 $\rightarrow$ 광역 공격, 중형 미사일, 랜덤탄 및 화염방사 합동 공격. + +### 👼 Stage 7: 콜로니 엔젤 (Colony Angel) [3 Phases] +* **Phase 1**: 다리(6개) 파괴 단계 $\rightarrow$ 각 다리를 순차적으로 제거. +* **Phase 2**: 고속 원형 확산탄 및 조준탄 대량 투하. + +* **Phase 3 (Final Form)**: 상부 회전 $\rightarrow$ 초고속 와인더 탄줄 + 고속 조준탄 $\rightarrow$ 이중 회전 탄줄 발악 패턴. + +### 👑 Stage 8: 최종 보스 (Ultimate Boss) [3 Phases] +* **Boss A: 험프티 덤프티 (Humpty Dumpty)**: 3단계 진행 $\rightarrow$ 최종 단계에서 초고속 확산탄 및 고속 조준탄 연사. +* **Boss B: 디바인 램파트 (Divine Rampart)** *(조건: 모든 무기 Lv.10)* + * **Phase 1**: 초고속 회오리탄 + 6-way 와인더 탄줄. + * **Phase 2**: 전함 3대 사출 $\rightarrow$ 전함들의 조준탄/회전탄/확산탄 합동 공격. + * **Final Phase**: 본체 회전 및 무수한 탄량사 $\rightarrow$ 순간 이동 후 광폭화 패턴 반복. + + +## 4. [Level Design] 보스전 난이도 조절 메커니즘 (Difficulty Scaling) + +보스전의 재미는 '예측 가능한 위협'과 '극복하기 힘든 압박' 사이의 균형에 있습니다. 다음 요소를 활용하여 스테이지별 난이도를 설계하십시오. + +### 📈 난이도 곡선 제어 요소 +* 탄환 밀도 (Bullet Density): Pattern.complexity 값을 조절하여 탄창의 빈틈을 줄입니다. 초반부에는 플레이어가 피할 공간(Safe Zone)을 확보해주고, 후반부로 갈수록 탄창 사이의 간격을 최소화합니다. +* 공격 패턴의 복합성 (Pattern Layering): + * Phase 1: 단일 방향성 공격 (예: 직선 기총). + * Phase 2: 다방향성 + 물리적 방해 (예: 회오리탄 + 돌덩이 투척). + * Phase 3: 플레이어의 이동을 제한하는 '환경 제약'형 패턴 (예: 거대 레이저로 인한 구역 제한). +* 공격 주기 (Attack Frequency): Cooldown 값을 줄여 공격 사이의 공백을 없앰으로써 플레이어가 반격할 타이밍을 극도로 제한합니다. + +### ⚠️ 위험 요소 관리 (Hazard Integration) +보스전은 단순히 보스만 등장하는 것이 아니라, 주변 환경(Stage Environment)과의 상호작용이 필수적입니다. +* 환경 장애물: 보스가 파괴 가능한 부속물(예: Stage 1의 날개 끝 포, Stage 3의 기뢰)을 생성하여 플레이어의 이동 경로를 물리적으로 차단하게 설계합니다. +* 데미지 누적 압박: Spike 이벤트를 활용하여 특정 시간대에 탄환 밀도를 폭발적으로 증가시켜, 플레이어가 '생존'에만 집중하게 만드는 구간을 배치합니다. \ No newline at end of file diff --git a/10_Wiki/Technical_Reports/2026-04-22_Boss_Battle_System_Implementation.md b/10_Wiki/Technical_Reports/2026-04-22_Boss_Battle_System_Implementation.md new file mode 100644 index 00000000..1b871e80 --- /dev/null +++ b/10_Wiki/Technical_Reports/2026-04-22_Boss_Battle_System_Implementation.md @@ -0,0 +1,46 @@ +# [TECH-REPORT] Skybound Boss Battle Architecture (v1.0) +**Date**: 2026-04-22 +**Author**: Antigravity (Dev Lead) +**Status**: COMPLETED / STABLE + +## 1. 개요 (Overview) +Skybound Protocol의 8단계 캠페인 시스템 완성을 위한 '데이터 주도형 보스 전투 시스템'의 구현 상세를 기록한다. 본 시스템은 하드코딩된 보스 로직을 탈피하고, 외부 레지스트리 기반의 페이즈 제어 및 플레이어 숙련도(Mastery)에 따른 최종 보스 분기 로직을 핵심으로 한다. + +## 2. 주요 구현 사항 (Key Implementations) + +### 2.1 기체별 데미지 감쇄 시스템 (Damage Mitigation) +- **목적**: 기체(Airframe)별 개성을 강화하고 생존 전략의 차별화 제공. +- **로직**: `CombatSystem.ts` 내 피격 판정 시 `GAME_BALANCE`의 감쇄율 적용. +- **수치**: + - **FALCON**: 탄환 -17% / 충돌 -34% + - **RAYCE**: 탄환 -13% / 충돌 -26% + +### 2.2 보스 레지스트리 아키텍처 (Boss Registry) +- **파일**: `src/features/game/config/bossRegistry.ts` +- **역할**: 스테이지별 보스 데이터(이름, ID, 페이즈 구성, 패턴 밀도)의 Single Source of Truth. +- **특징**: `resolveNextPhase()` 유틸리티를 통해 HP 임계값, 부하 기체 전멸(`MINIONS_CLEARED`), 부품 파괴 등 다양한 조건에 따른 동적 페이즈 전환 지원. + +### 2.3 최종 보스 분기 로직 (Mastery Branching) +- **위치**: `StageDirectorSystem.ts` -> `instantiateBoss()` +- **조건**: 인게임 모든 업그레이드(6종)가 **Level 10 (Mastery)**에 도달했는지 체크. +- **분기**: + - **Normal**: 험프티 덤프티 (Humpty Dumpty) + - **Mastery**: 디바인 램파트 (Divine Rampart) - 기본 체력 1.5배 증가 및 4단계 페이즈 구성. + +## 3. 데이터 구조 (Data Structure) + +```typescript +export interface BossPhase { + phaseIndex: number; + attackPatterns: Pattern[]; + transformationTrigger: 'HP_THRESHOLD' | 'ALL_PARTS_DESTROYED' | 'MINIONS_CLEARED' | null; + hpThreshold: number | null; +} +``` + +## 4. 향후 유지보수 가이드 (Maintenance) +- **보스 추가**: `bossRegistry.ts`의 `BOSS_REGISTRY` 배열에 신규 `BossDefinition`을 추가하는 것만으로 신규 보스 및 페이즈 설계 가능. +- **밸런스 조정**: `balance.ts`의 `PLAYER.AIRFRAMES` 섹션에서 감쇄율 수치 즉시 조정 가능. + +--- +**Approval Status**: 🫡 (Kodari Approved) diff --git a/10_Wiki/Topics/.obsidian/graph.json b/10_Wiki/Topics/.obsidian/graph.json index b1e92fe6..5331a34e 100644 --- a/10_Wiki/Topics/.obsidian/graph.json +++ b/10_Wiki/Topics/.obsidian/graph.json @@ -17,6 +17,6 @@ "repelStrength": 10, "linkStrength": 1, "linkDistance": 250, - "scale": 0.015355906606692529, + "scale": 0.16348370567220236, "close": true } \ No newline at end of file diff --git a/10_Wiki/Topics/.obsidian/workspace.json b/10_Wiki/Topics/.obsidian/workspace.json index b3bc437e..f8c301ba 100644 --- a/10_Wiki/Topics/.obsidian/workspace.json +++ b/10_Wiki/Topics/.obsidian/workspace.json @@ -178,6 +178,9 @@ }, "active": "5e19c94f304a33d1", "lastOpenFiles": [ + "Skybound/05_Project_Issues/2026-04-22_Engine_Stability_Audit.md", + "Skybound/01_Core_Engine/Visual_Feedback_Signal_Pattern.md", + "Skybound/04_Mechanics_Progression/Meta_Economy_Growth_Loop.md", "10_Wiki/💡 Topics/Graphics & Performance.md", "10_Wiki/💡 Topics", "10_Wiki", @@ -206,9 +209,6 @@ "React_Testing_Strategy.md", "React_Clean_Code_Best_Practices.md", "React_State_Management_Strategy.md", - "React_Performance_Optimization.md", - "Component_Design_Patterns.md", - "React_Hooks_Deep_Dive.md", - "React_Mental_Model.md" + "React_Performance_Optimization.md" ] } \ No newline at end of file diff --git a/10_Wiki/Topics/03_DevOps_Environment/Git_Operation_Protocol.md b/10_Wiki/Topics/03_DevOps_Environment/Git_Operation_Protocol.md new file mode 100644 index 00000000..57b1da2c --- /dev/null +++ b/10_Wiki/Topics/03_DevOps_Environment/Git_Operation_Protocol.md @@ -0,0 +1,50 @@ +# 🛠️ Git Operation & Work Log Protocol (Git 작업 및 기록 지침) + +> **카테고리**: [[03_DevOps_Environment]], [[Automation]] +> **상태**: 🟢 활성화 (Active) +> **최종 업데이트**: 2026-04-22 + +--- + +## 📌 개요 (Overview) +본 문서는 Skybound 프로젝트를 포함한 4개 주요 개발 거점의 원격 저장소 동기화 정합성을 유지하고, 모든 AI 작업 과정을 체계적으로 문서화하기 위한 Git 운영 규정 및 작업 로그(Work Log) 시스템을 정의한다. + +## 🔗 프로젝트별 Git 맵핑 (Repository Mapping) +대표님의 명령 한마디로 정확한 경로에서 작업을 수행하기 위해 각 폴더별로 독립적인 Git 설정을 유지한다. + +| 프로젝트 | 로컬 경로 | 원격 저장소 (Remote URL) | 리모트 명칭 | +| :--- | :--- | :--- | :--- | +| **Wiki (2nd)** | `E:\Wiki\2nd` | `https://github.com/wonseokjung/solopreneur-ai-agents.git` | `lm_sync` | +| **Skybound** | `E:\Wiki\skybound` | `https://github.com/wonseokjung/skybound-protocol.git` | `origin` | +| **Legal** | `E:\Wiki\legal-bridge` | `https://github.com/wonseokjung/legal-bridge.git` | `origin` | +| **Agent** | `E:\Wiki\auto-research-agent`| `https://github.com/wonseokjung/auto-research-agent.git` | `origin` | + +## 🛠️ 운영 지침 (Operational Guidelines) + +### 1. 동기화 프로토콜 (Full Sync) +- **주기**: 모든 작업 세션 시작 전 및 종료 후. +- **명령**: `git pull ` (일반적으로 main). +- **목적**: 로컬 작업 환경과 원격 저장소의 정합성 확보 및 충돌 방지. + +### 2. 작업 로그 시스템 (Work Log) +- **생성 경로**: `E:\Wiki\2nd\00_Raw` +- **파일명 규칙**: `YYYY-MM-DD_Task_Description.md` +- **필수 포함 항목**: + - **What**: 작업 내용 요약. + - **Why**: 작업의 의도 및 목적. + - **How**: 주요 코드 수정 내역 및 기술적 처리 과정. + - **Knowledge**: 사용된 지식 및 새롭게 습득한 패턴. + - **Result**: 최종 결과 및 관련 연결 지식. + +### 3. 위키화 (Wikification) +- `00_Raw`에 축적된 로그는 주기적으로 `10_Wiki\Topics` 하위 카테고리로 고도화(Refinement)되어 이동된다. +- 위키화가 완료된 원본 로그는 삭제하여 지식 베이스의 정결성을 유지한다. + +## 🚀 기대 효과 +1. **정확성**: 경로 혼선으로 인한 Git 작업 오류 0건 유지. +2. **지속성**: AI의 모든 작업 과정이 지식 자산(OPA)으로 축적되어 지식 베이스 강화. +3. **신뢰성**: 대표님의 명령에 따른 즉각적이고 투명한 히스토리 관리. + +--- +**승인인**: AI 개발부장 코다리 🫡 +**관련 문서**: [[GIT_PROTOCOL.md]], [[WIKIFICATION_PROTOCOL.md]] diff --git a/10_Wiki/Topics/Skybound/01_Core_Engine/Git_Synchronization_Protocol.md b/10_Wiki/Topics/Skybound/01_Core_Engine/Git_Synchronization_Protocol.md new file mode 100644 index 00000000..827b0c8f --- /dev/null +++ b/10_Wiki/Topics/Skybound/01_Core_Engine/Git_Synchronization_Protocol.md @@ -0,0 +1,29 @@ +# 🚩 Git Synchronization & Knowledge Mesh Protocol + +**Category:** Governance / DevOps +**Status:** Active (v1.0) +**Related:** [[Skybound-Knowledge-Hub|Knowledge Hub]], [[WIKIFICATION_PROTOCOL|Wikification Protocol]] + +--- + +## 1. Dual-Repository Structure +Skybound 프로젝트는 '코드'와 '지식'의 분리 및 유기적 결합을 위해 이중 리포지토리 체계를 유지한다. + +- **Skybound (Dev)**: 인게임 소스 코드 (React/Vite/TS). +- **Wiki (Knowledge)**: 시스템 설계, 연구 보고서, 지식망 (Obsidian/Markdown). + +## 2. Synchronization Workflow + +### A. Development Logging +- 모든 주요 테스크 완료 후 `00_Raw` 폴더에 `YYYY-MM-DD_Subject.md` 형식으로 작업 내역을 즉시 기록한다. + +### B. Commit Strategy +- **Independent Commits**: 각 리포지토리의 변경 사항은 독립적으로 관리한다. +- **Session Finalization**: 작업 세션 종료 전, 지식 베이스의 실시간 동기화를 위해 Wiki 리포지토리를 반드시 Push한다. + +## 3. Knowledge Maturation (지식의 숙성) +- `00_Raw` (원석) → `10_Wiki` (정제 및 링크) → `Knowledge Hub` (지형도 완성) +- 모든 기술적 의사결정은 `knowledge` 디렉토리 내의 KI(Knowledge Item)로 자산화하여 미래의 AI 및 팀원에게 전수한다. + +--- +**Last Updated:** 2026-04-22 🫡 diff --git a/10_Wiki/Topics/Skybound/01_Core_Engine/Visual_Feedback_Signal_Pattern.md b/10_Wiki/Topics/Skybound/01_Core_Engine/Visual_Feedback_Signal_Pattern.md new file mode 100644 index 00000000..53f15702 --- /dev/null +++ b/10_Wiki/Topics/Skybound/01_Core_Engine/Visual_Feedback_Signal_Pattern.md @@ -0,0 +1,39 @@ +# 🎨 Visual Feedback & Signal Pattern (시각적 피드백 및 신호 패턴) + +> **카테고리**: [[Skybound]], [[UI-UX]], [[Graphics & Performance]] +> **상태**: 🔵 표준화 완료 (Standardized) +> **최종 업데이트**: 2026-04-22 + +--- + +## 📌 개요 (Overview) +Skybound의 렌더링 시스템은 게임 로직(ModularWeaponSystem 등)과 렌더러(GameRenderer) 간의 결합도를 낮추기 위해 'Auto-decay Signal Pattern'을 사용한다. 이를 통해 복잡한 애니메이션 상태 관리 없이도 화려한 특수 효과를 구현한다. + +## 🛠️ 핵심 디자인 패턴 (Core Patterns) + +### 1. Auto-decay Signal Pattern +- **작동 원리**: 로직 시스템에서 시각 효과가 필요할 때, 공유 `state` 객체에 짧은 생명주기(timer)를 가진 신호 객체를 기록한다. +- **예시 (Nova Burst)**: + ```typescript + state.novaBurstRingEffect = { x, y, radius, level, timer: 20 }; + ``` +- **렌더러 동작**: `GameRenderer`는 매 프레임 해당 신호가 있는지 확인하고, 있으면 그림을 그린 뒤 `timer--`를 수행한다. 타이머가 0이 되면 신호는 자연 소멸한다. +- **장점**: 로직과 렌더링 레이어의 완벽한 분리, 시스템 간 의존성 최소화. + +### 2. Multi-Layer Canvas Compositing +화려한 연출을 위해 단일 `arc`가 아닌 여러 레이어의 합성(Compositing)을 사용한다. +- **Base Layer**: 중심점에서의 강한 플래시 (Radial Gradient). +- **Shockwave Layer**: 시간에 따라 확장되며 얇아지는 메인 링. +- **Spike/Particle Layer**: 방향성을 가진 스파이크 라인 및 파티클 방출. +- **Color Branching**: 일반 스킬은 청록(#00e5ff), EVO 스킬(Nova Guardian)은 황금(#ffd700) 팔레트를 사용하여 위계 차별화. + +### 3. Screen Shake & Damage Text +- **Shake Intent**: 강력한 타격 시 `SCREEN_SHAKE` 인텐트를 발행하여 카메라 좌표에 노이즈를 가산. +- **Floating Text**: 획득 보상(Gold, Pass Points)이나 데미지를 색상별로 구분하여 플로팅 텍스트로 처리. + +## 💡 성능 최적화 (Optimization) +- 모든 렌더링은 `Canvas 2D API`의 `globalAlpha`와 `save/restore` 스택을 활용하여 상태 오염을 방지하고 성능 부하를 최소화함. + +--- +**승인인**: AI 개발부장 코다리 🫡 +**관련 코드**: `GameRenderer.ts`, `ModularWeaponSystem.ts`, `useGameEngine.ts` diff --git a/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Encounter_and_Timeline_Design.md b/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Encounter_and_Timeline_Design.md new file mode 100644 index 00000000..ea927b82 --- /dev/null +++ b/10_Wiki/Topics/Skybound/03_Boss_Systems/Boss_Encounter_and_Timeline_Design.md @@ -0,0 +1,41 @@ +# 👾 Boss Encounter & Timeline Design + +**Category:** Combat Design / Level Design +**Status:** Optimized (v12.1) +**Related:** [[02_Combat_AI/Combat-System-and-Bullet-Interaction-Pipeline|Combat System]], [[04_Mechanics_Progression/Campaign_and_Dual_Loop_System|Campaign System]] + +--- + +## 1. Timeline Compression Strategy +Skybound의 전투는 '긴장감의 밀도'를 최우선으로 한다. 기존의 지루한 대기 시간을 제거하고 핵심 인카운터를 전면에 배치한다. + +### A. Accelerated Engagement +- **초반 30초**: 기본 적 편대와의 교전으로 빌드업. +- **60초 지점**: 중간 보스 또는 특수 기믹 적기 등장. +- **120초 지점**: 스테이지 최종 보스 조우 (기존 대비 50% 단축). + +### B. Power Spike Reward +- 보스 조우 30초 전, 확정적인 **AoE/Knockback** 스킬 보상을 지급하여 보스전의 '화력 투사' 준비를 도움. + +--- + +## 2. Advanced Boss Mechanics + +### 🛡️ Multi-Part Destruction (부위 파괴) +보스는 단일 개체가 아닌 다중 파츠의 집합체로 구성된다. +- **Core (핵심)**: 보스의 생명력. 파괴 시 최종 승리. +- **Wings (날개)**: 보스의 이동 속도 및 회피 기동 제어. 파괴 시 기동성 50% 저하. +- **Turrets (포탑)**: 주력 화력. 파괴 시 특정 공격 패턴(예: 탄막 방사) 봉쇄. + +### 📊 Loot Integration +- **Guaranteed Drop**: 보스 처치 시 최소 Rare 등급 이상의 모듈 확정 드롭. +- **Scaling Loot**: 스테이지 인덱스가 높을수록 전설(Legendary) 등급 드롭률 지수적 상승. + +--- + +## 3. Deployment Logic +- **Module**: `CombatTimeline.ts`, `ProgressionSystem.ts` +- **Configuration**: `getStandardTimeline()` 팩토리 함수를 통한 스테이지별 특화 타임라인 생성. + +--- +**Last Updated:** 2026-04-22 🫡 diff --git a/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Campaign_and_Dual_Loop_System.md b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Campaign_and_Dual_Loop_System.md new file mode 100644 index 00000000..627d8ecb --- /dev/null +++ b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Campaign_and_Dual_Loop_System.md @@ -0,0 +1,45 @@ +# ♾️ Campaign & Dual-Loop Architecture + +**Category:** Core System / Economy +**Status:** Implemented (v12.1) +**Related:** [[04_Mechanics_Progression/InGame_Progression_System|In-Game Progression]], [[04_Mechanics_Progression/Meta_Economy_Growth_Loop|Meta-Economy]] + +--- + +## 1. Concept: The Dual-Loop Strategy +Skybound는 두 가지 서로 다른 성격의 플레이 루프를 유기적으로 결합하여 지속적인 동기부여와 성장을 도모한다. + +### A. Blitz Loop (Farming) +- **성격**: 무한 경쟁, 자원 획득 중심. +- **목표**: 최대한 많은 [[04_Mechanics_Progression/Meta_Economy_Growth_Loop|Gold]]와 모듈 파편을 획득. +- **연계**: 여기서 벌어들인 골드는 캠페인 모드의 난이도를 낮추는 결정적인 자원이 된다. + +### B. Campaign Loop (Standard) +- **성격**: 기승전결이 있는 시나리오 기반 도전. +- **목표**: 8단계의 스테이지를 클리어하여 세계관을 확장하고 고유 보상을 획득. +- **연계**: 클리어 시 더 높은 등급의 크래프팅 도면과 특수 기체(Airframe)를 해금. + +--- + +## 2. Core Components + +### 🛰️ StageManager (Orchestrator) +스테이지의 진행 상태와 모드 간의 데이터를 브릿징하는 싱글톤 시스템. +- **Stage Persistence**: 클리어한 스테이지 정보를 브라우저 LocalStorage에 영구 보존. +- **Tactical Support**: Blitz에서 번 500G를 소모하여 다음 스테이지 보스의 방어력을 10% 삭감 (최대 중첩 가능). + +### ⏳ Dynamic Timeline Scaling +스테이지 번호에 따라 엔진의 난이도 계수(`Difficulty Multiplier`)를 실시간 조정. +- **Scaling Formula**: `1.0 + (stageIndex * 0.35)` +- **Stage 1**: 1.0x (입문) +- **Stage 8**: 3.45x (극한의 도전) + +--- + +## 3. Technical Implementation +- **Data Source**: `StageManager.ts` +- **UI Interaction**: `HangarOverlay.tsx`, `ResultCard.tsx` +- **Logic Guard**: `useGameEngine.ts` (일시정지 동기화 보강) + +--- +**Last Updated:** 2026-04-22 🫡 diff --git a/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling.md b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling.md new file mode 100644 index 00000000..ef66a52e --- /dev/null +++ b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling.md @@ -0,0 +1,41 @@ +# 📈 Combat Timeline & Difficulty Scaling (전투 타임라인 및 난이도 조절 시스템) + +> **카테고리**: [[Skybound]], [[Game Design]], [[Software Architecture]] +> **상태**: 🔵 구현 완료 (Implemented) +> **최종 업데이트**: 2026-04-22 + +--- + +## 📌 개요 (Overview) +Skybound의 전투 시스템은 단순히 무작위로 적을 생성하는 것을 넘어, 시간 흐름에 따른 긴장감의 완급 조절(Difficulty Curve)과 성능 최적화(Staggered Spawn)를 동시에 달성하는 스크립트 기반 타임라인 시스템을 채택한다. + +## 🛠️ 시스템 아키텍처 (Architecture) + +### 1. 데이터 레이어: `CombatTimeline.ts` +- **StageMode**: `STANDARD`(15분) 및 `BLITZ`(8분) 모드 지원. +- **DifficultyPhase**: 페이즈별 난이도 배율(`diffMult`), 스폰 간격 배율(`spawnIntervalMult`), 최대 개체수(`maxEnemyCount`) 정의. +- **WaveTrigger**: 특정 시간(초)에 발생하는 스크립트 기반 웨이브. 적 유형, 밀도, 스파이크 여부, 화면 흔들림 효과 등을 포함. + +### 2. 제어 레이어: `StageDirectorSystem.ts` (v2.0) +- **Time-Based Tick**: 매 프레임 타임라인을 체크하여 현재 페이즈와 활성화될 트리거를 수집. +- **Intent Dispatching**: 페이즈 전환(`STAGE_TRANSITION`), 스크립트 스폰(`SCRIPTED_SPAWN`), 보상 발행(`PERMANENT_REWARD`) 등의 인텐트를 엔진에 전달. +- **Death Trap Avoidance**: 스파이크(Spike) 구간 진입 30초 전, 플레이어의 레벨업을 돕기 위해 EXP 젬 밀도를 일시적으로 2배 강화(`EXP_DENSITY_BOOST`). + +### 3. 실행 레이어: `SpawnerSystem.ts` (v2.0) +- **Staggered Spawn Pattern**: 대량의 적 스폰 시 프레임 드랍을 방지하기 위해 `MAX_SWARM_BATCH`(6유닛)를 `SWARM_SPAWN_GAP`(3프레임) 간격으로 분산 생성. +- **Hard Cap Protection**: 필드 내 총 적 개체수를 `MAX_ENEMIES_HARD_CAP`(30)으로 제한하여 시스템 부하 방지. + +## 💡 주요 설계 원칙 (Design Principles) + +### 1. 긴장감 곡선 (Tension Curve) +- 무작위 스폰은 플레이어에게 지루함을 줄 수 있으므로, 명확한 'Spike' 구간과 'Recovery' 구간을 배치하여 도파민 분비를 최적화함. + +### 2. 성능 중심 설계 (Performance-First) +- Object Pooling과 Staggered Spawn을 결합하여 모바일/웹 환경에서도 부드러운 전투 환경 제공. + +### 3. UX 연속성 (UX Continuity) +- 보스 처치 후 단순히 게임이 끝나는 것이 아니라, 영구 성장 시스템(`PERMANENT_REWARD`)과 연계하여 다음 플레이로의 동기를 부여함. + +--- +**승인인**: AI 개발부장 코다리 🫡 +**관련 코드**: `StageDirectorSystem.ts`, `SpawnerSystem.ts`, `CombatTimeline.ts` diff --git a/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Equipment_Crafting_and_Synthesis_Full.md b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Equipment_Crafting_and_Synthesis_Full.md new file mode 100644 index 00000000..f80b0b35 --- /dev/null +++ b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Equipment_Crafting_and_Synthesis_Full.md @@ -0,0 +1,43 @@ +# 🛠️ Equipment Crafting & Synthesis System + +**Category:** Economy / Progression +**Status:** Feature Complete +**Related:** [[04_Mechanics_Progression/Meta_Economy_Growth_Loop|Meta-Economy]], [[04_Mechanics_Progression/Campaign_and_Dual_Loop_System|Campaign System]] + +--- + +## 1. System Overview +Skybound의 장비 시스템은 '획득'보다 '연성'과 '진화'에 초점이 맞춰져 있다. 플레이어는 필드에서 얻은 파편을 모아 강력한 기체 모듈을 직접 제작한다. + +## 2. Core Mechanics + +### ✨ Cosmic Cast (기본 연성) +- **대상**: 일반(Common) ~ 희귀(Rare) 등급 모듈. +- **방식**: 동일 등급의 모듈 3개를 소모하여 상위 등급 모듈 1개를 무작위 생성. +- **성공률**: 100%. + +### ☄️ Astral Forge (고급 합성) +- **대상**: 희귀(Rare) ~ 전설(Legendary) 등급 모듈. +- **방식**: 특정 레시피와 특수 자원(Cosmic Dust)을 소모하여 능력치가 강화된 커스텀 모듈을 제작. +- **특이사항**: 낮은 확률로 'Overclocked' 옵션이 붙은 변종 기체 파츠가 탄생할 수 있음. + +--- + +## 3. Modular Management + +### 🔍 Metadata & Tracking +- **isNew System**: 새로 획득한 아이템에 시각적 알림(Red Dot)을 부여하고, 확인 시 제거하는 UX 로직 포함. +- **Category Labels**: (A)ttack, (E)ngine, (W)eapon 등 모호한 약어를 제거하고 직관적인 텍스트 레이블로 전면 개편. + +### 💰 Recycling (분해) +- 불필요한 장비를 분해하여 합성 재료 및 골드 환급. +- **Efficiency**: 고등급 장비일수록 재료 회수율이 기하급수적으로 증가. + +--- + +## 4. Technical Integration +- **Store**: `useGameStore.ts` (Inventory & Crafting Actions) +- **UI**: `HangarOverlay.tsx`, `CraftingTab.tsx` + +--- +**Last Updated:** 2026-04-22 🫡 diff --git a/10_Wiki/Topics/Skybound/04_Mechanics_Progression/InGame_Progression_System.md b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/InGame_Progression_System.md new file mode 100644 index 00000000..32fae0a0 --- /dev/null +++ b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/InGame_Progression_System.md @@ -0,0 +1,38 @@ +# 🔄 In-Game Progression & Evolution (인게임 성장 및 진화 시스템) + +> **카테고리**: [[Skybound]], [[Game Design]], [[Software Architecture]] +> **상태**: 🔵 구현 완료 (Implemented) +> **최종 업데이트**: 2026-04-22 + +--- + +## 📌 개요 (Overview) +Skybound의 인게임 성장은 EXP 수집을 통한 레벨업, 3지선다 스킬 선택, 그리고 특정 조건 만족 시 발생하는 '진화(Evolution)'로 구성된다. 이 시스템은 게임 엔진의 상태 기계(State Machine)와 React UI 간의 단방향 데이터 흐름을 기반으로 동작한다. + +## 🛠️ 핵심 메커니즘 (Core Mechanisms) + +### 1. 레벨업 프로세스 (Level-Up Pipeline) +- **EXP 수집**: 적 처치 시 드롭되는 젬을 수집하여 `exp` 게이지가 차오르면 트리거됨. +- **Pause Gate Pattern**: 레벨업 발생 시 엔진은 즉시 `setPaused(true)`를 호출하여 인게임을 멈추고, `LEVEL_UP` 이벤트를 UI로 발송한다. +- **결정론적 카드 생성**: 카드 풀은 UI가 아닌 `ProgressionSystem` 엔진 로직 내에서 생성되어 전달되므로, 엔진의 상태와 UI가 항상 동기화된다. +- **Resume**: 플레이어가 카드를 선택하면 `applySkillSelection`을 통해 엔진 state가 업데이트되고 다시 `setPaused(false)`로 재개된다. + +### 2. 진화 시스템 (Evolution / EVO) +- **발동 조건**: 주 무기(Primary Skill)가 최대 레벨에 도달하고, 특정 보조 무기(Support Skill)를 보유하고 있을 때 다음 레벨업 시 발생. +- **NOVA_GUARDIAN**: `aoe_nova` (Lv.3 MAX) + `energy_shield` (Lv.1+) 조합의 진화형. +- **EVO 효과**: 단순히 데미지가 증가하는 것이 아니라, 쿨다운 대폭 감소, 반경 확장, 시각적 강화(황금색), 그리고 발동 시 짧은 무적(Shield Burst) 등의 유틸리티 성능이 추가된다. + +### 3. 패시브 동기화 (Passive Sync) +- 패시브 스킬(Fire Rate, Speed, Magnet)은 `syncPassives()`를 통해 매 프레임 플레이어의 `EffectiveStats`에 주입되어 즉각적인 성능 변화를 체감하게 한다. + +## 💡 주요 설계 패턴 (Design Patterns) + +### 1. TDZ (Temporal Dead Zone) 회피 패턴 +- `useGameEngine` 내에서 `ctx` 선언 전 클로저 참조 문제를 해결하기 위해 `let ctx` 선언 후 나중에 할당하는 패턴을 사용하여 초기화 안정성을 확보함. + +### 2. 단방향 데이터 흐름 (Unidirectional Data Flow) +- UI는 엔진의 상태를 직접 수정하지 않고, `applySkill` 콜백을 통해서만 의사결정을 엔진에 주입한다. + +--- +**승인인**: AI 개발부장 코다리 🫡 +**관련 코드**: `ProgressionSystem.ts`, `evolutions.ts`, `GameSceneRenderer.tsx`, `useGameEngine.ts` diff --git a/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Meta_Economy_Growth_Loop.md b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Meta_Economy_Growth_Loop.md new file mode 100644 index 00000000..85c878a3 --- /dev/null +++ b/10_Wiki/Topics/Skybound/04_Mechanics_Progression/Meta_Economy_Growth_Loop.md @@ -0,0 +1,47 @@ +# 💰 Meta-Economy & Growth Loop (메타 경제 및 성장 루프) + +> **카테고리**: [[Skybound]], [[Game Design]], [[Economics & Algorithms]] +> **상태**: 🔵 구현 완료 (Implemented) +> **최종 업데이트**: 2026-04-22 + +--- + +## 📌 개요 (Overview) +Skybound의 장기 리텐션을 책임지는 메타 게임 시스템이다. 격렬한 인게임 세션이 종료된 후, 플레이어는 획득한 Gold와 자원을 사용하여 격납고(Hangar)에서 영구적인 성장을 도모한다. + +## 🛠️ 시스템 구성 (System Components) + +### 1. 영구 업그레이드 (Permanent Upgrade) +- **Hangar Shop**: 인게임에서 획득한 Gold를 소모하여 HP, ATK, SPEED, MAGNET, GOLD_GAIN 등 5종의 스탯을 영구 강화. +- **Stat Injection Engine**: 구매한 업그레이드 레벨은 매 세션 시작 시 `calculateEffectiveStats`를 통해 플레이어 기체에 즉시 주입됨. +- **지수적 비용 곡선**: 후반부 성장을 위해 레벨업 비용이 지수적으로 증가(300~8000G)하도록 설계. + +### 2. 크래프팅 경제 (Crafting Economy) +아이템의 가치 보존과 인플레이션 방지를 위한 복합 제작 시스템이다. +- **Disassemble (분해)**: 불필요한 장비를 분해하여 제작 재료(`Eternal Core`, `Destruction Core`, `TechMats`)를 확보. +- **Cosmic Cast (코스믹 캐스트)**: 고가치의 재료를 대량 소모하여 자연 드롭으로 획득 불가능한 **SS급 장비**를 확정 제작. +- **Astral Forge (아스트랄 포지)**: SS/LEGEND급 장비에 S급 장비를 제물로 바쳐 `forgeLevel`(+1~5)을 강화. +- **TechPart Merge**: 동일 등급의 테크 파츠를 합성하여 스탯 보너스(`plusLevel`)를 강화. + +### 3. 이벤트 패스 (Event Pass) +- **Atomic Trigger**: 보스 처치, 스테이지 클리어 등 인게임 이벤트 발생 시 실시간으로 패스 포인트 적립. +- **Consolation Reward**: 런 실패 시에도 플레이 시간에 비례하여 포인트가 지급되어 "실패해도 진전이 있다"는 심리적 보상 제공. +- **Reward Tiers**: 특정 티어 도달 시 S/SS급 확정 쿠폰 등 고가치 보상 지급. + +## 💡 경제 순환 구조 (Economy Pipeline) +```mermaid +graph TD + A[적 처치 / 런 완료] -->|Gold / 재료 드롭| B(Hangar) + B --> C{선택} + C -->|Gold 소모| D[Permanent Upgrade] + C -->|장비 분해| E[Crafting Materials] + E -->|제작| F[SS_CLASS Equipment] + F -->|포지 강화| G[End-game Stats] + A -->|Pass Points| H[Event Pass Tier Up] + H -->|보상| I[S/SS Coupon] + I -->|사용| F +``` + +--- +**승인인**: AI 개발부장 코다리 🫡 +**관련 코드**: `useGameStore.ts`, `HangarOverlay.tsx`, `combatUtils.ts`, `LootGenerator.ts` diff --git a/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-22_Engine_Logic_Optimization_Report.md b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-22_Engine_Logic_Optimization_Report.md new file mode 100644 index 00000000..7bcb002f --- /dev/null +++ b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-22_Engine_Logic_Optimization_Report.md @@ -0,0 +1,39 @@ +# ⚙️ Engine Logic Optimization & Modernization + +**Category:** Architecture / Physics +**Status:** Completed (v12.1) +**Related:** [[01_Core_Engine/Game-Engine-Loop-and-System-Orchestration|Engine Loop]], [[03_Boss_Systems/Boss_Encounter_and_Timeline_Design|Boss Encounter Design]] + +--- + +## 1. Tactical Logical Modernization +Skybound의 초기 '무작위성' 중심 로직을 '의도된 연출' 중심으로 전환한 핵심 최적화 내역입니다. + +### 🛡️ Reactive Stat Sync (실시간 스탯 동기화) +- **메커니즘**: `useGameStore.subscribe`를 통해 장비 교체나 영구 업그레이드 발생 시, 엔진의 `effectiveStats`를 런타임에 즉시 재계산. +- **효과**: "인벤토리에서 공격력을 올렸는데 왜 바로 강해지지 않는가?"라는 모순을 해결. + +### 🛰️ Priority-Based Spawning (우선순위 기반 스폰) +- **Logic**: 하드캡(`MAX_ENEMIES_HARD_CAP`) 도달 시, `ELITE` 이상의 등급은 일반 적(`NORMAL`)을 **강제 퇴거(Despawn)**시키고 자리를 확보함. +- **효과**: 물량에 밀려 보스가 등장하지 못하는 치명적인 결함 방지. + +--- + +## 2. Combat Physics & HP Revamp + +### 📏 100-Base HP System +- **구형**: 하트 5칸 기반의 단순 생명력 시스템 (회복 및 성장 가시성 낮음). +- **신규**: 100 기준의 체력 시스템으로 통합하여 퍼센트 단위 회복 및 영구 HP 업그레이드 반영이 가능하도록 구조화. + +### 💥 Mutual Knockback (물리 충돌) +- 단순히 겹칠 때 대미지를 입는 방식에서 벗어나, 충돌 벡터(`vx`, `vy`)를 기반으로 서로 밀려나는 물리 작용 구현. +- **타격감**: 기체 간 충돌 시의 '묵직함' 확보. + +--- + +## 3. Engagement Compression +- **Blitz Mode**: 보스 출현 시간을 **60초**로 단축하여 파밍 효율 극대화. +- **Standard Mode**: 보스 조우 타임라인을 **2분**으로 압축하여 검증 및 플레이 텐션 강화. + +--- +**Last Updated:** 2026-04-22 🫡 diff --git a/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-22_Engine_Stability_Audit.md b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-22_Engine_Stability_Audit.md new file mode 100644 index 00000000..8c83a144 --- /dev/null +++ b/10_Wiki/Topics/Skybound/05_Project_Issues/2026-04-22_Engine_Stability_Audit.md @@ -0,0 +1,38 @@ +# 🔍 Skybound 엔진 구조 정밀 감사 보고서 (V12.1) + +> **카테고리**: [[Skybound]], [[Software Reliability]], [[Governance & Reliability]] +> **상태**: ✅ 감사 완료 (Audited) +> **최종 업데이트**: 2026-04-22 + +--- + +## 📌 개요 (Overview) +엔진 안정성에 대한 의구심(코드 잘림, 상태 단절 등)이 제기됨에 따라, 전체 시스템 파이프라인(ECS-like Update, Zustand Sync, Progression Flow)을 전수 조사하여 아키텍처적 건전성을 검증함. + +## 📊 감사 요약 (Audit Summary) + +| 이슈 항목 | 실제 상태 | 심각도 | 판정 결과 | +| :--- | :--- | :--- | :--- | +| **#1 Engine Execution Gap** | **정상** — `ctx` 객체 완전 구성됨 | 🟢 Low | 단순 파일 읽기 초과로 인한 오판 | +| **#2 State-Physics Disconnect** | **정상** — `setExp/setLevel` 액션 완결 | 🟢 Low | 15프레임 Dirty Checking 동기화 확인 | +| **#3 Gimmick Manager 빈 껍데기** | **부분 유효** — 구현 완료, 타입 불일치 1건 | 🟡 Med | `spawnParticle` 인자 불일치 수정 완료 | +| **#4 Collision-to-EXP 미연결** | **정상** — Combat → Progression 연결됨 | 🟢 Low | Gem 수집부터 카드 생성까지 연결 확인 | + +## 🛠️ 정밀 분석 (Detailed Analysis) + +### 1. 엔진 컨텍스트 (`ctx`) 및 루프 구조 +- **Context Integrity**: `useGameEngine.ts` 내에서 플레이어, 상태, 입력, 엔티티 매니저 및 각종 스폰 함수가 `ctx` 객체에 완전히 맵핑되어 각 시스템에 전달되고 있음. +- **Loop Flow**: `StageDirector` → `System Logic` → `Combat/Progression` → `Renderer` 순의 고전적 ECS 파이프라인이 매 프레임(60FPS) 정상 작동함. + +### 2. 상태 관리 브릿지 (Store Sync) +- **Zustand Interface**: 엔진 내부 상태(`state.currentExp` 등)와 외부 UI 스토어(`useGameStore`) 간의 데이터 동기화는 `useGameEngine.ts`에서 15프레임마다 수행되는 브릿지 로직을 통해 효율적으로 관리됨 (불필요한 React Re-render 방지). + +### 3. 실제 수정 사항 (Bug Fix) +- **GravityGimmick.ts**: `ctx.spawnParticle` 호출 시 엔진 시그니처와 불일치하는 5번째 인자(`'DIR'`)가 전달되는 문제를 식별하여 제거함. 이는 시스템 오류를 유발하지는 않으나 타입 정결성을 위해 조치됨. + +## 📋 최종 결론 +Skybound 엔진은 **구조적으로 건강하며, 모든 핵심 파이프라인이 완전히 구현된 상태**임. 향후 확장을 위한 아키텍처적 기반(Intent Protocol, Signal Pattern)이 견고하게 구축되어 있음을 확인함. + +--- +**승인인**: AI 개발부장 코다리 🫡 +**관련 문서**: [[02_Architecture_Principles]], [[Visual_Feedback_Signal_Pattern]] diff --git a/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md b/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md index c50d832a..14564a47 100644 --- a/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md +++ b/10_Wiki/Topics/Skybound/Skybound-Knowledge-Hub.md @@ -9,44 +9,44 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습 - **Master Plan**: [[01_Core_Engine/Skybound-Modular-Game-Architecture|Modular Architecture]] - **Data Flow**: [[01_Core_Engine/Stat-Injection-and-Visual-Renderer-Pipeline|Stat Injection & Renderer Pipeline]] - **Engine Loop**: [[01_Core_Engine/Game-Engine-Loop-and-System-Orchestration|Runtime Pipeline]] +- **Campaign**: [[04_Mechanics_Progression/Campaign_and_Dual_Loop_System|Campaign & Dual-Loop Architecture]] +- **Governance**: [[01_Core_Engine/Git_Synchronization_Protocol|Git & Knowledge Sync Protocol]] +- **Visual Pattern**: [[01_Core_Engine/Visual_Feedback_Signal_Pattern|Visual Feedback Signal Pattern]] - **State Control**: [[01_Core_Engine/State-Machine-and-Phase-Transition-Events|Global State Machine]] - **Recent Reports**: - - [[05_Project_Issues/2026-04-21-Implementation-and-Architecture-Report|V10.5 Implementation Report]] + - [[05_Project_Issues/2026-04-22_Engine_Stability_Audit|V12.1 Engine Stability Audit]] - [[05_Project_Issues/2026-04-21-Project-Report-V11.5-Combat-and-UI-Recovery|V11.5 Project Report (Recovery)]] ## 🏷️ Keyword Cluster: #Battle_Tactics (전투 및 AI) 교전 규칙과 적 기체의 지능적 행동 양식입니다. - **Physics**: [[02_Combat_AI/Combat-System-and-Bullet-Interaction-Pipeline|Bullet Collision Pipeline]] +- **Timeline**: [[03_Boss_Systems/Boss_Encounter_and_Timeline_Design|Boss Encounter & Timeline Design]] - **Rhythm**: [[02_Combat_AI/Staggered-Firing-Logic-and-Phase-Offset|Staggered Firing & Offset]] -- **Boss Intel**: [[03_Boss_Systems/Boss-AI-Contextual-Decision-Engine|Boss Contextual Decision]] -- **Orchestration**: [[03_Boss_Systems/Boss-Orchestration-and-Gimmick-Management|Boss Gimmick Logic]] +- **Implementation**: [[10_Wiki/Technical_Reports/2026-04-22_Boss_Battle_System_Implementation|V13.0 Boss Battle System Implementation]] ## 🏷️ Keyword Cluster: #Dopamine_UX (피드백 및 텐션) 유저가 느끼는 '재미'의 수치화 및 연출 기법입니다. - **Feedback**: [[05_Project_Issues/2026-04-21-UX-Dopamine-Feedback-Upgrade|Dopamine Feedback Engine]] -- **Visuals**: [[01_Core_Engine/Stat-Injection-and-Visual-Renderer-Pipeline|Dynamic Color & Renderer Signal]] -- **Tension**: [[02_Combat_AI/Stage-Director-and-World-Tension-Scaling|World Tension Scaling]] -- **Patterns**: [[03_Boss_Systems/Boss-Orchestration-and-Gimmick-Management|Telegraphing & Gimmicks]] +- **Visuals**: [[01_Core_Engine/Visual_Feedback_Signal_Pattern|Dynamic Color & Renderer Signal]] +- **Tension**: [[04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling|World Tension Scaling]] ## 🏷️ Keyword Cluster: #Growth_Loop (성장 및 자원) 루프물로서의 지속 가능성을 담보하는 시스템입니다. -- **Evolution**: [[04_Mechanics_Progression/Modular-Weapon-Evolution-and-Skill-Trees|Weapon Synergy & Evo-Tree]] -- **Economy**: [[04_Mechanics_Progression/Meta-Progression-and-Economy-Systems|Meta-Progression & Event Pass]] -- **Crafting**: [[04_Mechanics_Progression/Equipment-Crafting-and-Synthesis-Engine|Equipment Crafting & Merge]] +- **Evolution**: [[04_Mechanics_Progression/InGame_Progression_System|In-Game Progression & Evolution]] +- **Economy**: [[04_Mechanics_Progression/Meta_Economy_Growth_Loop|Meta-Economy & Growth Loop]] +- **Crafting**: [[04_Mechanics_Progression/Equipment_Crafting_and_Synthesis_Full|Equipment Crafting & Synthesis]] - **Logistics**: [[04_Mechanics_Progression/Tactical-Air-Drop-and-Supply-Logistics|Tactical Air-Drop & Supply]] -- **Progression**: [[05_Project_Issues/2026-04-21-Implementation-and-Architecture-Report|Meta-Game Economy Section]] ## 🏷️ Keyword Cluster: #Stability_QA (안정성 및 디버깅) 시스템의 무결성을 유지하기 위한 기록입니다. -- **Optimization**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]] -- **Recovery**: [[05_Project_Issues/2026-04-21-Project-Report-V11.5-Combat-and-UI-Recovery|Combat & UI Recovery Log]] -- **Debug Log**: [[05_Project_Issues/Issue-001-Combat-Reference-Error-Troubleshooting|Troubleshooting Case #001]] -- **Standards**: [[02_Combat_AI/Combat-System-and-Bullet-Interaction-Pipeline|Collision Standards]] +- **Audit**: [[05_Project_Issues/2026-04-22_Engine_Stability_Audit|V12.1 Engine Integrity Audit]] +- **Optimization**: [[05_Project_Issues/2026-04-22_Engine_Logic_Optimization_Report|Engine Logic & Physics Optimization]] +- **Performance**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]] --- **Root Policy**: Ps-Reinforce v2.5 (Graph Expansion) -**Last Audit**: 2026-04-21 +**Last Audit**: 2026-04-22 --- **Root Policy**: Ps-Reinforce v2.0 -**Project Status**: Knowledge Ingestion Complete (Batch 11.01-B) +**Project Status**: Knowledge Ingestion Complete (Batch 12.1-A)