시스템의 일부 기능이나 리소스에 문제가 생겼을 때, 전체가 죽는 대신 핵심 기능은 유지한 채 부가 기능부터 순차적으로 줄여나가는 설계 원칙이다.
게임 개발에서의 관점
1. 네트워크 / 서버 통신
- 로그인 시 필수 정보만 보장하고 나머지 정보는 실패해도 게임 진행 (추후 인게임에서 재통신
- 응답 실패 시 캐시된 마지막 데이터로 폴백
- 실시간 랭킹 갱신 실패해도 로컬 게임플레이는 계속 진행
2. 렌더링 파이프라인
- URP 의 Quality Settings / Scalable Setting 조합 (낮은 퀄리티로 렌더링 진행.)
3. Addressables 에셋 로딩
- 패치 검증 실패해도 이전 버전으로 폴백해서 최소 플레이 가능 상태 유지
설계 시 체크 포인트
- 무엇이 핵심인지 명확히 정의 - 게임 플레이 로직 vs 시각 효과
- 감지(detection) 메커니즘 - 디바이스 티어, 네트워크 상태, 프레임 타임 등을 어떻게 판단 할지
- 폴백 경로가 실제로 테스트되는지 - degradation 경로는 평소에 안 타므로 QA 에서 누락되기 쉬움
- 단계(tier)를 몇 단계로 나눌지 - 너무 세분화하면 관리 비용 증가, 너무 단순하면 커버 못하는 기기 발생