Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 게임이 끊기는 이유와 해결 방법 완벽 정리

리눅스에서 게임이 끊기는 이유와 해결 방법 완벽 정리

리눅스는 최근 몇 년간 게이머들에게 놀라운 발전을 이뤄냈습니다. 열렬한 전략 게임 팬부터 경쟁적인 FPS 플레이어까지, 모든 장르의 게이머가 리눅스를 충분히 활용할 수 있는 환경이 조성되고 있습니다. 그럼에도 불구하고 프레임률 일관성을 비롯해 여러 요인에서 비롯되는 게임 호환성 문제는 여전히 남아 있습니다. 특히 시스템 자원을 많이 요구하지 않는 게임조차, 심지어 리눅스용으로 공식 포팅된 게임마저도 이유 없이 성능이 떨어지는 경우가 많은데요. 이번 글에서는 그 원인을 하나씩 살펴보겠습니다.

때로는 OpenGL이 유일한 선택지일 때도 있다

OpenGL은 모든 것을 별도로 포팅할 필요 없이 크로스 플랫폼 3D 렌더링을 구현할 수 있는 훌륭한 방법입니다. 개발자가 Windows, Linux, Mac 세 플랫폼에 게임을 출시하려 한다면, 가장 손쉬운 전통적 방식은 사용자 수가 가장 많은 Windows(DirectX)에 개발 역량을 집중하고, 나머지 플랫폼에는 OpenGL 기반으로 포팅하는 것입니다.

리눅스에서 게임이 끊기는 이유와 해결 방법 완벽 정리

문제는 OpenGL이 DirectX나 Vulkan처럼 GPU와 직접적으로 통신하지 못한다는 점입니다. 그 결과 CPU에 더 많은 부담이 걸리고, 많은 상황에서 성능이 다소 저하됩니다.

현재는 Mac에서도 MoltenVK가 제공되어 주요 운영체제 어디서든 Vulkan을 사용할 수 있기 때문에, 어떤 API를 선택할지는 개발자의 재량입니다. 신규 개발자라면 OpenGL을 완전히 배제하고 Vulkan만 사용하는 것도 가능합니다. 하지만 안타깝게도 리눅스로 포팅된 상당수 게임은 여전히 OpenGL에 의존하고 있으며, 고성능이 중요한 상황에서 DirectX의 성능을 따라가기 어렵습니다.

아직 극복해야 할 과제가 남은 Vulkan

리눅스 진영이 DirectX에 맞서 내놓은 답이 바로 Vulkan입니다. 170여 개 조직과 독립 개발자들이 커뮤니티 차원에서 모든 플랫폼에서 사용 가능한 고성능 로우레벨 API를 만들기 위해 함께한 결과물이죠. 2016년 2월 출시 이후 Vulkan은 그래픽 개발자들에게 강력한 '게임 체인저'로 자리 잡았으며, 그 규모 대비 훨씬 뛰어난 성능을 보여주며 많은 경우 DirectX를 능가하기까지 했습니다.

하지만 Vulkan으로 포팅된 리눅스 게임에서 스터터링(끊김 현상)을 겪고 있다면, 이 위업이 크게 와닿지 않을 수 있습니다. 실제로 Vulkan에도 단점이 있는데, 화면 출력 안정성 문제가 대표적입니다.

HWRIG가 벤치마킹 도구를 통해 Windows의 DX12와 Vulkan의 성능을 비교해 발표한 분석에 따르면, Vulkan은 DX12보다 평균 프레임률이 약 5% 높지만, 최저 프레임률은 더 낮게 떨어지는 경향을 보입니다.

실제 사용 환경에서 이것이 의미하는 바는, 그래픽 부하가 심할 때 끊김 현상이 더 자주 발생한다는 것입니다. 다만 게임이 처음부터 Vulkan을 염두에 두고 설계되었다면, 포팅용으로 급조된 경우와 달리 훌륭한 성능을 낼 수 있다는 점은 기억할 가치가 있습니다.

