docs: update Skybound knowledge hub and stability reports
This commit is contained in:
@@ -1,113 +0,0 @@
|
||||
# 🛡️ 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 이벤트를 활용하여 특정 시간대에 탄환 밀도를 폭발적으로 증가시켜, 플레이어가 '생존'에만 집중하게 만드는 구간을 배치합니다.
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
{}
|
||||
-1
@@ -1 +0,0 @@
|
||||
{}
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
{
|
||||
"file-explorer": true,
|
||||
"global-search": true,
|
||||
"switcher": true,
|
||||
"graph": true,
|
||||
"backlink": true,
|
||||
"canvas": true,
|
||||
"outgoing-link": true,
|
||||
"tag-pane": true,
|
||||
"footnotes": false,
|
||||
"properties": true,
|
||||
"page-preview": true,
|
||||
"daily-notes": true,
|
||||
"templates": true,
|
||||
"note-composer": true,
|
||||
"command-palette": true,
|
||||
"slash-command": false,
|
||||
"editor-status": true,
|
||||
"bookmarks": true,
|
||||
"markdown-importer": false,
|
||||
"zk-prefixer": false,
|
||||
"random-note": false,
|
||||
"outline": true,
|
||||
"word-count": true,
|
||||
"slides": false,
|
||||
"audio-recorder": false,
|
||||
"workspaces": false,
|
||||
"file-recovery": true,
|
||||
"publish": false,
|
||||
"sync": true,
|
||||
"bases": true,
|
||||
"webviewer": false
|
||||
}
|
||||
Vendored
-22
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"collapse-filter": true,
|
||||
"search": "",
|
||||
"showTags": false,
|
||||
"showAttachments": false,
|
||||
"hideUnresolved": false,
|
||||
"showOrphans": true,
|
||||
"collapse-color-groups": true,
|
||||
"colorGroups": [],
|
||||
"collapse-display": true,
|
||||
"showArrow": false,
|
||||
"textFadeMultiplier": 0,
|
||||
"nodeSizeMultiplier": 1,
|
||||
"lineSizeMultiplier": 1,
|
||||
"collapse-forces": true,
|
||||
"centerStrength": 0.518713248970312,
|
||||
"repelStrength": 10,
|
||||
"linkStrength": 1,
|
||||
"linkDistance": 250,
|
||||
"scale": 1,
|
||||
"close": true
|
||||
}
|
||||
Vendored
-186
@@ -1,186 +0,0 @@
|
||||
{
|
||||
"main": {
|
||||
"id": "3c95657998eaa039",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "73164a8ecc5a1d5a",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "9a855efb1f6d17e9",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "graph",
|
||||
"state": {},
|
||||
"icon": "lucide-git-fork",
|
||||
"title": "그래프 뷰"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "vertical"
|
||||
},
|
||||
"left": {
|
||||
"id": "9cce54dc0fde5638",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "fec6c0fbe7c5feb3",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "36812539ece60a55",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "file-explorer",
|
||||
"state": {
|
||||
"sortOrder": "alphabetical",
|
||||
"autoReveal": false
|
||||
},
|
||||
"icon": "lucide-folder-closed",
|
||||
"title": "파일 탐색기"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "971a2cfe9eb674b1",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical"
|
||||
},
|
||||
"icon": "lucide-search",
|
||||
"title": "검색"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "fbc0a933a1706f06",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "bookmarks",
|
||||
"state": {},
|
||||
"icon": "lucide-bookmark",
|
||||
"title": "북마크"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300
|
||||
},
|
||||
"right": {
|
||||
"id": "7e73822cfe264a3a",
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "c83e42d2020be474",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "34c26b158c0020ec",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "backlink",
|
||||
"state": {
|
||||
"collapseAll": false,
|
||||
"extraContext": false,
|
||||
"sortOrder": "alphabetical",
|
||||
"showSearch": false,
|
||||
"searchQuery": "",
|
||||
"backlinkCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-coming-in",
|
||||
"title": "백링크"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "4294fd4f01010856",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outgoing-link",
|
||||
"state": {
|
||||
"linksCollapsed": false,
|
||||
"unlinkedCollapsed": true
|
||||
},
|
||||
"icon": "links-going-out",
|
||||
"title": "나가는 링크"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "287a52ec231392f1",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "tag",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"useHierarchy": true,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-tags",
|
||||
"title": "태그"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "6da8e5393086f3aa",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "all-properties",
|
||||
"state": {
|
||||
"sortOrder": "frequency",
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-archive",
|
||||
"title": "모든 속성"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "f5ca63138f5629e8",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "outline",
|
||||
"state": {
|
||||
"followCursor": false,
|
||||
"showSearch": false,
|
||||
"searchQuery": ""
|
||||
},
|
||||
"icon": "lucide-list",
|
||||
"title": "개요"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 300,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
"switcher:빠른 전환기 열기": false,
|
||||
"graph:그래프 뷰 열기": false,
|
||||
"canvas:새 캔버스 만들기": false,
|
||||
"daily-notes:오늘의 일일 노트 열기": false,
|
||||
"templates:템플릿 삽입": false,
|
||||
"command-palette:명령어 팔레트 열기": false,
|
||||
"bases:새 베이스 생성하기": false
|
||||
}
|
||||
},
|
||||
"active": "9a855efb1f6d17e9",
|
||||
"lastOpenFiles": [
|
||||
"2026-04-20.md",
|
||||
"무제.canvas",
|
||||
"무제.base",
|
||||
"환영합니다!.md"
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
views:
|
||||
- type: table
|
||||
name: 표
|
||||
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1,5 +0,0 @@
|
||||
새로운 *보관함*입니다.
|
||||
|
||||
내용을 한번 적어보세요, [[create a link]], 혹은 [임포터](https://help.obsidian.md/Plugins/Importer)를 사용해봐도 좋습니다!
|
||||
|
||||
준비가 됐다면 이 노트를 삭제하고 맞춤형 보관함을 만들어보세요.
|
||||
@@ -0,0 +1,28 @@
|
||||
# 🛠️ Combat System: ReferenceError Resolution Guide
|
||||
|
||||
## 1. Context (배경)
|
||||
전투 시스템(`CombatSystem.ts`) 리팩토링 중, 런타임에서 엔진이 중단되는 치명적인 참조 오류가 발생하였습니다. 본 문서는 해당 오류의 원인과 해결 방법, 그리고 향후 유사 사례 방지를 위한 가이드라인을 기록합니다.
|
||||
|
||||
## 2. Issue Breakdown (오류 분석)
|
||||
- **Error Type**: `ReferenceError: damage is not defined`
|
||||
- **Location**: `CombatSystem.ts` (Collision Detection Loop)
|
||||
- **Root Cause**: 블록 스코프(`if/else`) 내부에서 `damage` 변수를 사용하기 전에 `let` 혹은 `const`를 통한 명시적 선언이 누락됨. 자바스크립트의 비엄격 모드 혹은 리팩토링 과정에서의 선언부 유실이 원인이었습니다.
|
||||
|
||||
## 3. Resolution (해결 방법)
|
||||
탄환의 공격력을 계산하기 전, 명시적으로 스코프 내에 변수를 선언하도록 수정하였습니다.
|
||||
```typescript
|
||||
// Fix logic
|
||||
let damage = bullet.dmg; // 명시적 선언 및 초기화
|
||||
if (isCritical) {
|
||||
damage *= criticalMultiplier;
|
||||
}
|
||||
```
|
||||
|
||||
## 4. Prevention Policy (재발 방지 대책)
|
||||
- **Strict Declaration**: 모든 변수는 반드시 `const` 또는 `let`을 사용하여 선언하며, 선언되지 않은 변수의 암묵적 전역화(Implicit Global)를 철저히 금지한다.
|
||||
- **Linter Integration**: `no-undef` 규칙을 강화하여 빌드 타임에서 미선언 변수 참조를 사전에 차단한다.
|
||||
- **Unit Test**: 충돌 판정 로직에 대한 단위 테스트를 수행하여 데미지 계산 루프의 무결성을 검증한다.
|
||||
|
||||
---
|
||||
**Related Cluster**: [[01_Core_Engine/Game-Engine-Loop-and-System-Orchestration|Runtime Pipeline]]
|
||||
**Last Updated**: 2026-04-23
|
||||
@@ -0,0 +1,37 @@
|
||||
# 🚀 Skybound Protocol: Implementation Report (V10.5)
|
||||
|
||||
## 1. Strategic Objective (전략 목표)
|
||||
단순 슈팅 게임의 한계를 넘어, **'고유의 성장 곡선'**과 **'도파민 피드백 리듬'**을 갖춘 하이브리드-캐주얼 로그라이크로의 아키텍처 재정립.
|
||||
|
||||
## 2. Core System Blueprints (핵심 시스템 설계도)
|
||||
|
||||
### 📊 Master Timeline (`StageDirectorSystem`)
|
||||
긴장감이 고조되는 4단계 페이즈 시스템 구축:
|
||||
1. **INTRO**: 기본 조작 적응 및 자원 파밍.
|
||||
2. **ELITE_PRESS**: 정예 기체 중심의 압박 시퀀스.
|
||||
3. **SWARM**: 대규모 적 물량 습격 (Survivor-like UX).
|
||||
4. **FINAL_BOSS**: 거대 기체와의 최종 결전.
|
||||
|
||||
### 🧬 Data-Driven EVO Engine (`ProgressionSystem`)
|
||||
로직과 데이터를 분리하여 확장성을 극대화한 진화 시스템:
|
||||
- **Registry Pattern**: 모든 스킬 메타데이터의 중앙 집중 관리.
|
||||
- **Graph-based Evolution**: [주무기 + 보조스킬] 조합을 통한 상위 무기 연성 로직.
|
||||
|
||||
### 💥 High-Dopamine Feedback Engine
|
||||
유저의 감각을 자극하는 피드백 루프 구현:
|
||||
- **Red Critical**: 시각적 전능감 부여.
|
||||
- **Screen Shake**: 물리적 타격감 전달.
|
||||
- **Glitch Effect**: 진화 성공 시의 시스템 몰입감 극대화.
|
||||
|
||||
### 💎 Meta-Game Economy (Hangar & Crafting)
|
||||
지속 가능한 리텐션을 위한 외부 루프 구축:
|
||||
- **7-Tier Grade**: NORMAL ~ ETERNAL 위계 확립.
|
||||
- **Triple-Merge**: 동일 등급 3개 합성을 통한 상위 등급 연성 엔진.
|
||||
|
||||
## 3. Strategic Roadmap (로드맵)
|
||||
- **Phase 3**: 드론 병합(Merge) 기믹 및 다중 입력 엔진 구현.
|
||||
- **SS-Grade Expansion**: 메타 재화와 연동되는 특수 제작 트리 설계.
|
||||
|
||||
---
|
||||
**Related Cluster**: [[Skybound-Knowledge-Hub|Strategic Knowledge Mesh]]
|
||||
**Author**: PD Kodari 😎🐟
|
||||
@@ -0,0 +1,66 @@
|
||||
# 🛡️ Skybound: Boss Battle System & Damage Architecture
|
||||
|
||||
## 1. Design Philosophy (설계 철학)
|
||||
Skybound의 보스전은 **'예측 가능한 위협'**과 **'극복하기 힘든 압박'** 사이의 균형을 지향합니다. 유저에게 단순한 슈팅을 넘어, 패턴을 파악하고 최적의 회피 경로를 찾는 '전술적 재미'를 제공하는 것이 핵심입니다.
|
||||
|
||||
## 2. Core Damage & Shield System (데미지 체계)
|
||||
|
||||
### 📊 기체별 피탄 감쇄율 (Damage Multiplier)
|
||||
플레이어 기체의 장갑(Shield) 특성에 따른 데미지 적용 계수입니다.
|
||||
| 플레이어 기체명 | 탄환 피탄 시 (Projectile) | 충돌 시 (Collision/Crash) |
|
||||
| :--- | :---: | :---: |
|
||||
| **아즈마 (Azuma)** | 17% 감소 | 34% 감소 (2x) |
|
||||
| **스피릿 오브 드래곤** | 13% 감소 | 26% 감소 (2x) |
|
||||
| **물랑 루즈 (Mulang Rouge)** | 20% 감소 | 40% 감소 (2x) |
|
||||
|
||||
> [!IMPORTANT]
|
||||
> 모든 **충돌(Collision)** 데미지는 탄환 피탄 데미지의 정확히 **2배**를 적용하는 것을 원칙으로 합니다.
|
||||
|
||||
## 3. Architecture: Boss Implementation Schema
|
||||
|
||||
새로운 보스 추가 시 `BossDefinition` 인터페이스를 반드시 준수해야 합니다.
|
||||
|
||||
### 🧬 Boss Definition Interface
|
||||
```typescript
|
||||
interface BossDefinition {
|
||||
id: string; // 예: 'STAGE_01_PLATON'
|
||||
name: string; // 보스 명칭
|
||||
totalPhases: number; // 총 형태 수
|
||||
|
||||
phases: Array<{
|
||||
phaseIndex: number; // 1, 2, 3...
|
||||
description: string; // 페이즈 특징
|
||||
attackPatterns: Pattern[];
|
||||
transformationTrigger: string | null;
|
||||
}>;
|
||||
|
||||
warningSequence: {
|
||||
audioSfx: string; // 경고음 ID
|
||||
cameraEffect: 'ZOOM_IN' | 'SHAKE';
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## 4. Stage-specific Boss Registry (스테이지별 보스 명세)
|
||||
|
||||
| 스테이지 | 보스명 | 페이즈 | 주요 패턴 요약 |
|
||||
| :--- | :--- | :---: | :--- |
|
||||
| **Stage 1** | 플라톤 (Platon) | 2 | 기생기 소환, 본체 정밀 사격 |
|
||||
| **Stage 2** | 그레이트 혼 | 2 | 드릴/돌덩이 투척, 전방 돌진 |
|
||||
| **Stage 3** | 크라켄 (Kraken) | 3 | 함선 변형, 고속 방사, 잠수 미사일 |
|
||||
| **Stage 4** | 스파이스 버드 | 2 | 광역 조준탄, 본체 분리(호버 탱크) |
|
||||
| **Stage 5** | 블로우 오브 호른 | 3 | 록온 레이저, 중앙 코어 거대 레이저 |
|
||||
| **Stage 6** | 쉬프트 메시아 | 3 | 열차 와인더 탄줄, CIWS 개틀링, 합동 공격 |
|
||||
| **Stage 7** | 콜로니 엔젤 | 3 | 다리 파괴 시퀀스, 초고속 이중 회전 탄줄 |
|
||||
| **Stage 8** | 최종 보스 | 3 | 험프티 덤프티 / 디바인 램파트 (무기 Lv.10 조건) |
|
||||
|
||||
## 5. Difficulty Scaling Mechanism (난이도 조절)
|
||||
|
||||
### 📈 제어 요소
|
||||
- **Bullet Density**: `Pattern.complexity` 값을 통해 회피 공간(Safe Zone) 조절.
|
||||
- **Pattern Layering**: 페이즈가 진행됨에 따라 [단일 방향] -> [다방향/물리방해] -> [환경제약]으로 고도화.
|
||||
- **Attack Frequency**: `Cooldown` 단축을 통한 압박 타이밍 제어.
|
||||
|
||||
---
|
||||
**Related Cluster**: [[03_Boss_Systems/Boss_Encounter_and_Timeline_Design|Boss Encounter & Timeline Design]]
|
||||
**Last Audit**: 2026-04-23
|
||||
@@ -0,0 +1,33 @@
|
||||
# 🕵️ Skybound: Boss Combat Stability Fix Log (2026-04-23)
|
||||
|
||||
## 1. Issue Overview (이슈 개요)
|
||||
- **Problem**: 보스 기체의 체력이 0이 되었음에도 불구하고 파괴되지 않고 게임이 정지되거나, `STAGE_CLEAR` 페이즈로 전환되지 않는 결함 발생.
|
||||
- **Occurrence**: 특정 페이즈(BOSS_INTRO) 또는 특정 무기 조합에서 보스 처치 시 간헐적 발생.
|
||||
|
||||
## 2. Root Cause Analysis (원인 분석)
|
||||
|
||||
### 🔍 Logical Flaws
|
||||
1. **Scope Restriction**: 기존 사망 판정 로직이 `BOSS` 페이즈 내부에만 존재하여, `BOSS_INTRO` 연출 도중 보스가 파괴될 경우 이를 감지하지 못함.
|
||||
2. **Entity Lifecycle**: 보스 엔티티 파괴 후에도 `state.boss` 참조가 남아있어, 렌더러와 AI 시스템이 유령 객체를 계속 업데이트하려고 시도함.
|
||||
3. **HUD Desync**: 보스의 실제 HP와 HUD의 게이지 바 업데이트 주기가 일치하지 않아 유저에게 혼동을 줌.
|
||||
|
||||
## 3. Implemented Fixes (수정 사항)
|
||||
|
||||
### 🛠️ Core Engine Modification
|
||||
- **Unified Death Check**: `StageDirectorSystem.checkBossDefeat()` 메서드로 로직을 통합하여 모든 보스 관련 페이즈에서 사망을 실시간 감지하도록 수정.
|
||||
- **Explicit Nullification**: 보스 파괴 즉시 `state.boss = null`을 수행하여 시스템의 불필요한 참조를 원천 차단.
|
||||
- **Feedback Reinforcement**:
|
||||
- 보스 사망 시 8개의 순차적 폭발(`Explosion`) 생성.
|
||||
- 화면 흔들림(`SHAKE`) 강도 증가 및 지속 시간 조정.
|
||||
|
||||
### 📊 HUD Synchronization
|
||||
- `useGameEngine.ts` 루프 내에 HP 퍼센트(`hp / maxHp`) 동기화 로직 추가.
|
||||
|
||||
## 4. Verification (검증 결과)
|
||||
- **Test Case 1**: 보스 등장 애니메이션 도중 처치 시 정상적으로 스테이지 클리어 전환 확인. (Pass)
|
||||
- **Test Case 2**: 보스 사망 후 렌더러의 Null 참조 에러 발생 여부 확인. (Pass)
|
||||
- **Test Case 3**: HUD HP 바 실시간 동기화 확인. (Pass)
|
||||
|
||||
---
|
||||
**Related Cluster**: [[05_Project_Issues/2026-04-21_Stability_and_Optimization_Report|Stability & Optimization]]
|
||||
**Status**: Resolved & Wikified 🫡
|
||||
@@ -0,0 +1,35 @@
|
||||
# 🎮 UX & Gameplay Protocol: V10.0 Upgrade
|
||||
|
||||
## 1. Design Philosophy (설계 철학)
|
||||
기능적 프로토타입을 넘어, 고도의 도파민 자극과 세련된 게임플레이 경험을 제공하는 **'Skybound Protocol V10.0'**의 명세입니다.
|
||||
|
||||
## 2. Key Implementations (주요 구현 사항)
|
||||
|
||||
### 🛩️ Airframe Streamlining (FALCON Focus)
|
||||
- **Policy**: 'FALCON' 기체를 단일 영웅 기체로 설정하여 밸런싱 집중도 향상.
|
||||
- **Impact**: 유저에게 일관된 조작감과 성장 경험을 제공.
|
||||
|
||||
### 🎯 Jackpot Critical System (확률 기반 크리티컬)
|
||||
- **Mechanism**: 15% 기본 확률, 1.5x ~ 5.0x의 데미지 편차 적용.
|
||||
- **Dynamic**: `Math.pow(Math.random(), 3)`를 활용하여 초고데미지(Jackpot)의 희소성을 확보, 보상 극대화.
|
||||
|
||||
### 🔢 Floating Text Feedback Engine
|
||||
- **Visual Distinction**:
|
||||
- 일반 타격: 소형 화이트 텍스트.
|
||||
- 크리티컬: 대형 골드/오렌지 글로우 효과 및 "CRITICAL!" 텍스트 강조.
|
||||
- **Motion**: 상단 부유 및 알파 채널 페이드아웃을 통한 가독성 확보.
|
||||
|
||||
### 📈 Temporal Difficulty Scaling (시간 가변 난이도)
|
||||
- **Algorithm**: `difficultyMult = 1.0 + (frame / 3600) * 0.1`.
|
||||
- **Scaling Impact**:
|
||||
- 적 스폰 쿨다운 단축.
|
||||
- 적 HP 및 탄환 속도 비례 상승.
|
||||
- 장애물(Asteroid) 출현 빈도 증가.
|
||||
|
||||
## 3. Strategic Debt Resolved (해결된 기술 부채)
|
||||
- `WorldModel`과 `spawnText` 브리지 동기화.
|
||||
- `createDefaultState` 내 `difficultyMult` 초기화를 통한 SSOT(Single Source of Truth) 확보.
|
||||
|
||||
---
|
||||
**Related Cluster**: [[04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling|World Tension Scaling]]
|
||||
**Lead**: PD Kodari 🫡🐟
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
# ⚡ Skybound: Stability & Optimization Report (2026-04-21)
|
||||
|
||||
## 1. Executive Summary (요약)
|
||||
대규모 교전 및 아이템 사용 시 발생하는 성능 저하와 런타임 크래시를 해결하기 위한 엔진 안정성 보강 작업을 수행하였습니다.
|
||||
|
||||
## 2. Key Optimization Areas (주요 최적화 영역)
|
||||
|
||||
### 💥 Particle Effect Management (이펙트 제어)
|
||||
- **Problem**: 폭탄 사용 시 수천 개의 파편(Shard) 객체가 생성되어 FPS 급락.
|
||||
- **Solution**:
|
||||
- **Hard Cap**: 최대 파티클 개수를 500개로 제한.
|
||||
- **TTL (Time To Live) Acceleration**: 파티클 소멸 속도를 6배 상향(0.1 -> 0.6)하여 자원 회수 주기를 단축.
|
||||
|
||||
### 🛡️ Runtime Robustness (런타임 강건성)
|
||||
- **Problem**: 존재하지 않는 엔티티 배열 접근으로 인한 `TypeError`.
|
||||
- **Solution**:
|
||||
- `GameRenderer` 내 모든 순회 로직에 옵셔널 체이닝(`?.`) 및 기본값(`|| []`) 처리 의무화.
|
||||
- 인터페이스(`types.ts`)와 실제 상태 객체 간의 동기화 정밀 검수.
|
||||
|
||||
### 🔄 Entity Pool Intelligence (엔티티 풀 고도화)
|
||||
- **Problem**: ID(String)와 객체 참조 간의 혼선으로 인한 해제 실패.
|
||||
- **Solution**:
|
||||
- `EntityManager`에 `releaseById` 메서드 추가.
|
||||
- 객체 여부와 관계없이 안전하게 리소스를 반납할 수 있는 추상화 레이어 구축.
|
||||
|
||||
## 3. Post-Mortem (사후 분석)
|
||||
- **Silo Effect**: 엔티티 매니저 도입과 같은 대규모 인프라 변경 시, 관련 인터페이스를 동시에 업데이트하지 않아 발생한 '느슨한 계약(Loose Contract)' 문제가 근본 원인이었습니다.
|
||||
- **Guideline**: 시스템 간 데이터 교환 방식(ID 기반 vs 참조 기반)을 프로젝트 표준으로 확정하고 준수해야 합니다.
|
||||
|
||||
---
|
||||
**Related Cluster**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]]
|
||||
**Status**: Verified by QA 🫡
|
||||
@@ -9,6 +9,8 @@ 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]]
|
||||
- **Implementation**: [[01_Core_Engine/Skybound_Implementation_Report_V10_5|V10.5 Implementation Report]]
|
||||
- **Fix Log**: [[01_Core_Engine/Combat_System_Reference_Error_Resolution|Combat System ReferenceError Resolution]]
|
||||
- **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]]
|
||||
@@ -20,6 +22,7 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습
|
||||
## 🏷️ Keyword Cluster: #Battle_Tactics (전투 및 AI)
|
||||
교전 규칙과 적 기체의 지능적 행동 양식입니다.
|
||||
- **Physics**: [[02_Combat_AI/Combat-System-and-Bullet-Interaction-Pipeline|Bullet Collision Pipeline]]
|
||||
- **Design**: [[03_Boss_Systems/Boss_Battle_Design_System|Boss Battle Design System]]
|
||||
- **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]]
|
||||
- **Implementation**: [[10_Wiki/Technical_Reports/2026-04-22_Boss_Battle_System_Implementation|V13.0 Boss Battle System Implementation]]
|
||||
@@ -27,6 +30,7 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습
|
||||
## 🏷️ Keyword Cluster: #Dopamine_UX (피드백 및 텐션)
|
||||
유저가 느끼는 '재미'의 수치화 및 연출 기법입니다.
|
||||
- **Feedback**: [[05_Project_Issues/2026-04-21-UX-Dopamine-Feedback-Upgrade|Dopamine Feedback Engine]]
|
||||
- **Upgrade**: [[04_Mechanics_Progression/UX_Gameplay_Protocol_V10_0|V10.0 UX & Gameplay Upgrade]]
|
||||
- **Visuals**: [[01_Core_Engine/Visual_Feedback_Signal_Pattern|Dynamic Color & Renderer Signal]]
|
||||
- **Tension**: [[04_Mechanics_Progression/Combat_Timeline_Difficulty_Scaling|World Tension Scaling]]
|
||||
|
||||
@@ -41,6 +45,8 @@ Skybound 프로젝트의 모든 시스템은 유기적으로 연결되어 있습
|
||||
시스템의 무결성을 유지하기 위한 기록입니다.
|
||||
- **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]]
|
||||
- **Boss Fix**: [[03_Boss_Systems/Boss_Combat_Stability_Fix_Log|Boss Combat Stability Fix]]
|
||||
- **Report**: [[05_Project_Issues/2026-04-21_Stability_and_Optimization_Report|2026-04-21 Stability & Optimization]]
|
||||
- **Performance**: [[05_Project_Issues/2026-04-21-Engine-Stability-and-Optimization|Performance Tuning]]
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user