Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

첫째. 공정한 플레이를 유지하기 위해서입니다. 종종 쿨타임 없는 순간이동 자체가 게임 플레이의 일부인 경우가 있기는 합니다. 정확히 이런 용도가 아니라면 순간이동에는 쿨타임이 있는데 있습니다. 가장 큰 이유는 플레이를 공정하게 만들기 위해, 달리 표현하면 여뷰징 어뷰징 할 상황을 줄여야 하기 줄일 수 있기 때문입니다. 만약 전투 도중에 플레이어가 갑자기 다른 존으로 이동한다면 자잘하게 해결해야 하는 문제들이 생깁니다. 만약 순간이동 한 플레이어가 마지막으로 입력한 공격이 아직 안 끝났다면? 또는 상대 또는 몬스터가 플레이어를 향해 사용한 공격이 아직 안 끝났다면 플레이어가 갑자기 사라질 때 문제가 됩니다. 단순한 공격이라면 그냥 실패한 것으로 처리하고 끝낼 수 있지만 10초 동안 2초에 한번씩 플레이어 반경 내에 있는 적들에게 공포 효과를 주는 스킬이 있다면 10초가 되기 전에 플레이어가 다른 위치로 이동할 때 이를 처리하기 어려워집니다.

간단히 단순히 플레이어가 다른 곳으로 이동하면 남은 시간 동안 이동한 존에서 도착한 곳에서 효과가 계속되면 된다고 생각할 수도 있지만 도착한 곳이 이곳이 전투 불가능으로 설정된 마을이거나 플레이어의 팩션이 변경되어야 하는 난입 가능한 전장이라거나 하는 상황에 따라 처리가 상당히 복잡해집니다. 게임 모드에 따라 사용할 수 없는 스킬의 효과일 수도 있습니다. 그래서 간단히 플레이어가 전투 상태에서 평화 상태로 전환되는데 걸리는 시간과 같거나 그보다 약간 더 긴 시간동안 시간 동안 기다리게 만듭니다. 평화 상태로 전환되려면 일단 주변의 전투 상황이 상황과 플레이어의 상태가 자연스럽게 정리되기 때문입니다. 일단 평화 상태에 진입하면 아무 장소로나 이동해도 큰 문제가 되지 않을 겁니다않습니다.

둘째. 레벨 사이를 이동할 때 상대 위치와 동기화를 맞추는데 시간이 필요하기 때문입니다. 클라이언트는 서로 다른 레벨 사이를 이동하는데 시간이 걸립니다. 현재 레벨을 언로드하고 새 레벨을 로드하고 로드해야 하고 새 레벨의 위치에 따라 다른 서버에 접속해야 할 수도 있습니다. 이런 과정에는 수 초는 필요합니다. 반면 서버 입장에서 플레이어는 순식간에 목표 지점에 도착할 수 있습니다. 하지만 이 상태를 그대로 놔두면 역시 이상한 상황이 일어나는데 클라이언트가 로딩을 하는 동안 서버 입장에서 플레이어 캐릭터가 완전 무방비 상태가 됩니다. 서버 상에서 옆에 있던 몬스터가 와서 플레이어를 공격해도 클라이언트는 아직 로딩 중이므로 조작할 수도 응답할 수도 없습니다. 그래서 서버는 무작정 플레이어를 새 위치로 옮기지 않고 잠깐 기다려 클라이언트의 상태에 따라 새 위치에 플레이어를 스폰 시키는데 이 작업을 안전하게 처리하는데 필요한 시간입니다.

...