게임 · 심화
입력 동기화(락스텝) 기반 게임에서 저장한 리플레이가 초반 구간은 정확히 재현되는데 몇 분 지나면 결과가 어긋납니다. 결정론이 깨지는 원인을 어떤 순서로 좁혀 나가시겠어요?
힌트 · 틱 단위 체크섬으로 어긋난 시점을 먼저 찾고, 부동소수점·컨테이너 순회 순서·난수 스트림·프레임 종속 로직 등 비결정성 후보를 순서대로 배제하는 흐름으로 답하세요.
결정론적 시뮬레이션체크섬(desync 추적)부동소수점난수 시드순회 순서
모범답안
먼저 어긋난 정확한 틱을 찾는 게 우선입니다. 틱마다 시뮬레이션 상태의 체크섬을 남기고 원본 플레이와 리플레이를 비교해 최초로 달라지는 틱과 엔티티를 특정합니다. 그다음 비결정성 후보를 배제합니다. 부동소수점 연산 순서나 플랫폼·최적화 차이, 해시 컨테이너나 포인터 주소에 의존한 순회 순서, 난수 시드를 시뮬레이션과 연출이 공유하는 경우, 실제 프레임 델타 타임에 의존한 로직, 비결정적인 물리 엔진 사용 등이 대표적입니다. 대응은 시뮬레이션 계층을 고정 스텝·고정 순서로 만들고 정렬된 컨테이너와 전용 난수 스트림을 쓰는 것이며, 오차가 누적되는 구조면 고정소수점 도입까지 검토하겠습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 게임 개발 면접 질문
- 넓은 필드에 나무와 건물이 많은 맵에서 LOD를 적용한다면 어떤 기준으로 단계를 나누시겠어요? LOD가 줄여주는 비용과 부작용도 함께 설명해 주세요.
- 서버 권위 구조로 만든 대전 게임에서 '특정 유저가 비정상적으로 빠르게 이동한다'는 제보가 들어왔습니다. 스피드핵 여부를 어떤 순서로 검증하고, 서버에 어떤 방어를 넣으시겠어요? 검증에 드는 비용도 함께 고려해 말씀해 주세요.
- 수만 명이 접속하는 온라인 게임에서 로그인·매치메이킹·세션 서버와 실제 플레이를 처리하는 게임 서버를 분리하는 이유는 무엇인가요? 게임 서버가 플레이 상태를 메모리에 들고 있는 구조에서 확장(스케일 아웃)과 장애 대응을 어떻게 설계하시겠어요?
- 잡 시스템에 워커 스레드 수를 늘리고 작업을 병렬화했는데 프레임 시간이 거의 줄지 않았습니다. 어떤 원인들을 의심하고 어떤 지표로 확인하시겠어요?
- 라이브 서비스 중 핫픽스를 배포했는데 일부 유저에게서만 텍스처가 깨지거나 특정 콘텐츠 진입 시 크래시가 난다는 제보가 옵니다. 에셋 번들 버전 관리 관점에서 어떤 원인을 의심하고 어떤 순서로 대응하시겠어요?
- 크래시 리포트 대시보드에 재현이 안 되는 크래시가 낮은 빈도로 꾸준히 올라오고, 콜스택은 엔진 내부에서 끊겨 있습니다. 어떻게 접근해서 원인을 좁혀 나가시겠어요?