클라우드 게임

클라우드 게임이란 클라우드 서비스의 일종으로 게임을 서버에 저장한 채 게임 이용을 요구하는 단말기에 즉각적으로 스트리밍하는 서비스를 의미한다. 스트리밍 방식에 따라 '비디오 스트리밍' 기반의 클라우드 게임과 '파일 스트리밍(픽셀 스트리밍)'기반의 클라우드 게임으로 나뉠 수 있다.

시스템 구조

클라우드 게임 서비스의 기본 구조는 다음과 같다. 먼저 게이머의 접속과 함께 원격의 클라우드 서버에서 게임이 구동되고, 출력된 오디오/비디오 데이터가 캡처된다. 해당 데이터가 코덱을 통한 인코딩 과정을 거쳐 네트워크 패킷으로 전송되고, 이를 클라이언트, 게이머의 단말기가 받아 재생한다. 그리고 단말기에 연결된 입력장치를 통해 게임조작 신호가 입력되고 이는 다시 서버에 전달된다. 서버에 전달된 게이머의 입력신호는 서버에서 구동되는 게임의 입력으로 처리되어 게이머의 조작이 실제 게임에 반영된다. 이는 마치 게이머가 동영상을 보며 게임을 즐기는 것과 같다.

서버

클라우드 게임 서비스에서 서버는 다시 응용 소프트웨어 구동 모듈과 인코딩 모듈, 전송 모듈로 나뉜다. 구동 모듈은 게임 애플리케이션을 구동하는 모듈로, 실제 게임이 여기서 구동되며 클라이언트 단말의 조작신호를 처리한다. 인코딩 모듈은 구동된 게임의 오디오/비디오 데이터를 코덱으로 압축한다. 비디오 인코딩의 경우, 대부분 압축률에 유리한 H.264 압축을 사용하며 경우에 따라 MPEG2 압축을 취하기도 한다. 오디오 압축에 있어서는 일반적으로 PCM, AAC, AC3 등의 포맷이 사용된다. 마지막 전송 모듈의 경우, 인코딩된 스트림을 네트워크 패킷화하여 클라이언트로 전송하는 역할을 담당하며 일반적으로 유니캐스트 방식을 사용한다.

클라이언트

클라우드 게임 서비스에서 클라이언트는 수신 모듈, 디코딩 모듈, 입력 모듈로 이루어져 있다. 수신 모듈은 서버의 전송 모듈이 패킷화한 스트림을 다시 프레임 단위로 결합하는 역할을 담당하며 실시간 전송 프로토콜을 사용해 전송을 하는 경우에는 순서관계를 맞추어 조립하는 작업도 겸하게 된다. 수신 모듈로부터 결합, 전달된 데이터를 디코딩 모듈이 디코더로 공급해 압축된 데이터를 화면에 출력할 수 있게 만든다. 마지막으로 입력 모듈은 클라이언트 단말에 연결된 키보드나 마우스 게임패드등과 같은 입력기기들의 신호를 받고 이를 패킷화하여 서버에 전송하는 역할을 한다.

GPU

GPU라는 용어는 엔비디아(NVIDIA)사에서 1999년에 '지포스(GeForce)'라는 이름의 새로운 그래픽 컨트롤러(Graphics Controller)를 출시하며 처음 명명된 것이다. 이것은 CPU의 도움 없이 자체적으로 폴리곤, 즉 3D 그래픽을 구성하는 도형의 변형 및 광원효과를 구사하는 기능, '하드웨어 T&L'을 갖추고 있었다. 이는 이전까지 사용했던 그래픽 컨트롤러와는 확연히 다른 개념이었기 때문에 이를 구분하고자 GPU라는 이름이 붙게 되었다.그리고 이 GPU의 클라우드 게임 서비스의 구조 내 존재여부 및 위치는 서비스의 환경을 좌우한다. 클라이언트가 GPU를 가지고 있는 경우에는 렌더링 명령어를 스트림을 통해 클라이언트에게 전송하여 클라이언트에서 자체적으로 렌더링을 수행하는 그래픽스 스트리밍 (Graphics Streaming)의 방식을 취하게 되고, 클라이언트의 단말이 GPU 를 가지고 있지 않은 경우에는 서버를 통해 최종 렌더링된 영상을 전송하는 일반 비디오 스트리밍방식을 제공하고 있다. 사용자의 하드웨어에 대한 비용 부담을 줄이기 위해서는 점에서는 비디오 스트리밍 기법이 유용하다.

장점

