더북(TheBook)

10.5 플레이어 간 상호 작용 분산 처리

 

 

온라인 게임에서 플레이어 심리를 많이 자극하는 것 중 하나는 플레이어 간 상호 작용입니다. 대표적인 것이 플레이어 간 대전(Player vs Player, PvP)입니다. 플레이어가 공동의 적을 상대로 협업 플레이(co-op)를 하는 것도 플레이어 간 상호 작용이 들어갑니다. 예를 들어 플레이어 1이 적을 상대로 검과 방패로 근접 공격 중인 상황에서 플레이어 2는 플레이어 1을 치료하는 마법을 시전합니다. 꼭 전투가 아니더라도, 플레이어 간 게임 아이템을 물물 교환하는 경우도 플레이어 간 상호 작용이라고 할 수 있습니다.

플레이어 간 상호 작용의 특징은 다음과 같습니다.

• 매우 정확해야 합니다(간발의 차이로 PvP 승부 내기).

• 높은 성능 수준이 요구됩니다.

• 횟수가 매우 잦을 때가 있습니다. 예를 들어 두 플레이어가 서로에게 기관총을 난사하고 있다면 플레이어 간 상호 작용 메시지가 초당 5회 이상 발생합니다.

• 원자성이 있어야 합니다. 상호 작용의 결과가 두 플레이어에게 모두 반영되거나 어느 쪽도 반영되지 않아야 합니다. 예를 들어 플레이어 간 물물 교환을 할 경우 각각이 상대방에게 주려는 물품이 동시에 교환되거나 전혀 교환되지 않아야 합니다.

• 간발의 지연 시간도 문젯거리입니다. 예를 들어 헤드샷을 쐈는데 상대방에게 1/20초 오차가 날 경우, 충분히 머리를 피할 수 있는 시간이므로 이 때문에 두 플레이어 간에 오차가 발생합니다.

이렇게 까다로운 상황에서 플레이어 간 상호 작용을 서로 다른 서버에 분산 처리한다면 매우 곤란하겠지요. 그러다 보니 플레이어 간 상호 작용 처리는 분산하지 않는 것이 일반적입니다. 굳이 분산해야 한다면, 상호 작용할 일이 없는 플레이어들을 분산하는 것이 최선입니다. 즉, 지역적 분산 처리를 하는 것입니다.

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