2.5 KiB
2.5 KiB
Stat Injection and Visual Renderer Pipeline
Skybound 엔진은 데이터(Stats)와 로직(Systems), 그리고 표현(Renderer)을 분리하여 유연한 확장성을 제공하는 Signal-Renderer Pattern과 Stat Injection Engine을 핵심 아키텍처로 사용합니다.
1. Stat Injection Engine (V12.0)
게임 엔진이 시작될 때나 장비를 교체할 때, 다양한 소스(기본치, 장비, 영구 업그레이드)의 데이터를 하나로 통합하여 EffectiveStats 객체를 생성하는 파이프라인입니다.
- Data Sources:
BaseStats: 기체별 고유 수치.EquippedItems: 인벤토리에서 장착한 모듈의 효과.PermanentUpgrades: 격납고에서 구매한 영구 강화 수치.
- Processing:
calculateEffectiveStats함수가 이 모든 소스를 결합하여 런타임에 즉시 사용 가능한 최종 스탯을 산출합니다.
2. Signal-Renderer Pattern
시스템 로직이 직접 렌더링에 관여하지 않고, 시각적 상태(Signal)를 정의한 객체를 렌더러에 전달하여 화면을 구성하는 방식입니다.
- Example: Nova Burst Rendering:
ModularWeaponSystem에서 충격파 발생 시novaBurstRingEffect객체를 생성합니다. 이 객체에는isGuardian(EVO 여부),radius,opacity등의 데이터가 담깁니다.GameRenderer는 이 객체들을 순회하며isGuardian이true이면 황금색 팔레트를,false이면 기존 청록색 팔레트를 선택하여 렌더링합니다.
- Benefits: 로직 수정 없이 렌더러의 색상이나 이펙트 레이어만 교체하여 다양한 비주얼 변리에 대응할 수 있습니다.
3. Visual Feedback Enhancements
- Dynamic Color Branching: 스킬의 상태(Normal vs EVO)에 따라 렌더링 파이프라인에서 색상 팔레트와 파티클 밀도를 동적으로 조절합니다.
- Mid-Layer Rendering: 단순한 원형 이펙트를 넘어, 3중 링 및 스파이크 레이어를 추가하여 시각적 타격감과 위용을 강화합니다.
4. Implementation Details
src/features/game/utils/combatUtils.ts: Stat Injection의 핵심 로직 구현.src/features/game/systems/GameRenderer.ts: Signal 객체를 해석하여 Canvas에 드로잉하는 로직 관리.src/features/game/systems/ModularWeaponSystem.ts: 렌더링용 Signal 객체 생성 및 상태 제어.
Status: Managed by Skybound Protocol Context: Architecture / Graphics Engine / Stat Pipeline