안티 요요 시스템 (Anti Yo-Yo System)
동적 스케일링 시스템의 가장 성가신 문제 중 하나는 요요 현상(Yo-Yo Effect)(또는 품질 탁구)입니다.
핵심 문제
지능형 제어가 없으면 시스템은 무한 루프에 빠집니다:
- 무거운 씬으로 인해 FPS가 떨어집니다.
- 플러그인은 그래픽 품질을 줄입니다(예: 해상도 삭감).
- 부하가 감소하고 FPS가 기준선 이상으로 상승합니다.
- 플러그인은 성능 여유(Performance Headroom)가 있다고 추론하고 그래픽 품질을 최대로 복원합니다.
- FPS가 다시 떨어집니다. 이 주기가 반복됩니다.
결과적으로 플레이어는 지속적인 품질 깜박임(Quality flickering)을 겪게 됩니다. 그림자가 끊임없이 나타났다가 사라지고, 이미지가 1초마다 흐릿해졌다가 선명해지기를 반복합니다.
WebAP 솔루션: 페널티 록아웃 (Penalty Lockout)
플러그인 설정의 두 가지 매개변수를 기반으로 구축된 페널티 록아웃의 개념을 구현하여 이 문제를 완전히 근절했습니다.
플러그인이 그래픽 품질을 높이면 숨겨진 타이머인 Detection Window(예: 15초)가 시작됩니다. 이 기간 동안 Indexer는 프레임 안정성을 면밀히 모니터링합니다.
이 기간 동안 FPS가 갑자기 떨어지면 시스템은 확실한 결론을 도출합니다: «이전 그래픽 향상은 실수였습니다. 기기가 장기적으로 이 수준을 유지할 수 없습니다.»
페널티가 적용됩니다:
- 플러그인은 즉시 품질을 다시 낮춥니다.
- 엄격한 Penalty Lockout Duration(예: 60초)이 적용됩니다.
- 이 1분 동안 플러그인이 그래픽 품질 향상을 시도하는 것은 단호하게 금지됩니다. FPS가 급등하고 프로세서가 유휴 상태가 되더라도 마찬가지입니다.
세션 잠금 (Session Lock)
게임 역학에 부하 급증이 파도처럼 발생하고 첫 번째 하락 후 품질이 다시 회복되지 않기를 선호하는 경우 Penalty Lockout Duration 필드에 엄청난 값(예: 10분은 600, 1시간은 3600)을 지정하기만 하면 됩니다. 이는 게임 세션이 끝날 때까지 일관된 낮은 수준으로 그래픽을 효과적으로 고정합니다.
유창성(Fluency) 우선순위
페널티는 오로지 렌더링을 향상시키려는 시도만 차단합니다. 플레이어가 훨씬 더 무거운 씬에 진입하고 FPS가 임계 임계값 아래로 떨어지면 플러그인은 여전히 응급으로 품질을 낮출 수 있습니다. 시스템은 항상 시각 효과보다 게임 플레이 유창성을 우선시합니다.
