전체 게시물

하나의 세계, 다섯 개의 플랫폼 — 개발 일지 #2: 크로스 플랫폼 MMORPG 개발의 어려움

하나의 MMORPG를 마우스, 터치스크린, 컨트롤러로 플레이할 수 있게 만들기. 인터페이스, 조작, 30개 언어, 로컬 채팅 번역에 대한 Ancient Online의 선택.

어스름한 조명 아래 책상 위에서 붉은빛과 청록빛 반사를 머금은 게임 컨트롤러

저희는 Ancient Online: Remastered를 Windows, Linux, macOS, Android, iOS 플레이어가 만나는 하나의 세계로 설계하고 있습니다. 말로는 간단합니다. 게임 하나에 플랫폼 다섯 개. 하지만 실제로는, 마우스 클릭으로 플레이하도록 설계된 클래식 MMORPG를 휴대폰과 컨트롤러로 가져오는 일은 어려운 결정의 연속입니다. 이번 개발 일지에서는 그 결정들과 그 뒤에 있는 이유를 나눕니다.

게임은 개발 중입니다. 개발 빌드는 현재 Windows와 Android 기기에서 테스트하고 있으며, macOS, Linux, iOS는 저희가 목표로 하는 나머지 플랫폼입니다.

규칙 1: 하나의 세계, 하나의 규칙

모바일 플레이어를 위한 별도의 서버도, “단순화한” 밸런스도 없습니다. 게임의 모든 규칙이 서버에서 돌아가기 때문에, 어떤 기기로 접속하든 같은 세계에서 같은 규칙으로 플레이합니다. 계정, 캐릭터, 인벤토리, 길드는 기기와 무관합니다. 서버 쪽 이야기는 개발 일지 1편에서 다뤘습니다.

클라이언트 입장에서 이 규칙은, 플랫폼마다 서로 다른 조작을 제공할 수는 있어도 서로 다른 능력을 제공할 수는 없다는 뜻입니다.

터치스크린: 줄이는 대신 다시 생각하기

클래식 MMORPG 인터페이스를 그대로 줄여서 휴대폰에 올리는 방식은 통하지 않습니다. 버튼은 손가락에 비해 너무 작아지고, 화면은 너무 복잡해집니다. 그래서 모바일을 위한 인터페이스 계층을 따로 설계했습니다.

  • 플로팅 조이스틱: 화면 왼쪽 절반 어디에 손가락을 대든 조이스틱이 그 자리로 옵니다. 플레이어가 화면의 특정 지점을 맞출 필요가 없습니다.
  • 누르고 있으면 계속 공격하는 버튼과 그 주위에 호 모양으로 놓인 스킬.
  • 탭으로 대상 지정: PC의 “몬스터를 클릭한다”는 습관을 터치로 옮긴 것입니다.

일부러 하지 않은 것도 있습니다. 탭해서 이동하기입니다. 이동은 조이스틱이 맡습니다. 이동 방식이 두 가지면 대상을 놓친 탭이 모두 의도하지 않은 달리기로 바뀔 텐데, 전투 한가운데에서 그런 일은 용납할 수 없습니다.

작지만 중요한 결정이 하나 더 있습니다. 휴대폰에서는 한 번에 보이는 슬롯이 몇 개뿐이어서, 스킬 페이지를 바꾸는 일이 데스크톱보다 훨씬 자주 일어납니다. 그래서 물약 슬롯을 페이지와 독립시켰습니다. 페이지를 바꿔도 물약은 제자리에 있습니다. 이렇게 하려면 인터페이스에서 칸 하나를 옮기는 것으로는 부족했습니다. 물약 슬롯을 사용하는 코드를 페이지 로직에서 완전히 분리해야 했습니다.

카메라와 멀티 터치