좋은 예가 2021년 2월 출시된 서바이벌 샌드박스 게임 발하임(Valheim)입니다. 이 게임을 Vulkan으로 강제 실행하면 DX12 대비 눈에 띄게 성능이 향상됩니다.

GPU 문제가 아닐 수도 있다

Windows와 마찬가지로 리눅스에서도 CPU 성능은 시스템의 전원 관리 설정에 영향을 받습니다. GPU를 크게 사용하지 않으면서 CPU 의존도가 높은 게임(예: 하츠 오브 아이언, 유로파 유니버설리스 같은 대전략 게임)을 즐기다 성능 저하를 겪고 있다면, 리눅스가 CPU를 'powersave' 거버너로 설정했을 가능성이 있습니다. 배터리로 작동 중인 노트북에서는 특히 자주 발생합니다.

리눅스에서 게임이 끊기는 이유와 해결 방법 완벽 정리

대체로 최신 CPU와 powersave 거버너는 잘 어울리지만, 게임 중 입력 지연이 눈에 띄게 발생하는 경우가 간혹 있습니다. 이를 해결하려면 auto-cpufreq 도구를 활용해 보세요. 노트북의 배터리 효율을 유지하면서도, 성능이 가장 필요한 순간에 거버너를 'performance'로 빠르게 전환해 CPU 성능을 끌어올릴 수 있습니다.

리눅스 포팅은 여전히 (대체로) 사후 고려사항

지난 10년간 꾸준히 상승해 현재 데스크톱 OS 점유율 약 2.4%를 기록하고 있지만, 이는 Apple과 Microsoft라는 거대 기업과 경쟁하기에는 여전히 미미한 수치입니다. 안타깝게도 이 때문에 많은 게임 개발사는 최적화에 깊은 공을 들이지 않은 채 빠르게 리눅스 버전을 포팅하곤 합니다. 출시 마감일을 맞추는 것이, 전체 플레이어의 2%대에 불과한 리눅스 유저를 만족시키는 일보다 우선순위가 되는 것이죠.

그럼에도 성능 문제를 제외하면, 2010년대 중반 이후 리눅스 게이밍 커뮤니티는 리눅스 개발자들과 게임 퍼블리셔들의 노력 덕분에 플레이 환경과 성능 면에서 상당한 발전을 이뤄냈습니다.

그래픽 드라이버 문제

포팅된 게임이 다른 운영체제 버전과 동일한 성능을 내지 못한다면, 가장 먼저 확인해야 할 것은 그래픽 드라이버입니다. Nouveau나 기타 기본 오픈소스 드라이버를 사용 중이라면, 그것이 가장 유력한 원인일 가능성이 높습니다.

다른 제약이 없다는 전제하에 최상의 프레임률을 얻으려면 GPU용 최신 드라이버를 설치해야 합니다. Ubuntu 등 Debian 계열 리눅스 배포판에서 Nvidia 그래픽카드를 사용 중이라면, 독점(proprietary) 드라이버 설치 방법을 안내하는 가이드를 참고해 보세요.

듀얼 모니터 문제

배포판에서 듀얼 모니터를 사용 중이고 게임 FPS가 유독 낮아 답답하다면, 모니터 하나를 분리한 뒤 게임을 다시 실행해 보세요. 갑자기 매끄러운 성능이 나오나요?

리눅스에서 게임이 끊기는 이유와 해결 방법 완벽 정리

그렇다면 Nvidia 그래픽 설정을 조금 조정해 이 문제를 해결할 수 있습니다. 듀얼 모니터 환경에서는 디스플레이 스케일링이 제대로 작동하지 않는 경우가 종종 있는데, 이 작업을 GPU 자체에 맡기면 도움이 됩니다.

방법은 다음과 같습니다. Nvidia 제어판을 연 뒤 '데스크톱 크기 및 위치 조정(Adjust desktop size and position)' 메뉴로 이동하고, '스케일링 수행(Perform scaling on)' 항목의 드롭다운 메뉴에서 'GPU'를 선택하세요.

리눅스에서 게임이 끊기는 이유와 해결 방법 완벽 정리

