-
Google Stadia 분석: Features(기능)편Analysis 2019. 5. 10. 18:57
What
Google Stadia는 2019년 GDC에서 구글이 발표한 클라우드 게임 플랫폼이다. 기술적으로는 유투브와 유사한 형태의 스트리밍 기술을 사용한다. 스트리밍 게임과 일반 게임의 관계는 현재의 스트리밍 음원 서비스와 과거 mp3 파일의 관계와 유사하다. 과거에는 mp3 파일 형태의 음원을 구입하고, 다운로드 받고, 이를 사용자의 기기에서 직접 재생한 반면에, 현재의 스트리밍 음원 서비스는 사용자의 기기에 파일 형태로 음원을 저장하지 않고 서버의 음원을 사용자의 기기로 전달하여 재생하는 형태를 띄고 있다. 기존 게임도 이와 유사하게 게임을 구매하고, 다운로드 받고, 설치하고, 최종적으로 사용자의 기기에서 직접 게임을 실행했다. 하지만 스트리밍 게임은 이와는 다르게 클라우드 서버에서 실행한 게임을 사용자의 기기에 전달하는 형태로 게임을 즐기는 방식이다.
스트리밍 게임이 이루어지는 과정을 들여다보면 다음과 같은 과정을 거치게 된다. 클라우드 서버에서 게임을 실행하고, 실행의 결과물인 화면과 소리를 사용자의 클라이언트 기기로 전송하고, 사용자는 클라이언트 기기에서 재생되는 화면과 소리를 통해 게임을 플레이하는 형태이다. 일견 유투브와 같은 비디오 스트리밍과 유사하지만, 서버에서 클라이언트 기기로 스트리밍 데이터가 일방향 전송되는 유투브와 차이는 사용자의 입력 전달이라는 과정이 추가된다는 점이다. 게임을 플레이하기 위한 화면 터치, 게임 컨트롤러, 키보드/마우스 등 사용자의 입력은 클라이언트 기기에서 클라우드 서버로 전송되고, 클라우드 서버에서 실행 중인 게임에 전달되어 반영된다. 이러한 과정이 반복적으로 일어나면 사용자는 자신의 클라이언트 기기에서 직접 게임을 실행하지 않아도 스트리밍을 통해 게임을 즐길 수 있다.
스트리밍 게임의 장점은 사용자의 클라이언트 기기에서 실행하기 어려운 고사양의 게임이나 타 플랫폼향의 게임을 즐길 수 있다는 점이다. 예를 나의 PC는 사양이 낮아 최신 게임을 실행하기 어려운 상태라고 하더라도, 스트리밍 게임을 통해서 고사양의 PC 게임을 즐길 수 있고, 더 나아가서 PC 게임이 아닌 게임 콘솔용 게임이나 모바일 게임도 즐기는 것이 가능하다.
반면 스트리밍 게임의 단점은 높은 Latency로 인한 스트리밍의 끊김 현상이 있을 수 있다는 점이 가장 큰 부분으로 지적된다. 게임은 실시간으로 플레이가 되어야 하기에 유투브와 같이 버퍼링 기술을 활용할 수 없다. 모든 화면과 소리를 실시간으로 사용자의 기기로 전송해야 한다. 사용자가 실시간으로 게임을 플레이 하던 중 게임의 끊김 현상이 발생하면 게임의 특성상 사용자 경험의 심각한 저하가 유발된다. 또, 스트리밍 게임을 운영하기 위해서는 고사양의 서버 인스턴스 비용과 네트워크 트래픽 비용이 발생하는데, 이는 높은 사용 요금으로 직결되기에 구매력이 낮은 사용자를 끌어들이기 힘든 점도 스트리밍 게임의 큰 단점 중 하나이다.
스트리밍 게임의 명백한 장점때문에 과거에도 Play Station Now, Game Pass, Geforce Now, Game Fly 등 크고 작은 게임 스트리밍 서비스가 다수 존재했다. 그리고 현재에도 스트리밍 게임을 위한 기반 기술이나 스트리밍 서비스를 제공하는 많은 업체들이 존재한다. 그런데 과거에 존재했거나 현존하는 대부분의 게임 스트리밍 서비스는 사용 가능한 클라이언트 기기의 제약이 있는 형태였고, 서비스에 따라 다르지만 사용 요금 역시 발생했다. 또한 네트워크 상황에 따라 높은 Latency가 나타나는 경우도 비일비재 했기에 게임 스트리밍 서비스는 일반화 되지 못했다.
Stadia는 기존과 다르게 웹브라우저가 작동하는 대부분의 클라이언트 기기에서 사용 가능한 게임 플랫폼으로 소개가 되었으며, 발표된 성능 역시 현존하는 어떤 스트리밍 게임 서비스보다 높은 수준이었다. 또한 과거 스트리밍 서비스에는 존재하지 않았던 다양한 신규 기능들을 포함하고 있음을 강조하였다. Stadia는 이러한 차별점으로 인해 게임 시장의 판도를 바꿀 수 있는 새로운 게임 플랫폼으로 주목을 받고 있다. 물론 Stadia가 상용화 되었을 때 현실의 서비스 환경에서 구글이 발표한 수준을 만족할 수 있을지는 지켜보아야 할 일이다.
Features
Cross Platform
Stadia의 발표 도입부에 가장 강조된 점은 Stadia는 Box가 필요없는 크로스 플랫폼이라는 점이었다. 클라이언트 기기의 종류에 상관없이 크롬브라우저가 설치된 기기라면 어디에서나 플레이 가능하다. 실제로 크롬북, 픽셀폰, 그리고 태블릿에서 끊김 없이 게임을 플레이하는 장면이 시연되었다. 비즈니스적인 목적이나 기술적인 이유로 구동 가능한 기기가 제한되었던 기존 게임 스트리밍 서비스와 비교하면 혁신적인 시도라고 할 수 있다.
이를 가능하게 하는 것이 크롬 브라우저를 통한 게임의 실행이다. 사실 스트리밍 서비스에서 스트리밍을 받는 대상 기기의 성능은 크게 중요하지 않다. 기기에서 가장 중요한 부분은 하드웨어를 통한 영상 디코딩 가속인데, 유투브의 등장으로 대부분의 기기에서 영상 디코딩은 하드웨어로 지원되고 있는 것이 현실이기 때문이다. 크롬브라우저 역시 기기의 디코딩 가속을 이용할 수 있기에 크롬브라우저에서 웹기반으로 충분히 스트리밍 기능을 제공할 수 있다. 단순히 특정 게임에 대한 링크를 공유하는 것만으로 크롬브라우저가 설치된 어느 기기에서도 즉시 게임을 플레이할 수 있다는 것은 충분히 매력적인 부분이다.
물론 통일된 크롬브라우저의 표면 밑에서는 기기간의 호환성을 유지하기 위한 숨은 노력이 많이 필요하지만, 크로스 플랫폼 지원을 통해 얻을 수 있는 이득에 비하면 적은 비용이라 할 수 있다. 3D 렌더링이 필요한 실제 게임 구동과 달리 웹브라우저에서 스트리밍에 필요한 호환성 지원은 상대적으로 작은 부분이기에 더욱 그렇다.
구글의 이러한 크로스 플랫폼 접근은 아마 다른 클라우드 게임 서비스에도 많은 영향을 줄 것이다. 자사의 스마트폰에서만 가능했고 최근에야 아이폰으로 확장된 플레이스테이션 스트리밍이나 Windows가 탑재된 노트북에서만 가능했던 마이크로소프트의 Game Pass 등의 서비스도 지원 가능한 플랫폼을 늘리려는 노력을 시도하지 않을까 예상해 본다. 특히나 마이크로소프트는 이미 xCloud라는 게임 스트리밍 플랫폼을 준비중이라고 밝히고 있는데, xCloud는 Game Pass보다 훨씬 폭넓은 기기를 지원하게 될 것 같다.
Realtime Rigidbody Physics
Stadia의 멀티플레이어 기능 소개 초반에 도시를 배경으로 날아가는 캐릭터가 소개된다. 그리고 보이는 모든 물건을 파괴할 수 있다는 설명이 곁들여진다. 구글은 Realtime Rigidbody Physics를 통해 이런 연출이 가능함을 말했다. 일반적으로 게임을 개발할 때 기본이 되는 배경을 Scene이라고 부른다. 이 Scene에는 다양한 Object들이 등장하고 이들간의 상호작용이 우리가 보게되는 게임의 장면들을 구성한다. 게임에 등장하는 어떤 사물을 파괴하려면 그 사물을 표현하는 Object에 대한 연산이 필요하다. 이 연산 과정에서 물리적인 상호작용을 처리할 수 있는 Rigidbody가 필요한데, 파괴하고자 하는 Object에 Rigidbody가 포함되어 있어야 그 물체의 파괴를 표현할 수 있다. 문제는 이 Rigidbody의 연산에는 많은 컴퓨팅 파워가 필요하기 때문에, Scene에 등장하는 모든 Object에 Rigidbody를 포함할 수 없다는 점이다. 그래서 일반적으로 게임 내에서 물리적인 상호작용이 필요한 Object에만 Rigidbody를 적용한다. 시중에 나와 있는 게임을 플레이하다 보면 상호작용할 수 있는 물체와 그렇지 못한 물체를 경험할 수 있다.
이제 구글이 언급한 "보이는 모든 물건을 파괴할 수 있다"는 문장을 살펴보면 이것이 왜 강조되었는지를 알 수 있다. 화면에는 도시가 등장하고 있다. 이 상황에서 도시의 모든 물건을 파괴할 수 있다는 말은 곧 "보이는 모든 물건에 Rigidbody가 포함되어 있다"라는 말과 동치이다. 게임 개발 경험이 있는 사람이면 이것이 얼마나 많은 컴퓨팅 파워를 필요로 하는 일인지를 쉽게 알 수 있다. 구글은 여러 개의 GPU를 활용한 Realtime Rigidbody Physics 기술을 통해 이런 연출이 가능하다고 말한다. 그러나 아무리 많은 GPU를 사용하더라도 모든 Object에 Rigidbody를 넣는 것은 무모한 시도이기에 상호작용이 가능한 Object를 실시간으로 선별하여 해당되는 Object들의 Rigidbody를 활성화시키는 기술로 추정된다.
그러나 실제로 이런 연출을 게임 내에서 한다면 컴퓨팅 파워의 소모가 엄청날 것이고, 연산이 가능하다 하더라도 게임 개발자는 모든 물체의 상호작용에 대한 구현을 해야 하며, 그래픽 디자이너는 물체의 파괴를 고려한 엄청난 양의 그래픽 리소스를 제작해야 할 것이다. 사실 이렇게 게 많은 노력을 투입하지 않더라도 필요한 장면들에 대해서는 곧이 곧대로 Rigidbody를 활용하지 않고 비슷한 연출을 할 수 있다. 게임 개발자의 입장에서 굳이 Realtime Rigidbody를 활용한 연출을 할지는 지켜보아야 할 일이다. 그 정도의 개발 리소스를 게임 내의 다른 영역에 투입하면 훨씬 더 좋은 컨텐츠를 만드는 것이 가능하지 않을까 하는 의문이 남는다.
Stream Connect
멀티플레이어 기능의 일환으로 구글은 Stream Connect라는 기능을 소개한다. 하나의 플레이어가 헌터로서 게임을 하는 도중에 다른 플레이어가 게임에 참여해 관찰자 역할을 수행한다. 추가된 플레이어는 자기 시점의 Camera View를 실시간으로 배당받아 게임에 참여하게 된다. 두 플레이어는 같은 게임을 플레이하게 되며 서로간의 상호 작용이 가능하다. 이와 같은 형태로 실시간으로 Camera View의 갯수를 늘려나갈 수 있다.
기능적인 면에서 보자면 Stream Connect는 전통적인 멀티플레이어 게임의 사용 시나리오와 다르지 않다. 추가적으로 참여하는 플레이어와 기존 플레이어의 상호작용을 위해서는 어차피 게임 개발자가 해당 상황에 대한 구현을 해야 하기 때문에 특별히 Stadia만의 특화 기능이라고 보기에는 무리가 있다. 다만 추가되는 플레이어의 화면 연산이 기존 플레이어에게 할당된 GPU가 아닌 물리적으로 다른 GPU에서 독립적으로 수행이 된다는 점이 기술적으로 독특한 부분이다. 이와 함께 서로 다른 플레이어들 간의 동기화를 유지하는 기술을 적용했다고 구글은 이야기 했다. 구글의 언급이 실제로 구현된다면 Stream Connect를 활용해서 사용자가 추가되더라도 게임이 느려지는 일이 없이 자연스러운 멀티플레이어 게임이 가능해 지리라 예상된다.
Style Transfer
Style Transfer는 실시간으로 적용 가능한 화면 Filter이다. 게임 화면을 사용자가 원하는 스타일로 실시간으로 변경해서 보여주는 기능이다. 구글이 자랑하는 AI 기술과 Stadia의 여러 인스턴스를 활용하여 게임 화면을 실시간으로 변경하여 보여준다. 쉬운 예로 컬러풀한 게임 화면을 흑백으로 바꾼다던지, 실사에 가까운 화면을 점선모양 애니메이션으로 바꾼다던지 하는 변경을 게임 실행 중에 적용하는 경우가 해당된다. 미리 정의된 스타일을 적용할 수 있고, 혹은 사용자가 지정한 형태로 Custom한 Style을 적용할 수도 있다.
개인적인 감상은 필요한 기능이라기 보다는 구글의 기술력을 보여주고 싶은 기능이거나 내세울 Feature가 모자라서 피칭에 추가된 항목이라고 생각된다. Stadia를 추진하는 구글이 실상 게임 생태계에 대한 이해가 부족하다는 점을 여실히 보여주는 부분이다. 게임에서 화면의 분위기는 매우 중요한 요소이다. 이를 위해 많은 고민과 고려가 수반되고 실제로 많은 노력을 들여 게임마다 고유한 분위기를 낸다. 게임을 플레이하는 사용자는 이렇게 게임 PD가 세심하게 구성한 게임의 화면을 즐기기 위해 기꺼이 비용을 지불하고 게임을 구매한다. 그런 게임의 화면에 필터를 씌워 변경하는 일은 일시적인 재미를 위해서 잠시 쓰는 기능일 수 있지만, 게임 자체를 즐기는 사용자들에게 크게 의미가 있는 기능은 아닐 것이다. 시리즈를 거듭하며 매번 성공 신화를 쓴 블리자드의 디아블로를 돌아보면, 매 시리즈 훌륭한 게임성에도 불구하고 열혈팬들 사이에서 디아블로1의 음침한 분위기를 살리지 못했다는 비판이 수반되고는 한다. 과연 디아블로 플레이어들이 파스텔톤의 디아블로를 원할지 생각해 본다면 Style Transfer 기능의 미래를 쉽게 짐작할 수 있을 것이다.
Crowd Play
Crowd Play는 Stadia의 멀티플레이어 시나리오의 확장 기능이다. 이 기능의 타겟은 게임 방송을 진행하는 진행자와 이를 시청하는 시청자들 사이에서 이루어진다. 방송의 진행자가 특정 게임을 플레이 하던 도중 시청자를 선별하여 게임에 접속하게 할 수 있는 것이다. 간단히 링크를 공유하는 것만으로 시청자는 방송 중인 게임에 접속하여 방송 진행자와 같이 게임을 플레이 할 수 있다. 물론 게임에 대한 접근 권한은 게임을 개설한 방송 진행자가 전권을 가지고 조절할 수 있다.
구글의 성공적인 서비스인 유투브와의 연계를 고려한 기능이라고 볼 수 있다. 마이크로소프트의 Mixer, 많은 사용자를 가진 Twitch를 비롯해서 게임플레이를 공유하는 시장은 점점 중요해지고 커지고 있기에 이를 지원하기 위한 기능은 나름대로 의미가 있는 기능이라고 볼 수 있다. 그러나 게임 방송을 시청하는 시청자의 대부분은 자신이 하기에 어렵거나, 특이한 형태의 플레이들을 시청하는 Lean Back 경험을 즐기고 있기에 방송중인 게임에 접속하여 같이 게임을 하는 시나리오는 비율상 높지는 않을 것이다. 그리고 게임마다 다를 수 있지만 자체적으로 멀티플레이어를 지원하는 게임보다는 서버를 통한 멀티플레이어를 지원하는 게임이 더 늘어나는 추세이기에 Crowd Play를 능동적으로 활용한 게임 방송이 얼마나 시장에서 의미를 가지게 될지는 미지수이다.
State Share
State Share는 현재 진행중인 게임의 상태를 즉시 공유할 수 있는 기능이다. 게임에 등장하는 캐릭터의 위치, 게임의 스테이지, 가지고 있는 아이템등의 정보를 즉시 공유하는 기능이다. 게임의 상태는 url의 형태로 공유가 되며, 해당 url을 통해 공유된 게임의 상태에서 즉시 게임을 시작할 수 있다. 해당 기능의 구현을 예상해 본다면, 게임의 상태를 Stadia 서버에 저장하고, 이를 가리키는 url을 생성하여 공유가 가능하게 하고, 다른 사용자가 이 url을 통해 접근하면 서버에 저장된 게임의 상태를 새로운 게임 프로세스에 적용하여 이 상태를 그대로 사용자에게 스트리밍하는 방식으로 추정된다.
이 기능은 사실상 고전적인 Save/Load 기능과 큰 차이가 없어 보인다. UX의 관점에서 게임을 저장하고 다시 로드하여 플레이하는 복잡도를 줄였을 뿐 같은 기능을 수행한다. 어차피 이 기능을 지원하기 위해서는 게임 구현 내부에 Save/Load를 위한 구현이 포함되어야 하고, Stadia만을 위한 인스턴트 로드 기능까지도 구현해야 할 것이다.
물론 Stadia가 게임 구현을 바꾸는 것이 아닌 현재 실행되는 게임의 메모리 정보를 통째로 백업하고 재생하는 형태로 이 기능을 구현했을 수 있다. 가상화 기술에서 많이 쓰이는 방법으로 Virtual Machine의 상태를 저장하고 복구하는 것과 같은 원리이다. 이런 형태의 구현이라면 게임 개발자는 게임을 전혀 수정할 필요가 없다. 다만 Stadia의 입장에서는 사용자가 State Share를 호출하는 횟수 만큼 저장 공간을 할당하여 게임 상태를 저장해야 하기에 스토리지의 로드가 큰 이런 방법으로 State Share기능 구현을 하지는 않았으리라 예상한다.
기술을 떠나서 State Share가 목표로 하는 게임은 시연에 나타난 것과 같은 혼자서 플레이하는 Standalone 게임들이다. 그런데 최근의 게임 시장은 멀티플레이어 기능이 들어가지 않은 게임을 찾는 것이 더 어려울 지경이다. 여러 사람이 실시간으로 공동 플레이를 하는 게임의 경우 State Share 기능은 적용이 불가능하다. 이런 관점에서 State Share 기능 역시 구글의 게임 시장에 대한 이해 부족을 방증한다고 보인다. 아마도 이 기능을 기획하고 개발한 팀장은 게임을 아주 오래전에 해보았거나 아예 게임을 하지 않을 가능성이 크다.
Fin.
반응형'Analysis' 카테고리의 다른 글
Google Stadia 분석: Ecosystem(생태계)편 (0) 2019.05.10 Google Stadia 분석: Performance(성능)편 (0) 2019.05.10 Google Stadia 분석: Specification(사양)편 (0) 2019.05.10 Google Stadia 분석 (통합본) (2) 2019.05.08