2014-5-19

언리얼 엔진 4 와 리눅스

By * Dmitry Rekman

과거 언리얼 엔진에 리눅스가 지원된 적이 있기는 했지만, 언리얼 엔진 4 에도 리눅스는 저희가 지원하고자 하는 일등급 플랫폼입니다. 리눅스 플랫폼 관련 저희의 계획은, 내부 프로젝트와 몇몇 협력사 프로젝트의 필요 사이의 균형을 맞추며 늘어가는 리눅스 커뮤니티의 요구를 수용하는 것입니다. 이는 언리얼 엔진 4 리눅스 개발에 있어서 크게 (저마다의 난제를 지닌) 네 영역으로 옮겨가고 있습니다:

  • 탄탄하고 안전하면서 CPU 효율도 높은 게임 서버
  • 모든 기능이 포함된 리눅스 클라이언트 지원
  • 기능적으로 풍부한 네이티브 리눅스 개발 툴
  • 리눅스를 타겟으로 쉽게 잡을 수 있도록 윈도우와 Mac OS 상에서의 툴 강화

언리얼 엔진 4 가 리눅스를 지원한다고 하면, 처음 세 가지만 떠올리기 쉽습니다. 그러나 리눅스를 게임 개발 업계에서 일반적인 플랫폼으로 부상시키고자 한다면, 기존 게임 회사의 작업방식에 매끄럽게 통합될 수 있도록 하여 리눅스 버전 게임 발매 비용을 최소화시켜야 합니다. 그것이 직관적으로 약간 어긋나 보이기는 해도 탄탄한 윈도우 및 Mac OS 툴이 필요한 이유입니다. 그래야 프로젝트 컴파일과 패키징을 다시 하는 것만으로 누구나 리눅스를 타겟으로 잡을 수 있기 때문입니다. 이것이 바로 네이티브 개발 작업을 더욱 쉽게 만들기 위한 작업과 아울러 크로스 컴파일 작업의 착수 및 계속적인 지원을 계획중인 이유이기도 합니다.

리눅스가 더욱 폭넓은 견인력을 발휘하도록 하기 위해서는 이렇게 크로스 툴을 가지고 기존 개발 환경을 이용하여 리눅스(, 그리고 특히 SteamOS)를 타겟으로 삼을 수 있는 능력이 필요하다고 믿습니다.

커뮤니티 참여

두 달 전 4.0 을 발매했을 당시는 리눅스 데디케이티드 서버만 지원했었으며, 이제는 패키징된 게임 실행까지 (독립형 게임 및 클라이언트 모두) 공식 지원되고 있습니다. SteamOS 를 염두에 두었기에, 윈도우에서의 크로스 컴파일 개발 방식을 공식 지원하도록 하는 x86-64 아키텍처를 의식적으로 고수해 왔습니다 (Mac OS 툴체인은 나중에 추가시킬 예정입니다). 그 프로세스에 대한 문서가 (솔직히 말씀드려 부족하기는 하지만) community wiki 를 통해 유지되고 있습니다.

말씀드릴 필요도 없이, 활기찬 리눅스 커뮤니티는 처음서부터 우렁찬 목소리를 내었습니다. 언리얼 엔진이라는 야수가 풀려나자마자, 열정적인 개발자들은 (저희보다 훨씬 큰 회사에 근무하시는 분들도 포함해서) 빠르게 느슨해진 고삐를 틀어쥐고 바로 자신만의 독창력을 발휘하기 시작, 개발 툴이 리눅스 플랫폼에서 실행되도록 하는 데 집중했습니다. 물론 그런 부분이 저희 계획에 있었(고 또 있)지만 (저희가 최근 공개한 엔진 로드맵 참고), 정말 솔직하게 이렇게나 빠를 줄은 몰랐습니다. 결국 커뮤니티 덕에 리눅스에서 언리얼 에디터가 실행되고야 말았습니다.☺

여기서 커뮤니티의 노력을 가장 활발히 주도해 주신 분들의 이름을 언급하지 않을 수가 없습니다:

