패스잇
게임 · 심화

입력 동기화(락스텝) 기반 게임에서 저장한 리플레이가 초반 구간은 정확히 재현되는데 몇 분 지나면 결과가 어긋납니다. 결정론이 깨지는 원인을 어떤 순서로 좁혀 나가시겠어요?

힌트 · 틱 단위 체크섬으로 어긋난 시점을 먼저 찾고, 부동소수점·컨테이너 순회 순서·난수 스트림·프레임 종속 로직 등 비결정성 후보를 순서대로 배제하는 흐름으로 답하세요.

결정론적 시뮬레이션체크섬(desync 추적)부동소수점난수 시드순회 순서

모범답안

먼저 어긋난 정확한 틱을 찾는 게 우선입니다. 틱마다 시뮬레이션 상태의 체크섬을 남기고 원본 플레이와 리플레이를 비교해 최초로 달라지는 틱과 엔티티를 특정합니다. 그다음 비결정성 후보를 배제합니다. 부동소수점 연산 순서나 플랫폼·최적화 차이, 해시 컨테이너나 포인터 주소에 의존한 순회 순서, 난수 시드를 시뮬레이션과 연출이 공유하는 경우, 실제 프레임 델타 타임에 의존한 로직, 비결정적인 물리 엔진 사용 등이 대표적입니다. 대응은 시뮬레이션 계층을 고정 스텝·고정 순서로 만들고 정렬된 컨테이너와 전용 난수 스트림을 쓰는 것이며, 오차가 누적되는 구조면 고정소수점 도입까지 검토하겠습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 게임 개발 면접 질문

← 게임 개발 면접 질문 전체 보기