휴대폰에서는 빈 곳을 손가락으로 드래그하면 카메라가 돕니다. 인터페이스 위에 전체 화면 “카메라 영역”을 올려서 구현하는 방법이 솔깃해 보였지만, 그런 계층은 그 아래 모든 버튼으로 가야 할 터치를 삼켜 버립니다. 저희는 카메라 드래그를 인터페이스 계층이 아니라 플레이어 컨트롤러에서 처리해, 버튼과 카메라가 충돌하지 않게 했습니다. 또한 대상 선택과 카메라 드래그는 작은 이동 임계값으로 구분합니다. 임계값을 넘기 전까지 카메라는 꿈쩍도 하지 않고, 넘고 나면 갑자기 튀는 일 없이 돌기 시작합니다.

컨트롤러: 메뉴까지 돌아다니기

컨트롤러 지원은 전투만이 아니라 인터페이스 전체를 대상으로 설계했습니다. 컨트롤러로 인벤토리와 메뉴를 오갈 수 있도록 방향 패드(D-패드)를 이용한 포커스 이동을 추가했습니다. 여기에도 함정이 있었습니다. 방향 패드와 확인/뒤로 버튼은 메뉴를 오갈 때도, 퀵슬롯을 쓸 때도 필요합니다. 해법은 이렇습니다. 창이 열려 있는 동안에는 이 버튼들이 메뉴를 움직이고, 창이 닫히면 다시 퀵슬롯으로 돌아갑니다. 전투 한가운데에서 소리 없이 “메뉴 모드”로 빠져 버리는 것은 이 시스템이 가질 수 있는 최악의 버그일 것입니다.

게임은 마지막으로 사용한 입력 장치를 기억합니다. 컨트롤러로 바꾸면 터치 버튼은 화면에서 물러납니다.

설정도 플랫폼을 따릅니다

설정 창은 기기에 맞춰 모양을 갖춥니다. 마우스와 키보드 탭은 PC에서만, 터치 탭은 휴대폰에서만 나타납니다. Lumen, DLSS, FSR 같은 데스크톱 전용 그래픽 옵션은 모바일에서 해상도와 안티에일리어싱 옵션으로 대체됩니다. 각 기기에서는 그 기기에서 실제로 쓸모 있는 설정만 보여 줍니다.

30개 언어, 그리고 언어마다 치수를 재는 인터페이스

게임과 저희 웹사이트는 30개 언어 지원을 목표로 합니다. 다국어 인터페이스의 숨은 어려움은 글자 길이입니다. 같은 버튼 문구가 어떤 언어에서는 짧고, 다른 언어에서는 두 배로 길 수 있습니다. 저희는 설정 창의 탭 너비를 똑같이 나누지 않고, 해당 언어에서 각 문구가 실제로 차지하는 너비로 계산합니다. 언어가 바뀌면 레이아웃을 다시 계산합니다. 언어 선택 목록에서는 각 언어가 그 언어 자신의 이름으로 적혀 있습니다.

저희 자체 서버에서 하는 채팅 번역

서로 다른 나라의 플레이어들이 같은 세계에서 서로를 이해할 수 있도록, 채팅 메시지는 읽는 사람의 언어로 번역됩니다. 이 시스템을 만들면서 저희에게는 두 가지 원칙이 있었습니다.

  1. 메시지는 저희 서버를 떠나지 않습니다. 번역은 저희 자체 서버에서 CPU만으로 돌아가는 로컬 모델이 처리하며, 외부 번역 API는 쓰지 않습니다.
  2. 게임의 언어를 지킵니다. MMORPG 채팅은 줄임말과 게임 용어, 이모지로 가득합니다. 저희는 게임 전용 용어집을 사용하고, 이모지는 번역 과정에서 사라지지 않도록 따로 보호합니다.

앞으로는

모바일 성능과 저희가 목표로 하는 나머지 플랫폼에 대한 작업은 계속되고 있습니다. 플레이어 입장에서의 전체 조작 목록은 게임 사이트의 PC·모바일 크로스 플랫폼 가이드를 살펴보세요. 저희 스튜디오를 알아보려면 Astronaut Entertainment는 어떤 곳인가요? 글을 읽어 보세요.

공유:
다른 언어로 보기29