IT Insight

메타버스 세계를 만드는 핵심 플랫폼, '유니티'와 '언리얼'

2021. 10. 18. 09:30

메타버스는 최근 가장 뜨거운 키워드입니다. 메타버스는 3차원 가상세계를 의미하는데요. 우리에게 친숙한 ‘포켓몬 고’ 게임을 생각하면 메타버스의 모습을 쉽게 떠올릴 수 있습니다. 최근 기존 메타버스 플랫폼을 활용하는 사례가 늘고 있는 것은 물론 많은 기업이 메타버스 서비스를 직접 개발하겠다고 나서고 있습니다. 메타버스가 주목받으면서 AR(증강현실), VR(가상현실), 아바타, 3D 게임, 디지털 트윈도 함께 관심을 받고 있습니다.


전 세계 수억 명 이상의 사용자가 사용하는 로블록스나 마인크래프트, 제페토는 대표적인 메타버스 플랫폼입니다. 이 안에서는 가상세계에서 3D로 탄생한 캐릭터가 사용자를 반깁니다. 이곳에서는 가상세계에서 콘서트도 열리고 수업과 회의도 진행합니다. 페이스북은 아예 메타버스 기업이 되겠다고 선언했습니다. 이처럼 모두가 주목하는 메타버스 세계는 어떻게 만들 수 있을까요? 3D 기반의 가상세계를 만들고자 한다면 핵심 엔진이 필요합니다. 

제페토 3D 제작 (출처: 제페토 스튜디오) 


크로스 리얼리티(Cross Reality, XR)는 가상현실, 혼합현실과 증강현실을 아우릅니다. XR 콘텐츠를 통해 사실적인 몰입형 경험을 사용자에게 제공하려면 높은 프레임과 렌더링된 수준 높은 개발이 뒷받침되어야 합니다. XR 분야는 게임 개발과 많은 유사성을 공유합니다. 때문에 게임 엔진이 주요 개발 소프트웨어로 자리 잡았습니다. XR 플랫폼과 콘텐츠를 개발하기에 적합한 게임 엔진은 다양한 XR 솔루션을 제공합니다. 


메타버스 플랫폼과 다양한 XR 콘텐츠 개발에 가장 널리 알려지고 많이 사용하는 게임 엔진은 ‘유니티(Unity)’와 ‘언리얼(Unreal)’이 대표적입니다. 게임 엔진은 그래픽을 하드웨어에 렌더링하고 3D 작업이 가능하도록 솔루션을 제공하는 소프트웨어입니다. 게임 엔진은 3D 기반의 입체감을 위해 빛의 변화, 명암과 객체의 움직임을 동시에 처리해야 합니다. 원하는 대로 동작을 구현할 수 있고 음악이나 소리를 입히는 작업도 함께 진행합니다. 


모바일에서 구동하는 간단한 게임부터 그래픽이 좋은 고사양 게임까지 수많은 게임은 게임 엔진으로 개발합니다. 유니티와 언리얼은 원래 3D 게임을 개발하기 위해 만들어졌습니다. 하지만 최근엔 XR과 메타버스 개발에 활용되면서 게임 못지않은 새로운 시장을 개척하고 있습니다. 


물론 두 엔진을 사용하지 않고 자바스크립트를 사용해 웹용 XR을 구축할 수도 있습니다. WebXR 웹에 XR을 사용할 수 있도록 만듭니다. 게임 엔진과는 다른 개발 도구와 개발 생태계를 활용합니다. WebXR도 독자적인 생태계를 구축하고 있습니다. 


현재 대부분의 3D 게임과 XR 콘텐츠, 메타버스 플랫폼은 유니티와 언리얼로 개발하는 것이 대세입니다. 증강현실 기능이 탑재된 3D 게임인 포켓몬 고는 유니티로 개발했고, 대표적인 메타버스 플랫폼인 제페토 역시 유니티를 사용합니다. 한편, 세계적인 게임 중 하나인 포트나이트은 언리얼을 사용했습니다. 언리얼은 VR 전용 건축 설계 도구를 개발하고, 토요타의 자동차 설계를 위한 VR 개발에 사용하는 등 다양한 XR 개발 사례를 만들고 있습니다. 


유니티 XR 툴킷 (출처: Unity 공식 블로그) 


현재 게임 엔진의 수는 수십 가지 이상이 존재하지만, 가장 널리 사용되면서 빠르게 개발을 진행하는 엔진으로는 유니티와 언리얼을 꼽을 수 있습니다. 마치 모바일에서 구글의 안드로이드와 애플의 iOS처럼 게임 엔진 업계를 이끌고 있죠. 

 

