더북(TheBook)

그러나 플레이어가 자기 컴퓨터를 해킹해서 게임 월드가 다른 플레이어들과 동일하지 않은 상태가 되게 만들 수도 있습니다. 이를 그냥 놔두면 플레이어마다 서로 다른 게임의 월드 상태가 계속 남게 됩니다. 이를 감지할 필요가 있으므로 각 플레이어는 게임의 월드 상태에 대한 체크섬을 계산해서 매 업데이트마다 상대방에게 보냅니다.

상대방 컴퓨터에서 메시지가 오지 않으면 업데이트하지 않고 대기합니다. 결론적으로 모든 기기에서 상대방에게 1/60초마다 메시지를 보내며, 모든 기기에서 메시지가 온 후에야 게임 월드를 업데이트합니다. 메시지 내용은 “현재 시간, 가한 명령, 체크섬”이 됩니다.

p244

▲ 그림 5-17 락스텝 동기화 방식에서 플레이어 간에 메시지 전송

 

이러한 작동 방식을 사용하여 수많은 캐릭터를 조종하는 게임이라고 하더라도 정확한 움직임을 표현할 수 있습니다. 그러나 이 방식은 컴퓨터 간 통신 레이턴시가 거의 없을 때라야 완벽하게 작동한다는 한계가 있습니다. 이를 해결하려면 입력 명령을 보내되 ‘언제 실행해야 하는지에 대한 미래 시간’을 같이 보내야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.