물론 Freenode 의 #ue4linux IRC 채널과 저희 포럼을 자주 찾아주시는 분들이 많이 계십니다. 풀 요청이나 (제작진 목록에 반영하겠습니다), 피드백, 소중한 조언을 해 주신 그 모든 분들께 대단히 감사드립니다! 자유 시간을 할애하여 리눅스용 언리얼 엔진 4 를 개선시키는 데 도움을 주신 Google, Red Hat, MIT 분들, 뵙게 되어 영광이었습니다! 또한 DarkSide 분들께, 특히 어깨를 맞대고 UE4 리눅스 지원 작업을 함께 해 준 Michael Liebenow 에게 특별한 감사의 마음을 전합니다.

가 보지 못한 길

AAA 급 게임 엔진을 막 실험용으로 쓸 수 있다는 것은, 저희나 오픈 소스 커뮤니티에도 득이 되는 일입니다. 리눅스 소프트웨어군(과 물론 드라이버 포함) 컴포넌트 다수에 중점을 두고 있기에, 가끔씩 개선되는 기능이 있기도 합니다 (예: Valve 의 매우 편리한 OpenGL 디버거). 폭넓은 분야의 프로젝트를 만날 것을 기대하겠습니다!

컴파일러에 관련된 모든 종류의 연구에 저희 엔진이 매우 적합한 환경인 것으로 믿고 있으며, 특히나 가장 최신의 C++11 기능을 수용하고자 하는 적극적인 의지가 있다는 것을 감안하여, gcc 와 clang 커뮤니티 모두 저희의 방대한 코드 베이스를 활용할 것으로 희망합니다.

리눅스 플랫폼에서 언리얼 엔진 4 로 하고자 하는 작업이 너무 많은데, 시간이 부족한 것이 아쉬울 따름입니다:

  • 십 (또는 백) 단위 CPU 의 대규모 NUMA 머신에 게임 서버를 실행하고 그 활용 방법을 분석하여 언리얼 엔진 4 의 범위성(scalability) 개선
  • Loongson 같이 약간 이국적인 아키텍처에 이식하여 무슨 일이 발생하는지 확인
  • GCW Zero 핸드헬드 또는 Raspberry Pi 같은 리눅스 기반 디바이스로 이식 (과거 부분 작업을 한 적이 있기에, 써드 파티 라이브러리 제작에 도움이 될 수 있습니다.)
  • Phoronix Test Suite 에 포함시킬 수 있는 (라이선스에 의하면 소스나 툴을 배포하지만 않는 한) 무료로 사용가능한 벤치마크 제작 및/또는 리눅스 그래픽 드라이버 개선에 사용
  • 다른 *nix (FreeBSD, Solaris) 로 이식

그리고 물론, UE4 커뮤니티 여러분께서도 앞서갈 수 있는 기회가 있습니다. 언리얼 엔진 4 리눅스 게임을 처음 발매하는 분은 어떤 분이 될지, 기대가 큽니다!☺

여러분의 생각을 듣고싶습니다. 남기실 말씀이 있는 경우, 저희 네이버 카페 또는 포럼에서 (영문) 토론에 참가해 보시기 바랍니다!

Recent Posts

2018년 4월 NVIDIA Edge 프로그램 수상자

4월에도 NVIDIA Edge 프로그램에 멋진 작품들이 많이 제출되었으며, 그 중에서 세 개의 작품을 뽑아 수상작으로 선정하였습니다. ...

언리얼 엔진으로 BMW 차량 디자인에 혼합 현실 구현

리얼타임 기술과 VR이 자동차 제조의 새로운 시대를 열고 있는 가운데, 자동차 디자인 분야는 빠르게 변화하고 있습니다. BMW와 MIN...

스모 디지털이 말하는 닌텐도 스위치 게임 출시하기

언리얼 엔진으로 Snake Pass 를 개발한 스튜디오가, 닌텐도 스위치 플랫폼으로 게임을 발매하는 것에 대해 이야기합니다.