유니티가 널리 알려진 큰 이유는 모바일 애플리케이션 때문입니다. 유니티는 모바일 애플리케이션 개발에 강점이 있습니다. 3D 관련 모바일 게임의 약 70%가 유니티로 만들어졌습니다. 빠른 개발과 모바일에 최적화돼 있지만, 언리얼보다 그래픽 품질이 떨어진다는 평을 받기도 합니다. 


그동안 유니티는 주로 인디 게임과 모바일 게임에 초점을 맞췄고 언리얼은 AAA 게임(많은 제작비를 투자하는 고사양 게임) 개발에 주로 사용됐습니다. 따라서 언리얼은 고사용 PC에서 그래픽 품질은 뛰어나지만 개발할 때 무겁다는 느낌을 받을 수 있습니다. 유니티는 플러그인 기반 아키텍처가 주를 이루지만 언리얼은 하나의 개발 플랫폼에서 개발이 이루어지는 형태에 가깝습니다. 


유니티는 2004년 등장 이래 접근성이 높고 빠른 개발이 가능하다는 장점을 유지하고 있습니다. 사용법이 간단한 편이고 직관적인 인터페이스로 많은 인디 게임 개발자와 XR 개발자가 사용합니다. 아이폰이 등장한 이후 iOS 개발까지 지원하면서 모바일에 대한 강점을 갖게 되었습니다. 


개인 사용자는 무료로 사용할 수 있고 라이선스 비용도 저렴합니다. 직관적인 인터페이스로 사용 편의성이 높아 많은 초보 개발자가 유니티를 선택합니다. 또한 자바스크립트를 지원해 접근성이 높다는 장점도 있습니다. 개발을 위한 지원은 각종 플러그인과 개발 리소스를 공유하는 스마트폰 앱스토어와 같은 ‘에셋 스토어(Asset Store)를 통해 이루어집니다. 유니티 자체 생태계를 구축하면서 개발 지식의 공유와 사용자를 확보하는 전략을 추구하고 있습니다. 

유니티 에셋 스토어 (출처: Unity 공식 블로그)


게임 회사 에픽게임즈의 포트나이트가 큰 성공을 거두면서 언리얼 엔진도 크게 성장했습니다. 1998년 등장한 언리얼은 뛰어난 그래픽 품질을 바탕으로 높은 완성도를 보여주고 있습니다. 이러한 특성 때문에 XR 개발에서도 품질 높은 3D 콘텐츠를 만들어낼 수 있습니다. 대부분 고사양의 PC 게임 개발에 사용하지만, 모바일 개발 영역도 집중하고 있어 유니티를 추격하는 발판을 마련하고 있습니다. 지금까지 약 200만 개 이상의 게임에 언리얼 엔진이 사용됐습니다. 


언리얼은 새 프로젝트를 만들 때 신속하게 시작할 수 있는 프로젝트 템플릿 세트를 제공해 사용자가 XR 개발에 쉽게 참여할 수 있습니다. XR 공간에서 언리얼의 또 다른 장점은 이러한 기본 템플릿에서 일반적인 물리 상호작용을 처리하는 방법입니다. 유니티에서 물리 상호작용을 만드는 것은 예상보다 어렵습니다. 가상현실에서 이러한 물리 상호작용 메커니즘은 빈번하게 사용됩니다. 언리얼은 템플릿을 통해 추가적인 리소스나 코딩을 통하지 않고 개발할 수 있도록 지원합니다. 


두 엔진의 가장 큰 차이점은 서로 다른 프로그래밍 언어를 사용한다는 것입니다. 유니티는 C#을 사용해 코드를 작성하고 언리얼에서는 C++과 블루프린트 스크립팅 시스템(시각적 프로그래밍 언어로 블록들을 코딩 없이 마우스로 프로그래밍 가능)을 사용합니다. C#은 배우기 쉽고 간결하고 일반적으로 웹 개발에 사용합니다. 반면, C++는 운영 체제, 데스크톱 애플리케이션 및 임베디드 시스템을 포함한 광범위한 용도로 사용됩니다. 언리얼은 소스 코드를 공개했지만, 유니티는 소스 코드를 제공하지 않는 점도 차이점입니다. 

언리얼의 블루프린트 (출처: unrealengine.com)



C#과 C++ 중 어느 언어가 더 나은지에 대해서는 다양한 의견이 있습니다. 하지만 사용자가 친숙한 언어에 따라 개발 접근 난이도가 다르므로 어느 것이 더 나은지는 중요하지 않습니다. 다만 C#과 유니티는 초보자에게 조금 더 쉬울 수 있습니다. C# 코드가 더 간단하고, 많은 VR, AR 개발 회사에서 C#을 주로 사용하고 있기 때문입니다. 범용적으로 사용된다는 것은 개발 커뮤니티에서 다양한 코드, 플러그인 등 리소스를 지원받을 수 있다는 것을 뜻합니다. 특히 유니티는 에셋 스토어에서 다양한 리소스를 얻을 수 있습니다. 


