한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2023.04.04 Game

    TECH Standard | EP01. MMORPG의 글로벌 원빌드를 위한 기술적 도전

    엔씨는 국내 서비스를 넘어 글로벌 수준에서 더 많은 플레이어가 동등하게 경험하고 몰입할 수 있는 거대 메타버스를 구현하고자 글로벌 원빌드를 목표로 설정했습니다. 첫 번째로 〈리니지W〉에 글로벌 원빌드를 적용하여 다양한 국가의 플레이어들이 하나의 서버에 접속해 즐기고 있습니다. 첫날에만 190만 명이 동시에 접속했고 현재 전 세계 12개국의 수많은 플레이어가 원활하게 활동하고 있습니다.

    조밀한 오브젝트로 가득 채워진 광활한 월드에서 많은 플레이어가 동시다발적으로 상호작용하는 MMORPG 장르에서는 ‘연결성’이 무엇보다 중요합니다. 모든 플레이어의 네트워크 연결은 물론 플레이어 간의 연결도 지원해야 하기 때문이죠. 이 때문에 MMORPG는 다른 캐주얼 게임에 비해 높은 기술력이 필요합니다. 특히 전 세계의 폭넓은 범위를 연결하려면 기술 수준이 더욱 높아야 합니다. 〈리니지W〉도 글로벌 원빌드라는 목표에 이르는 과정에서 많은 기술적 난관에 맞닥뜨렸고, 그때마다 엔씨 개발팀과 내부 서포트 조직이 여러 방안을 검토해 신규 시스템을 개발하거나 도입하는 등 분투했습니다.

    ‘TECH Standard’ 시리즈 영상에서는 이처럼 안주하지 않고 더 높은 수준을 향해 새로운 ‘기준’을 만들어가는 엔씨의 다양한 기술적 도전을 소개합니다. 첫 번째 에피소드에는 전 세계 플레이어가 언제 어디서든 동시에 플레이할 수 있도록 MMORPG의 연결성을 극대화한 여정을 담았습니다.

    글로벌 MMORPG를 가능하게 하다: RIO 모델 도입

    글로벌 프로젝트에서 가장 먼저 고려한 것은 안정성이었다. 우리나라와 달리 네트워크 상황이 좋지 않은 국가에서도 안정적으로 게임할 수 있는 환경을 구축하는 것이 큰 과제였다. 네트워크가 끊기면 게임을 원활하게 즐기기 어렵고 플레이어의 여러 활동이 사라질 수 있다. 그러므로 네트워크는 느리더라도 안정적으로 연결되어야 하고, 끊기더라도 금방 복구할 수 있어야 한다. 이처럼 빨리 복구하려면 정보를 작은 단위로 쪼갠 대량의 데이터를 한번에 처리해야 하는데, 이 조건에 부합하는 기술이 바로 RIO였다.

    일반적으로 MMORPG에서 주로 사용하는 IOCP(I/O Completion Port)는 스레드를 자동으로 관리해주기 때문에 안정적이다. 또한 송수신이 완료되면 알려주기 때문에 비동기 프로그램 방식을 사용할 수 있어서 고성능 프로그램 개발에 유용하다. 택배 시스템을 생각하면 쉽다. 택배의 현재 위치를 계속 일일이 알리지 않고, 도착할 때만 보낸 사람과 받는 사람에게 알리는 것과 비슷하다. 이렇게 하면 CPU가 그사이 다른 일을 처리할 수 있다. IOCP 다음에 발표된 기술인 RIO(Registered I/O)는 개발 난도가 높지만 안정성은 물론 작은 단위로 이루어지는 대량 통신의 효율성이 IOCP보다 좋다. 즉, 관리 체계가 잘 잡힌 택배사를 통해 더 안정적으로 더 많은 택배를 처리한다고 보면 된다.

    〈리니지W〉는 원래 IOCP로 시작했지만 고민 끝에 출시 직전에 RIO로 교체했다. 출시 직전에, 그것도 국내는 물론 해외에서도 실제 프로젝트에 적용된 예가 없었던 기술을 도입한다는 것은 상당한 모험이었으나 자신 있게 시도한 이유가 있었다. 엔씨의 다른 프로젝트에서 이미 RIO를 적용하고 검증까지 끝마친 상태였기 때문이다. 엔씨의 다양한 시도들이 공유되어 후발 프로젝트의 생산성과 안정성을 끌어올리는 데 지대한 영향을 미쳤고, 그 결과 신기술을 원활하게 도입할 수 있었다.

    RIO를 실제로 적용해보니 IOCP에 비해 CPU 사용량이 현저히 낮고 안정적이었으며, 메모리 증가나 서버 부하도 크지 않았다. 이를 통해 글로벌 환경에서 대규모 플레이어가 이동하거나 전투할 때 움직임이 지연되지 않고 보다 자연스러워져 플레이어가 체감할 정도가 되었다.

    진정한 심리스 MMORPG의 실현: 레벨 세그먼트 그래프

    심리스(seamless)란 이음새나 틈이 안 보인다는 뜻으로, 게임에서는 맵 안의 모든 지형이 연결돼 로딩 없이 다른 지역으로 이동할 수 있는 상황을 의미한다. 심리스는 불필요한 로딩 시간을 없애서 플레이어에게 연속적인 경험을 제공하여 거대한 세계관에 몰입할 수 있도록 돕기에 MMORPG에서 무엇보다 중요한 요소 중 하나다.

    게임에서 지역과 지역 사이를 걷거나 탈것으로 이동하는 것과 달리 특정 위치로 순간이동하면 일반적 심리스 로딩에 비해 많은 부하가 걸린다. 그래서 MMORPG에서의 순간이동은 주로 이동 지점이 정해져 있고, 순간이동 시 지역 로딩 페이지 연출과 함께 이동하는 방식이 쓰인다. 이때 순간이동 지점의 주변 지역까지 한꺼번에 로딩해야 하기 때문에 로딩 시간이 길 수밖에 없다. 하지만 〈리니지W〉에서는 이러한 한계를 극복하고 ‘1초 이내에 게임 내 모든 지역에 무작위로 순간이동할 수 있도록’ 목표를 설정했다.

    목표를 언리얼 엔진 4로 구현하는 데는 어려움이 있었다. 언리얼 엔진 4에도 심리스 맵 로딩을 위한 기능이 있지만, 맵에 포함된 사물이 많거나 한 번에 로딩할 맵의 개수가 많아지면 성능이 급격하게 저하되는 문제가 있었기 때문이다. 〈리니지W〉는 다른 게임에 비해 맵에 배치된 사물이 많고 맵 개수 자체도 많아서 다른 방법이 필요했다. 그 결과 언리얼 엔진 4에서 제공하는 심리스 지형 처리 기능을 대신할 〈리니지W〉만의 새로운 심리스 지형 처리 시스템 ‘레벨 세그먼트 그래프’를 자체 개발했다.

    레벨 세그먼트 그래프의 핵심 중 첫 번째는 맵 영역을 세분화하여 자동으로 관리할 수 있다는 점이다. 〈리니지W〉의 전체 맵은 대략 441제곱킬로미터로 서울 강남구 면적의 약 11배다. 하나의 맵을 ‘레벨’이라고 표현하는데, 일반적으로 PC 3D MMORPG는 레벨이 2~300개 정도인 것에 비해 〈리니지W〉는 약 3,000개가량이 적용되어 있다. 이렇게 광활한 맵을 수동으로 작업하면 균일하게 관리하기가 어려울 수밖에 없다. 레벨 세그먼트 그래프는 이를 가상의 공간으로 분리하고 자동으로 정리해주기 때문에 각종 작업 및 관리가 쉽다.

    두 번째 핵심은 우선순위를 설정할 수 있다는 것이다. 예를 들어 플레이어가 다른 지역으로 이동하면 여러 개의 레벨이 같이 로딩된다. 이때 정말 중요한 레벨, 덜 중요한 레벨 등의 우선순위가 있지만 기존 시스템에서는 이를 구분하거나 중요도를 세부적으로 지정할 수 없었다. 하지만 레벨 세그먼트 그래프를 적용한 후에는 이동 시 중요도가 높은 레벨을 먼저 로딩하고 나머지 레벨은 차후에 로딩하는 방식으로 시간을 획기적으로 줄일 수 있었다. 즉, 무작위 순간이동이 2~5초에서 0.7초 정도로, 최대치로는 0.1초까지 줄어서 플레이어가 로딩을 전혀 느낄 수 없을 정도로 성능이 향상됐다.

    언제 어디서든 안정적인 서비스를 위해: 네트워크 최적화를 위한 끈질긴 노력

    전 세계 플레이어에게 동일하게 안정적인 게임 환경을 제공하기 위해 글로벌 프로젝트에서는 네트워크의 안정성을 가장 중요하게 고려했다고 앞서 말한 바 있다. 그러기 위해 물리적 거리를 단축해 네트워크 성능을 향상시키고 글로벌 서비스 인프라를 구축하는 등 네트워크 최적화에 다양한 노력을 기울였다.

    네트워크 최적화란 통신 경로를 줄이고, 불완전한 곳이 있으면 개선해 효율적이고 원활하게 통신하도록 만드는 것이다. 서울에서 부산으로 가는 상황에 빗대어 생각해보자. KTX를 탈 수도 있고, 버스를 타고 여러 번 환승해서 갈 수도 있다. KTX는 비용이 많이 들지만 일직선에 가까운 경로로 신속하게 갈 수 있고, 버스는 저렴하지만 시간이 오래 걸리고 경로도 비효율적일 것이다. 게임 네트워크도 마찬가지다. 직선에 가까운 고성능 연결망은 비용이 많이 들지만 더 빠르게 통신할 수 있다.

    현재 〈리니지W〉를 서비스하고 있는 12개국 중 가장 먼 나라는 사우디아라비아다. 엔씨는 네트워크 상황이 한국만큼 좋지는 않은 사우디아라비아에서도 원활하게 서비스하기 위해 모든 방안을 동원했다. 최적의 네트워크 거점을 찾기 위해 직접 인터넷 속도 및 성능을 측정하고, 최단 거리의 빠른 통신을 위해 육지가 아닌 해저망을 활용하는 등 고비용을 감수하며 글로벌 서비스 인프라를 구축했다.

    특히 엔씨는 이전부터 해외 거점들의 성능을 테스트하고 있는데, 이번에는 필요한 경우 직접 현지에 가서 검증하고 신뢰도 높은 데이터를 확보하기도 했다. 또한 I&O Center의 전담 조직이 네트워크 경로에 문제가 발생하거나 품질이 좋지 않은 곳을 24시간 모니터링하기 때문에 빠르게 대응할 수 있다. 전 세계 네트워크를 24시간 모니터링하고 성능 데이터를 수집하며 검증하는 일은 결코 쉽지 않지만 이런 끈질긴 노력으로 엔씨는 차별화된 글로벌 서비스 품질을 이룰 수 있었다.

    글로벌 플레이어들을 세심하게 연결하다: AI 번역 기술

    앞서 언급한 MMORPG의 ‘연결성’은 물리적으로 컴퓨터를 연결하는 것뿐만 아니라 플레이어와 플레이어를 연결하는 것까지 포함하는 개념이다. 장르 특성상 MMORPG는 플레이어들끼리 많이 소통하고 관계도 끈끈하다. 각기 다른 언어를 사용하는 플레이어가 모이는 글로벌 환경에서도 이러한 재미를 온전히 느낄 수 있도록 더욱 세심히 고민했다. 엔씨가 찾아낸 방법은 AI 번역 기술이었다. 엔씨 내부에서 자체 기술력으로 개발하여 〈리니지W〉에 적용한 AI 번역 엔진은 현재 글로벌 플레이어들이 대화하는 데 문제가 없는 수준까지 발전한 상태다.

    〈리니지W〉에 적용된 AI 번역 엔진의 특징은 리니지에 맞춰 특화된 번역이 가능하다는 것이다. 예를 들어 ‘텔레포트’의 의미를 담은 ‘베르’라는 리니지 용어를 다른 번역 엔진은 정확하게 번역하지 못한다. 그러나 〈리니지W〉의 AI 번역 엔진은 ‘베르’를 ‘텔레포트’로 전환해 해당 국가 언어로 번역한 후 ‘텔레포트’를 뜻하는 해당 국가의 리니지 용어로 전환해 준다. 또한 문화적 차이 때문에 문제가 될 수 있는 표현을 걸러내고 유사한 다른 언어로 대체한다.

    *자세한 내용은 “언어의 장벽을 넘어 세상 모든 게이머를 연결하는 실시간 AI 번역 엔진, NCMT”를 참고해주세요. [바로 가기]

    끝없는 도전을 통해 ‘기준’을 만들어가는 MMORPG의 명가

    ‘MMORPG에서 대규모 플레이어가 원활히 접속할 수 있어야 한다’, ‘대규모 전투가 가능해야 한다’에 이어 ‘글로벌 원빌드로 MMORPG가 작동해야 한다’, ‘글로벌 플레이어 간의 소통 문제가 없어야 한다’까지. 엔씨는 지속적으로 더 높은 목표를 설정하며 실패를 두려워하지 않고 도전해왔다. 그 과정에는 ‘MMORPG는 플레이어에게 무엇을 제공해야 하는가?’라는 물음이 언제나 내재되어 있었다. 더 많은 플레이어가 아무런 제약 없이 몰입해 최상의 경험을 할 수 있는 MMORPG를 위해 엔씨는 스스로의 기준을 끊임없이 업그레이드할 수밖에 없을 것이다.