EVE Evolved: CPU 사용량 감소, FPS 증가
캡슐리어 여러분, 안녕하세요.
지난 EVE Evolved 블로그에서 Quasar로 네트워크 통신을 개선해 SKINR과 같은 기능에 적용하는 방법을 소개했습니다. 이번 개발자 블로그는 EVE Evolved의 핵심 개발 과정을 소개하는 마지막 블로그로 클라이언트 성능에 대한 이야기와 3월 그래픽 렌더링 시스템 업데이트 이야기를 전해드립니다.
Trinity
캡슐리어 여러분은 수도 없이 다양한 전투에 참여하죠. 소규모 함대 교전부터 수천 명의 캡슐리어가 동원되는 전쟁이 벌어지기도 합니다. 이러한 다양한 전투 양상 덕분에 EVE Online은 독특한 기술적 문제에 직면하게 됩니다. 그리고 이러한 기술 문제는 게임이 주는 감동을 좌우할 수 있죠.
그 중에 '모든 물체를 어떻게 화면에 표현할 것인가?'라는 문제도 있습니다. 그 해결책으로 Trinity라는 렌더링 엔진이 있습니다. 렌더링 엔진은 굉장히 복잡한 시스템입니다. 단순하게 설명하자면 렌더링 엔진은 게임이 더 아름답고 부드럽게 표현되도록 엄청난 양의 복잡한 계산은 최대한 빠르게 끝내야 합니다.
Trinity는 캡슐리어의 PC 하드웨어에 맞춰 다양한 상황에서 작동해야 합니다. 오래된 하드웨어를 사용하는 캡슐리어도 있지만 매년 최신 하드웨어로 업그레이드하는 캡슐리어도 있죠. 따라서 '평균' 하드웨어에 맞춰 시스템을 제작할 수 없습니다. 어떤 하드웨어를 사용하더라도 렌더링 시스템은 제대로 작동해야 하죠.
EVE Online는 다양한 방식으로 플레이할 수 있습니다. 정거장에서 거래를 하는 것은 렌더링 시스템 입장에서 단순하고 명확한 작업입니다. 반면에 널 시큐리티 지역에서 거대한 함대를 이뤄 전투를 벌인다면 아주 복잡한 일이 되겠죠. 게임 클라이언트는 다양한 그래픽 요소를 메모리에 동시에 불러오면서 초당 프레임률을 최대한 유지하면서 렌더링을 진행해야 합니다.
특히 EVE Online은 벌써 22년이나 된 게임이라 새로운 그래픽 요소가 꾸준히 추가되었습니다. 10년 전에 추가된 그래픽 요소는 그 시절의 하드웨어 성능에 맞춰 개발되었지만 현재 추가되는 그래픽 요소는 하드웨어의 발전에 따라 더 복잡해졌습니다. 따라서 기존 그래픽 요소를 훼손하지 않고 새로운 렌더링 시스템을 도입하는 것은 매우 어려운 일이었습니다. 뉴에덴에는 이미 수천 가지가 넘는 모델과 텍스쳐가 존재하기 때문이죠.
그래서 Trinity 제작에는 더 주의를 기울여야 했습니다.
성능
2023년 팬페스트에서 EVE의 발전 계획을 발표했습니다. 계획 중에는 GPU 기반 처리 방식이 있습니다. 간단하게 말하면 CPU와 GPU를 함께 사용하는 방식이죠. 기존 방식으로는 한 장면을 렌더링할 때 CPU가 어떤 요소를 GPU가 처리하게 할지 결정합니다. 그러나 최신 기술이 발전하면서 그래픽 요소로 표현할 대상이 점점 세밀해지며 GPU가 더 많은 연산을 담당하고 CPU의 사용량을 줄입니다. 이러한 방식이 더 좋은 이유는 여러 가지가 있습니다.
EVE는 CPU 종속 연산을 합니다. 즉, GPU가 아닌 CPU가 연산 한계로 설정됩니다. CPU의 사용량을 줄이면 여러 장점이 발생합니다.
현대 GPU는 DirectX 12(Windows) 및 Metal(macOS)의 발전에 따라 GPU가 직접 연산을 담당할 때 더 많은 프레임을 렌더링할 수 있습니다.
또한 기반 코드를 수정하거나 새로운 기능을 추가하는 것이 쉬워져 캡슐리어 여러분이 체감할 수 있는 개선이 빠르게 진행됩니다. 또한 그래픽 요소 제작 팀이 새로운 그래픽 요소를 쉽게 추가할 수도 있습니다.
PC의 성능 향상은 각 PC의 CPU와 GPU의 조합에 따라 결정되며 CPU가 GPU에 충분한 데이터를 제공하지 못할 때 GPU 기반 처리 방식의 장점이 극대화됩니다. EVE Online을 구동할 때 엔진 아키텍처와 게임 플레이 방식이 다양한 구조 때문에 사양의 균형이 잘 잡힌 PC에서도 이러한 일이 자주 발생합니다. 함대 전투를 생각해보면 CPU 사용량이 매우 높을 때 GPU 사용량이 낮더라도 FPS가 하락하는 현상을 자주 볼 수 있었을 것입니다.
일반적으로 부품의 성능 균형을 잘 맞춘 컴퓨터 시스템에서 CPU와 GPU 사용량을 조절하면 상당한 성능 향상을 이룰 수 있습니다. 특히, 고성능 GPU와 저성능 CPU를 사용하는 시스템이라면 더 큰 효과를 볼 수 있죠.
Trinity 렌더링 시스템에서 변화가 감지되면 EVE Probe 프로그램이 작동합니다. 이 프로그램의 역할은 렌더링 및 오디오 엔진 테스트입니다. EVE Probe는 EVE Online 플레이에 필요한 다양한 시스템, 예를 들어 UI, 네트워크 시스템, 키보드 및 마우스 입력 같은 모든 시스템을 배제하는 연산량이 낮은 프로그램입니다. 이러한 방식으로 혼잡한 라이브 서버 환경을 벗어나 성능 테스트를 할 수 있는 것이죠.
CCP의 잘 알려진 테스트 방식으로 '죽음의 큐브'가 있습니다. 자세한 내용은 이전 개발자 블로그에서 찾아볼 수 있습니다. 간단하게 설명하면, 1,000대의 함선을 균일한 간격으로 배치하고 테스트하는 것입니다. 함선들이 서로 공격을 시작하면 정말 장관이 펼쳐집니다! 이러한 테스트로 시스템 변경 전후의 성능 향상을 확실하게 테스트할 수 있죠.
여러 하드웨어에서 테스트를 실행하면 DirectX 12 환경에서 대체로 10~30% FPS 향상을 보입니다. 그 중에 AMD 6800XT 시스템은 4k 환경 테스트에서 FPS가 무려 최대 52%나 향상되기도 했습니다.
macOS는 조금 다릅니다. 2020년에 Apple은 'M1' 시스템 온 칩(SoC) 시스템을 출시했습니다. CPU와 GPU가 한 칩에 설치된 시스템이죠. 이 칩의 특징은 CPU와 GPU 성능의 균형이 잘 맞춰져 있고 일반적인 Windows 시스템보다 CPU와 GPU가 유기적으로 작동하는 것입니다. 또한 대부분의 macOS 사용자는 GPU의 한계까지 성능을 끌어내는 고해상도 모니터를 사용합니다. 4k 이상의 고화질 환경에서도 성능 저하가 거의 없으며 1920 x 1200 해상도 등의 낮은 해상도 환경에서는 FPS가 25% 이상 높아집니다.
일부 시스템의 EVE Probe 테스트 결과를 예시로 보여드리겠습니다.
CPU & GPU | 해상도 | 개선 전 FPS | 개선 후 FPS | FPS 증가량(%) |
i7-7700 CPU & GTX 1060 | 1920 x 1080 | 40 | 53 | 32% 증가 |
Ryzen 7 5800X & Radeon RX 6800 XT | 3840 x 2160 | 46 | 70 | 52% 증가 |
i7-11700 & RTX 4070 Ti | 3840 x 2160 | 44 | 61 | 38% 증가 |
Ryzen 7 7800X3D & Radeon RX 7800 XT | 3840 x 2160 | 60 | 68 | 13% 증가 |
Mac M1 Max | 1920 x 1200 | 34 | 43 | 26% 증가 |
9년 전 출시된 GTX 1060이 1,000대의 함선을 최고 그래픽 설정으로 렌더링하려면 어려운 일일 것입니다. 이렇듯 FPS를 높이려면 그래픽 설정을 낮은 단계로 변경하는 방법도 있습니다. 몇 가지 조정만 하면 쉽게 60FPS를 달성할 수 있죠. 렌더링할 장면이 복잡하고 그래픽 카드가 오래전에 출시된 것을 감안하면 정말 대단한 일입니다!
이번 성능 향상 업데이트는 3월에 진행됩니다. EVE 런처에서 DirectX 12로 설정하면 적용될 것입니다. DirectX 12를 사용할 수 없는 PC를 사용하더라도 DirectX 11에 맞춘 소규모 향상 업데이트가 진행됩니다.
다음 목표는?
GPU 기반 처리를 실현하려 Trinity를 전반적으로 다시 설계해야 했지만, 이번 개선을 통해 새로운 기능을 추가하고 성능을 향상시켰으며 그래픽 품질을 더 높일 수 있는 기반을 마련할 수 있었습니다. 작년 대규모 테스트에서 업스케일링 및 레이 트레이싱 등의 그래픽 품질 향상을 간접적으로 경험할 수 있었습니다. 이번 Trinity 개선 사항은 먼저 테스트를 진행하고 Tranquility 서버에 적용하게 되었습니다. 작년 및 지난 주말에 진행된 대규모 테스트에 참여하신 모든 캡슐리어 여러분에게 감사한 마음을 전합니다. 여러분의 참여가 큰 도움이 되었습니다!
이제 GPU를 더 효율적으로 사용할 수 있어 클라이언트가 더 높은 FPS로 게임을 구동하고 최종적으로 GPU 종속 연산을 할 수 있습니다. 업스케일링 시스템도 이러한 환경에서 더 높은 FPS를 보일 수 있죠. 더 자세한 내용은 다음 개발자 블로그에서 살펴보겠습니다.
이번 개발자 블로그를 마지막으로 EVE Evolved 소식은 잠시 멈추겠습니다. EVE가 어떻게 발전했는지 즐겁게 알아보셨기를 바랍니다. 하지만 뉴에덴의 진화는 절대 끝나지 않습니다. 언제나 더 먼 곳을 향해 나아가겠습니다. 안전하고 호기심 넘치는 비행되시길 바랍니다.
o7