더북(TheBook)

1.3.1 턴 타이머

각 게임 인스턴스마다 독립적으로 시뮬레이션을 수행하므로 P2P 형태의 토폴로지가 잘 어울린다. 6장 네트워크 토폴로지와 예제 게임에서 논의하겠지만, P2P 모델에선 컴퓨터 사이에 데이터가 비교적 빠르게 오갈 수 있다는 장점이 있다. 서버가 중간에서 데이터를 중개할 필요가 없기 때문이다. 하지만 각 플레이어가 각자의 정보를 서버 하나에 보내는 데 그치지 않고 다른 모든 플레이어에게 전송해야 한다는 단점이 있다. 이런 예를 들 수 있는데, 플레이어 A가 공격 명령을 내릴 때 다른 모든 인스턴스가 이 공격을 인지할 수 있게끔 플레이어 A의 피어는 다른 모든 피어에 정보를 보내야 하고, 모두 정확히 같은 시점에 이 명령을 처리해야 한다. 그렇지 않으면 각 인스턴스의 시뮬레이션이 그 시점부터 발이 안 맞기 시작한다.

그렇지만 여기서 한 가지 중요한 점을 간과해선 안 되는데, 각 플레이어의 게임은 저마다 다른 프레임 레이트로 구동되고, 접속 환경도 품질이 서로 차이가 날 수밖에 없다는 점이다. 앞서 플레이어 A가 공격 명령을 내리는 시나리오의 문제점을 고려해 개선해 보자. A가 명령을 내릴 때 곧바로 적용해 버리는 대신, 명령을 잠깐 대기시켜 둔 채로 일단 B, C, D에 보내어 모두가 준비되었을 때 비로소 동시에 적용하는 것이다. 하지만 여기에도 골치 아픈 문제가 있다. 플레이어 A의 공격 명령이 너무 오랫동안 처리되지 않으면 게임이 매우 지척거리는 응답 속도를 보인다는 것이다.

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