엔진의 성능을 비교하기는 쉽지 않습니다. 지금까지 개발된 성공한 게임 레퍼런스, 그래픽 품질, 개발 난이도, 개발자 커뮤니티, 접근성 등 많은 변수가 있습니다. 어느 엔진을 사용하더라도 메타버스와 XR세계를 구현하기에는 충분하며 모든 결정은 사용자에게 달려 있습니다. 
 

유니티는 AR 시뮬레이션 환경과 템플릿을 제공하는 MARS 에디터와 같이 메타버스와 XR 세계를 만들기 위한 노력을 지속하고 있습니다. 언리얼도 새로운 프로젝트를 빠르게 시작할 수 있는 템플릿 세트를 제공해 사용자가 XR 개발에 쉽게 참여할 수 있도록 지원합니다. 


유니티와 언리얼 같은 게임 엔진이 메타버스에서 강점을 갖는 이유는 3D, XR 세계의 콘텐츠를 높은 그래픽 퀄리티와 부드러운 움직임으로 만들어낼 수 있는 도구이기 때문입니다. 과거와 다르게 실시간 렌더링을 통해 빠른 개발이 가능하고 비용도 절감할 수 있습니다. 다양한 리소스가 준비돼 있어 초심자도 쉽게 개발을 시작할 수 있는 부분도 장점입니다. 


이제 유니티와 언리얼은 게임 엔진에서 산업용 개발 엔진으로 진화하고 있습니다. 메타버스와 디지털 트랜스포메이션을 추구하는 산업 영역에서도 유니티와 언리얼의 영향력이 커지고 있습니다. 유니티와 언리얼은 자동차, 물류, 건설, 교육 등 다양한 분야에서 사용됩니다. 예를 들어, 제약 회사는 신약 개발을 위해 화학, 분자 데이터를 시각화하여 언리얼로 개발한 프로그램에서 시뮬레이션하는 과정을 진행합니다. 자동차 회사는 자동차 제조, 생산 과정의 작업자 훈련을 위해 언리얼로 VR 교육 프로그램을 개발해 직원 교육에 활용합니다. 


실제 오프라인 환경과 똑같은 가상 세계를 구현하고, 실시간으로 동작하는 객체를 3D 그래픽으로 만들어 물리 상호작용이 일어나도록 만드는 디지털 트윈도 유니티와 언리얼을 통해 만듭니다. 그래픽과 특수효과가 중요한 애니메이션이나 영화, 차량 디자인, 건축물 디자인 등에도 두 엔진은 핵심 역할을 맡습니다. 

언리얼로 만든 영화 그래픽 (출처: unrealengine.com)


최근 몇 년간 두 엔진은 약점을 해결하고 강점을 강화하며 비약적으로 발전해 왔습니다. 두 엔진은 이제 복잡한 XR 개발에 리소스를 쌓아가고 있으며, 높은 그래픽 퀄리티를 제공합니다. 크로스 플랫폼 애플리케이션 개발도 가능하고, 특정 엔진에 종속될 필요도 없습니다. 


만약 새로 개발을 시작하는 경우엔 유니티가 난이도나 사용 편의성 측면에서는 좋은 선택이 될 수 있습니다. 대규모 게임 개발이나 실사 그래픽을 더 중요하게 생각한다면 언리얼이 적합합니다. 엔진 자체의 사양과 무게 차이가 있어서, 빠르게 개발하고 수정하는 경우 유니티가 유리하고, 언리얼의 경우 사양이 낮으면 컴파일에 수십 분이 소요될 수도 있습니다. 생산성과 비용 측면에서 이러한 요소도 고려해야 합니다. 


유니티와 언리얼 모두 개인용 엔진을 무료로 제공하면서 엔진 개발 생태계 확산에 앞장서고 있습니다. 과거에는 모바일은 유니티, AAA 게임은 언리얼과 같은 공식이 있었지만, 지금은 두 엔진 모두 단순한 게임 제작 도구에 머물지 않습니다. 앞으로 메타버스 세상이 확장되고, XR 개발이 더욱 활발해질수록 두 엔진은 계속 성장할 전망입니다. 가상세계, 메타버스의 콘텐츠를 제작하고 커뮤니티를 구성하는 핵심 ‘개발 플랫폼’으로 진화하고 있습니다.

 


글 ㅣ 윤준탁 ㅣ  IT 저널리스트

 

*해당 콘텐츠는 저작권법에 의해 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.
*해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.

 

 

Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS

댓글을 달아 주세요

위로