You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EngineSystem abstract base class로 시스템 contract를 정의하고, FrameClock으로 fixed-timestep 게임 루프 타이밍을 구현한다. FrameClock은 프레임 간 시간을 누적해 고정 스텝 수를 계산하고, 렌더링 보간을 위한 alpha 값을 제공한다.
Summary
EngineSystemabstract base class로 시스템 contract를 정의하고,FrameClock으로 fixed-timestep 게임 루프 타이밍을 구현한다.FrameClock은 프레임 간 시간을 누적해 고정 스텝 수를 계산하고, 렌더링 보간을 위한 alpha 값을 제공한다.Parent Issue
#1
Area
Engine
Target Sprint
Sprint 1
Scope
EngineSystem:configure(EngineWorld&)(선택적)와update(EngineWorld&, const EngineStepContext&)(순수 가상)로 구성된 시스템 contractEngineWorld:EngineSystem계약이 컴파일되기 위한 최소 플레이스홀더 정의 —query(),resources(),commands()wiring은 Task-Implement EngineRuntime minimal orchestration API #12 범위FrameClock: fixed-timestep 누산기beginFrame(double deltaSeconds): delta time 누적,maxCatchUpSteps초과분 clampshouldRunFixedStep()/consumeFixedStep(): 고정 스텝 소비 인터페이스alpha(): 렌더링 보간 계수 (0.0 ~ 1.0) 반환reset(): 누산기 초기화FrameClockTests: 잔여 시간 누적, catch-up 스텝 상한 검증Acceptance Criteria
beginFrame()호출 후pendingFixedSteps()가 올바른 스텝 수를 반환한다maxCatchUpSteps를 초과하는 delta가 들어와도 스텝 수가 상한으로 제한된다consumeFixedStep()후alpha()가 잔여 누산 시간 기준 보간 계수를 반환한다EngineSystem::update()가 순수 가상으로 서브클래스에 구현을 강제한다Architecture / Dependency Check
src/engine안에만 둔다engine/...기준을 유지한다Verification Plan
cmake --preset windows-debug-no-appcmake --build --preset build-no-app-debugctest --preset test-no-app-debugFrameClockTests전체 통과Dependencies / Blockers
EngineConfig,EngineStepContext기존 정의 활용 (외부 선행 이슈 없음)EngineWorldfull wiring(Task-Implement EngineRuntime minimal orchestration API #12) 전까지EngineSystem은 빈 world 파라미터로 동작