서버에서 게임의 주요 연산을 서버가 처리하고 사용자는 이를 스트리밍받는 것 뿐이기 때문에 단말기의 사양은 게임 플레이의 장애가 되지 않는다.즉 고사양의 게임을 위해 하드웨어의 성능을 업그레이드 하거나 최신의 단말을 구매할 필요가 없다. 단말의 사양뿐 아니라, 종류에도 구애받지 않는다. 네트워크에 연결할 수 있고, 스트리밍된 화면을 출력할 수 있는 디스플레이 장치가 있다면 무엇이든 게임이용장치로 사용될 수 있다. 즉 PC, Mac, 태블릿, 스마트폰 및 TV 등 어떤 장치에나 게임을 즐길 수 있다. 또한 서비스 이용자들이 게임을 다운로드 및 인스톨할 필요가 없기 때문에 설치과정에서 얻는 어려움이 없다. 즉 대용량의 설치파일을 받기 위해 저장공간을 확보할 필요도, 오랜 시간을 기다릴 필요도 없다. 또한, 게임 패치 및 업그레이드 적용이 데이터 센터의 서버에서 이루어지기 때문에 업그레이드가 용이하고, 불법 복제의 위험이 없다. 개발자의 입장에서는 게이머의 서비스 이용 패턴을 서버에 저장할 수 있으므로, 이 자료를 게임 개발 개선이나 오류 디버깅에 이용할 수도 있다.

문제점

클라우드 게임 서비스는 이용자가 고성능 PC와 게임 전용 콘솔 등에서 경험하는 것과 동일한 게임 환경을 제공해야 한다. 때문에 높은 반응성을 위한 지연 시간 최소화와, 고화질 영상 서비스 제공을 위한 데이터 압축 기술, 네트워크 대역폭등 다양한 기술적 기반이 확보되어야 한다. 또한 가변적 네트워크 환경에서 안정적인 게임 서비스 품질 유지하기 위한 방법에 대해 고려해야할 사항이 많다. 현재는 네트워크 환경의 개선으로 데이터 전송 속도가 빨라졌다 하지만 여전히 여러 환경적 요소에 민감한 것이 사실이다.

표시지연 문제

클라우드 게임 서비스에서 필연적으로 발생하는 문제 중 하나가 바로 '표시지연'이다. 스트리밍 방식으로 게임플레이가 이루어지기 때문에 게이머가 키보드나 게임 패드를 통해 입력한 조작신호가 게이머의 단말기 화면에 바로 반영되지 않고 '지연시간'을 가지는 것이다. 이는 빠른 반응속도가 게임플레이에서 중요한 요소인 대전 격투 게임나 FPS 게임에서는 특히 치명적인 문제다. 사실 '표시지연'은 '전송지연', '처리지연' 등 여러 가지 요소가 복합적으로 작용하여 발생한다. 서버 차원에서는 '인코딩 처리 시간'과 '네트워크 전송 처리시간'이 '표시지연'을 일으키고, 클라이언트 측면에서는 '네트워크 수신 처리 시간'과 '디코딩 처리시간'이 '표시지연'을 일으킨다. 여기에 추가적으로 서버와 클라이언트 간의'네트워크 전송 지연시간'이 포함됨으로써 '표시지연 시간'이 계산된다.

인터페이스 문제

클라우드 게임 서비스는 다양한 디바이스에서 즐길 수 있는 것을 강점으로 내세우지만 디바이스별 게임 환경이 일정하지는 못하다. 스마트TV는 리모컨으로 게임을 조작해야 하고, 스마트폰이나 태블릿 PC는 화면구성이 복잡하거나 많은 텍스트가 제시되는 게임을 하기에는 화면이 너무 작다. 특히 사용자 인터페이스 측면에서 특정 디바이스는 쾌적한 게임환경을 보장하지 못한다. 예를 들어 스마트폰, 태블릿과 같은 단말은 PC 입력 장치와 다른 터치 스크린 입력 환경 및 제한된 버튼을 제공한다. 키보드 입력을 위한 터치 키패드가 존재하나, 이를 사용할 경우 게임 화면이 키패드로 가려져 게임 진행이 어려워진다. 따라서, 게임 특화된 복잡한 게임 키보드와 마우스 입력을 제공하면서, 이들을 단말 화면상에 적절하게 배치해주는 기술이 필요하다. 이처럼 모바일 단말 및 스마트 단말과 같은 소형 단말일 경우, 하드웨어와 시스템 소프트웨어 등의 영향을 많이 받아 이식하는 과정도 어렵다. 또한 시스템 환경이 조금만 변해도 모든 단말마다 재작업해야 하는 어려움이 있다.