feat: structure knowledge base with P-Reinforce categories and include Skybound wiki Batch 11.01-B

This commit is contained in:
2026-04-21 10:25:01 +09:00
parent eb6049e195
commit e17155b555
37 changed files with 370 additions and 2 deletions
@@ -0,0 +1,35 @@
# Combat System and Bullet Interaction Pipeline
Skybound의 전투 시스템은 고속 탄막 처리와 정밀한 충돌 판정을 위한 최적화된 파이프라인을 제공합니다. `CombatSystem`은 모든 동적 객체(플레이어, 적, 투사체)의 상호작용을 총괄하는 허브 역할을 수행합니다.
## 1. Interaction Architecture
전투 시스템은 **Actor-Proxy 패선**을 사용하여 물리 로직과 렌더링 데이터를 분리합니다.
- **Bullet Pooling**: 투사체의 빈번한 생성을 방지하기 위해 객체 풀링 기법을 적용, 런타임 가비지 컬렉션 부하를 최소화합니다.
- **Role-Based AI**: 적 기체는 `Interceptor`, `Defender`, `Sniper` 등 지정된 역할에 따라 서로 다른 이동 및 공격 패턴을 가집니다.
## 2. Core Logic: Collision Detection
충돌 판정은 성능과 정확도의 균형을 위해 계층적 검사를 수행합니다.
### 2.1 Spatial Partitioning (Broad-phase)
화면을 그리드 단위로 나누어 인접한 객체들끼리만 충돌 검사를 수행하도록 최적화되어 있습니다. (Bounding Box 기반 예비 검사)
### 2.2 Precise Detection (Narrow-phase)
실제 충돌은 객체의 형태에 따라 다음 공식을 따릅니다.
- **Circle-to-Circle**: 플레이어 피격 판정 및 원형 탄막에 사용됩니다. 두 중심점 사이의 거리가 반지름 합보다 작을 때 충돌로 판정합니다.
- **Homing Logic**: 유도 미사일(`Vortex Missile`)은 `targetPos`와 현재 `velocity` 사이의 벡터 연산을 통해 매 프레임 조향각(`angularVelocity`)을 보정합니다.
## 3. Bullet Mechanics
### 3.1 Velocity and Drag
모든 투사체는 초기 속도(`initialVelocity`)와 항력(`drag`) 값을 가질 수 있으며, 이는 환경(중력, 대기 저항)에 따라 동적으로 변화합니다.
### 3.2 Bullet Eraser Logic
특정 'Shield' 스킬이나 보스 패턴 종료 시, 화면상의 특정 탄막을 'Delete'가 아닌 'Fade out & Return to Pool' 처리하여 시각적 연속성을 보장합니다.
## 4. Key Implementation References
- `src/features/game/systems/CombatSystem.ts`: 메인 루프 및 충돌 파이프라인.
- `src/features/game/entities/BulletPool.ts`: 탄막 풀링 및 재사용 로직.
---
**Status**: Managed by Skybound Protocol
**Context**: Combat Engineering / Physics Pipeline
@@ -0,0 +1,33 @@
---
id: Stage-Director-and-World-Tension-Scaling
category: Game-Architecture
tags: [Game-Systems, Orchestration, Dynamic-Complexity, Skybound]
confidence_score: 0.96
last_reinforced: 2026-04-21
---
# Stage Director and World Tension Scaling
## 1. Overview
`StageDirectorSystem`은 게임의 전체적인 흐름(Intro -> Wave -> Boss)을 관리하는 오케스트레이터이다. 단순히 페이즈를 전환하는 것을 넘어, 게임 월드의 **'Tension Level'**을 계산하여 전역적인 난이도와 시각 효과의 가중치를 결정한다.
## 2. Core Mechanism
### 2.1. World Tension Calculation
월드 텐션은 현재 전장에 존재하는 적군의 수와 보스의 활성화 여부에 따라 동적으로 변한다.
- `targetTension = Math.min(1.0, enemyCount * 0.1 + (isBossActive ? 0.5 : 0))`
- **Smooth Lerp**: 텐션 값의 급격한 변화를 막기 위해 보간법(`Lerp`)을 적용하여 자연스러운 고조/이완을 구현한다.
### 2.2. Phase Transitions
- **Atomic Capture**: 점수(`scoreBuffer`)와 처치 수(`killBuffer`)를 동기화할 때 상태를 원자적(Atomic)으로 캡처하고 리셋하여 데이터 유실을 방지한다.
- **Event-Driven**: 페이즈 전환 시 `BOSS_ACTION`이나 `SFX` 이벤트를 발행하여 사운드 엔진 및 UI와 루즈하게 결합된 통신을 수행한다.
## 3. RL Update & Strategic Insight
### 🎯 Policy Evolution
- **과거 정책**: 고정된 시간(Timetable) 기반의 웨이브 생성. 플레이어의 진행 속도와 무관하게 적이 생성되어 루즈하거나 너무 바쁜 상황 발생.
- **현대적 정책 (Ps-Reinforce)**: 텐션 기반의 '반응형 무대 감독(Reactive Director)' 정책. 플레이어가 적을 빨리 처리하면 텐션이 낮아지고, 이를 감독이 감지하여 다음 이벤트를 가속하거나 보강함.
- **Strategic Insight**: 텐션 지표는 메인 테마 음악의 BPM이나 레이어링 볼륨(Dynamic Audio Layering)과 연동되어 가청적 몰입도를 극대화하는 핵심 파라미터로 기능한다.
## 4. Related
- [[Boss-AI-Contextual-Decision-Engine]]
- [[State-Machine-and-Phase-Transition-Events]]
- [[Skybound-Modular-Game-Architecture]]
@@ -0,0 +1,33 @@
---
id: Staggered-Firing-Logic-and-Phase-Offset
category: Game-Mechanics
tags: [Game-Design, Combat-Systems, Phase-Offset, Skybound]
confidence_score: 0.98
last_reinforced: 2026-04-21
---
# Staggered Firing Logic and Phase Offset
## 1. Overview
다수의 발사체나 포탑을 보유한 엔티티(주로 보스)가 공격을 수행할 때, 모든 발사체가 일제히 사격하여 발생하는 리듬의 불균형(Attack Silence)을 해결하기 위한 **위상 분산(Initial Phase Staggering)** 기술이다.
## 2. Core Logic
### 2.1. The Phase Offset Formula
포탑이 생성되거나 초기화될 때, 각 인덱스(`i`)에 따라 의도적인 지연 시간을 부여한다.
- `part[i].lastShot = currentFrame + (i / totalParts) * shootCooldown`
- 여기에 **Random Jitter**를 추가하여 기계적인 패턴을 완화하고 유기적인 리듬감을 확보한다.
### 2.2. Application in Skybound
- **Stage 4 Boss**: 4개의 포탑이 각각 0%, 25%, 50%, 75%의 쿨타임 오프셋을 가지고 사격하여, 플레이어는 끊임없이 날아오는 탄막을 지속적으로 회피해야 한다.
- **Visual Fidelity**: 보스가 마치 살아있는 생명체처럼 부위별로 교차 사격하는 시각적 효과를 제공한다.
## 3. RL Update & Strategic Insight
### 🎯 Policy Evolution
- **과거 정책**: '버스트 후 휴식' 스타일의 공격. 이는 플레이어에게 명확한 딜링 타임을 주지만, 긴장을 풀게 만드는 단점이 있었음.
- **현대적 정책 (Ps-Reinforce)**: '지속적 위협(Persistent Threat)' 정책으로 전환. 탄막의 총량은 유지하되 시간축으로 밀도를 분산하여 난이도 조절 및 프레임 드랍 방지를 동시에 달성.
- **Strategic Insight**: 위상 분산은 네트워크 멀티플레이어 환경(Lockstep)에서 패킷 폭주를 방지하는 데이터 분산 전략으로도 응용될 수 있다.
## 4. Related
- [[Boss-AI-Contextual-Decision-Engine]]
- [[Stage-Director-and-World-Tension-Scaling]]
- [[Combat-System-Core]]