이렇게 해도 성능 향상이 느껴지지 않는다면, 하드웨어에 다른 병목이 없는지 확인해야 합니다. 게임을 구동하면서 동시에 다른 모니터의 내용까지 렌더링할 수 있을 만큼 CPU 성능과 RAM이 충분한지 점검하세요. 최악의 경우, 하드웨어 병목을 해소할 때까지는 게임 실행 전에 두 번째 모니터를 끄는 수밖에 없습니다.

자주 묻는 질문

1. OpenGL은 일반적으로 나쁜가요?

Vulkan과 DirectX가 전반적으로 더 높은 성능을 보인다고 해서 OpenGL이 무의미해지는 것은 아닙니다. 정교한 그래픽 환경에 크게 의존하지 않는 게임(Factorio, EU4, HoI4 등)은 로우레벨 API가 제공하는 추가 성능이 필요하지 않습니다. 이런 경우 Vulkan으로 전부 이식하는 것은 개발 관점에서 비합리적이며, OpenGL처럼 단순한 도구를 사용하면 피할 수 있는 번거로움만 늘어납니다.

개발자 입장에서 Vulkan이나 DirectX 없이도 충분한 성능을 확보할 수 있다면, 출시 전 완성도를 높이고 출시 후 유지보수에 더 집중할 수 있습니다. 이는 플레이어에게 잘 보이지 않지만, 결과적으로 더 나은 게임 경험으로 이어지는 숨은 이점입니다.

2. CPU 거버너란 무엇인가요?

CPU 거버너는 운영체제가 CPU에 사용할 클럭 주파수 범위를 지시하는 메커니즘입니다. performance 거버너는 CPU가 필요한 만큼 전력을 마음껏 사용하도록 허용하는 반면, 절전(powersave) 거버너는 전력 소비를 우선시해 CPU에 제동을 겁니다.

3. 리눅스에서 게임 성능을 개선하는 다른 방법이 있나요?

이 글에서 소개한 방법 외에도 다음과 같은 방법들이 도움이 될 수 있습니다:

  • 드라이버를 최신 상태로 유지해 운영체제가 GPU와 가장 효율적으로 통신하도록 하세요.
  • 커널을 최신 버전으로 업데이트해 리눅스가 하드웨어와 안전하고 효율적으로 작동하도록 하세요.
  • KDE, GNOME, Budgie, LXDE 등 다양한 데스크톱 환경을 직접 사용해 보세요. 환경에 따라 성능 차이를 체감할 수 있습니다. 필자 역시 XFCE에서 그래픽 환경 관련 성능 문제를 경험했고, 같은 문제를 보고한 리눅스 사용자가 많아 이 데스크톱 환경은 언급하지 않았습니다.

마무리

균형 잡힌 시각으로 바라볼 필요가 있습니다. 리눅스는 게이머를 위한 완벽한 운영체제는 아니지만, 경쟁 OS보다 여러 면에서 훨씬 나은 면모도 갖추고 있습니다. 개발자들이 커뮤니티 내 리눅스 유저들을 더욱 진지하게 받아들이면서, 해당 OS를 위한 게임 최적화에도 점점 더 많은 노력을 기울이고 있습니다.

2000년대 초반의 흔들리던 시기를 지나며 리눅스는 여러 분야에서 괄목할 만한 발전을 이뤘고, 이제야 게임을 리눅스로 가져오고자 하는 이들을 환영하는 운영체제로서 꽃피우기 시작했습니다. 이 과정에서 Steam이 개발한 Proton의 공헌도 커야 합니다. Proton은 VKD3D 같은 라이브러리를 활용해 Windows 전용 게임을 리눅스에서 온전히 플레이할 수 있게 만들어 줍니다.

여러분도 참여할 수 있습니다. 좋아하는 게임의 토론 게시판을 찾아 리눅스 게이머로서 목소리를 내보세요. 개발자들이 자사의 비(非)Windows 사용자층이 단순한 통계상의 숫자가 아니라 실제 사람들이라는 사실을 인식하는 것이 중요합니다.

함께 읽으면 좋은 글: 게이밍에 적합한 모니터의 핵심 특징도 확인해 보세요.