언제 순간이동하고 언제 걸어가나요?
뻔한 것 같은데 또 아닌 것 같은 질문. 퀘스트 자동이동을 지원하는 게임에서 어느 때는 걸어서 자동이동하고 어느 때는 순간이동할까요? 존 기반 게임에서는 간단히 다른 존은 순간이동하고 같은 존은 걸어서 이동합니다. 그럼 같은 존 안에서 이동할 때 어느 때는 걸어가고 어느 때는 순간이동하는데 이 차이는 뭘까요. 또 어느 때는 순간이동 할 때 몬스터가 쳐서 잠깐 전투한 다음 손을 놓으니 걸어서 이동하는데 이 차이는 뭘까요. 뻔한 것 같은데 은근 헛갈리게 만드는 동작입니다. 실은 단계 별로 플레이어의 시간을 최대한 아끼기 위해 만들어진 규칙에 따라 동작합니다.
일단 존 기반 게임에서 ‘다른 존’으로 이동하려면 생각할 것 없이 바로 순간이동을 하면 됩니다. 순간이동을 통해 다른 존의 순간이동 지점으로 이동한 다음 목적지까지 남은 거리를 걸어서 이동합니다. 목적지가 같은 존이라면 생각을 좀 해야 합니다. 시간이 흐르면서 존 기반 게임의 한 존은 점점 넓어지고 있습니다. 이전 같으면 마을과 주변 전투 필드를 다른 존으로 구분해 놓고 이들 사이를 지날 때 로딩을 하게 했겠지만 모바일에서도 하드웨어 성능이 점점 좋아지면서 한 존을 넓게 만들 수 있게 됐습니다. 굳이 머리 아프게 심리스를 고려하지 않아도 그냥 한 존을 크게 만들면 거의 대부분 플레이는 심리스처럼 동작했습니다. 그래서 성장구간에 웬만한 자동이동은 같은 존에서 일어나는데 위 규칙대로 같은 존 안에서 자동이동은 걸어서 한다고 해버리면 플레이어들이 시간을 낭비하게 될 겁니다.
그래서 자동이동을 시도할 때 목적지까지 거리를 측정합니다. 처음에는 단순히 목적지까지 직선거리를 사용했는데 탁 트인 지형에서는 별 문제 없이 작동했지만 지형이 복잡해 직선거리와 실제 이동거리 사이에 차이가 커지자 내비게이션 메시 상의 실제 이동거리를 측정하고 있습니다. 목적지까지 걸어서 이동하는 거리와 목적지에서 가장 가까운 순간이동 지점으로부터 목적지까지 걸어서 이동하는 거리를 서로 비교합니다. 만약 전자가 더 짧다면 걸어서 목적지까지 자동이동하고 후자가 더 짧다면 순간이동을 사용합니다.
하지만 순간이동은 상황에 따라 로딩을 거쳐야 합니다. 존을 크게 만드는 이유는 플레이 할 때 최대한 로딩이 일어나지 않게 하기 위해서입니다. 하지만 같은 존 안에서라도 먼 거리를 이동하려면 로딩이 필요한데 클라이언트는 레벨을 새로 로딩할 필요가 없지만 서버 입장에서 동기화 영역 밖으로 순간이동 하려면 목적지 주변 상태를 새로 받아와야 하기 때문입니다. 그래서 실제로는 같은 존 이라도 순간이동 할 때 이전보다는 약간 짧은 로딩이 일어날 수 있습니다. 그래서 목적지까지 걸어서 이동하는 거리와 순간이동 후 걸어서 이동하는 거리를 비교할 때 이들 사이의 차이가 로딩에 필요한 예상 시간보다 짧다면 순간이동 후 걷는 거리다 더 짧더라도 현재 위치부터 목적지까지 걸어서 이동하게 만듭니다.
이런 동작의 목적은 모두 플레이어가 퀘스트를 수행하는데 필요한 시간을 최대한 아끼도록 합니다. 플레이어가 게임을 진행하는데 사용하는 시간을 최대한 게임 관점에서 의미 있게 만들어 줍니다. 물론 걸어서 이동하는 시간이 의미 없다는 이야기는 아닙니다. 탐험을 중시한다면 이렇게 걸어서 이동하는 시간이야말로 게임 플레이의 핵심일 수 있습니다. 만약 그런 장르라면 퀘스트 자동이동을 넣지 않았을 겁니다. 퀘스트 자동이동은 모바일에서 전통적인 조작이 어렵기 때문이기도 하지만 성장구간이 시간에 민감하기 때문에 필요한 기능이기도 합니다. 성장구간을 시간 낭비 없이 통과해 엔드 컨텐츠에 진입시키는데 시간을 아끼는 장치들이 큰 역할을 합니다. 현대 모바일 게임의 여러 편의 기능들은 여기에 초점을 맞추고 있습니다.