# Game Engine Loop and System Orchestration Skybound의 런타임 엔진은 효율적인 업데이트와 렌더링을 위해 엄격하게 제어된 파이프라인을 따릅니다. `useGameEngine`은 모든 시스템의 업데이트 주기를 총괄하며, 프레임 간의 오차를 최소화합니다. ## 1. Engine Pipeline Hierarchy 엔진 루프는 매 프레임마다 다음과 같은 순서로 시스템을 실행합니다. 1. **Input Polling**: 사용자의 키보드/게임패드 입력을 스냅샷으로 캡처합니다. 2. **State Sync**: 서버 또는 전역 상태 관리자로부터 데이터를 동기화합니다. 3. **Logic Update (System Pipeline)**: - `StageDirectorSystem`: 현재 웨이브 및 텐션 상태 업데이트. - `CombatSystem`: 물리 연산, 충돌 판정, AI 이동 로직 실행. - `BossSystem`: 보스 패턴 및 기믹 업데이트. - `ModularWeaponSystem`: 발사 주기 및 레벨업 체크. 4. **Post-Process**: 사망 판정, 아이템 획득, UI 갱신 등 논리적 정리를 수행합니다. 5. **Render Dispatch**: 최종 계산된 위치 값을 그래픽 시스템에 전달합니다. ## 2. Dynamic Timestepping (Delta Time) 성능에 관계없이 일관된 게임 플레이 속도를 보장하기 위해 `deltaTime` 기반의 업데이트를 수행합니다. - **Interpolation**: 렌더링 시 프레임 사이의 위치를 보간하여 시각적 부드러움을 극대화합니다. - **Panic Mode**: 프레임 드롭이 심각할 경우, 물리 연산 횟수를 조절하여 게임의 '슬로우 모션' 현상을 방지합니다. ## 3. Integration with React Lifecycle 엔진은 `requestAnimationFrame`과 React의 `useEffect`를 결합하여 안정적인 생명주기를 가집니다. - **Resource Disposal**: 게임 종료 또는 언마운트 시 모든 투사체 풀과 메모리 자원을 즉시 해제하여 메모리 누수를 방지합니다. ## 4. Key Implementation References - `src/features/game/hooks/useGameEngine.ts`: 메인 루프 파이프라인 정의. - `src/features/game/systems/index.ts`: 시스템 등록 및 정렬 로직. --- **Status**: Managed by Skybound Protocol **Context**: Engine Engineering / Runtime Pipeline ## 🔗 Knowledge Connections ### Related Concepts (Auto-Linked) * [[Index]] * [[Logic]] * [[React]] * [[State]] * [[_system]]