2016년 1월 7일 목요일

[Moonlight] 스마트폰이나 라즈베리파이에서 PC게임 스트리밍 이용하기

화려한 그래픽으로 무장한 최신 게임들을 이용하려면 고사양의 PC가 필요합니다.
그래서 비교적 저렴한 안드로이드 기반의 미니 PC나 라즈베리파이 같은 임베디드 디바이스로는 이용이 어렵습니다.
또한 게임사에서 여러가지 이유로 PC나 게임 전문 콘솔박스인 PlayStation, XBOX 등으로 게임을 만들기 때문에 저렴한 미니 PC로는 최신 블록버스터 게임을 이용할 수 없는 것이 현실입니다.

네트워크와 영상 처리 기술이 발전하면서 게임을 스트리밍으로 이용할 수 있는 환경이 조성 되었고 스팀, 플레이스테이션, XBOX, 쉴드셋탑 등 플랫폼 차원에서 스트리밍으로 게임을 이용할 수 있는 서비스를 제공하고 있습니다. 다만 해당 플랫폼을 이용할 수 있는 조건이 충족 되어야만 합니다. 플레이스테이션이나 XBOX는 콘솔 장비가 여러 대 필요해 지고, 스팀은 윈도우, OSX 기반이거나 스팀박스라는 콘솔 구매가 필요합니다. 

이 글에서 이야기 할 Moonlight는 NVIDIA 그래픽 카드만 있으면 최신 블록버스터 게임을 저렴하고 다양한 장치 들에서 이용할 수 있게 해 주는 프로그램 입니다. (물론 오래 된 고전게임도 가능합니다) 
집에 굴러 다니는 오래 된 스마트폰으로도 가능할만큼 유연성이 좋은 것이 장점입니다.

자세한 정보는 아래 링크에서 확인 할 수 있습니다.

Official Site : http://moonlight-stream.com/
XDA Forum : http://forum.xda-developers.com/showthread.php?t=2505510
Github : https://github.com/moonlight-stream/moonlight-android/wiki

준비

먼저 NVIDIA GeForce GTX 600/700/800/900 series  또는 GTX 600M/700M/800M series GPU 이상의 그래픽카드가 필요하며 그래픽카드 드라이버를 설치 할 때 함께 설치 할 수 있는 Geforce Experience를 설치 해야 합니다. 기타 PC 요구 사양은 다음과 같습니다.


PC의 스트리밍 설정

  • Geforce Experience를 실행 하고 상단 메뉴의 기본 설정으로 들어갑니다.


  • 왼쪽메뉴에서 SHIELD를 선택
  • 중앙에 "이 PC가 SHIELD 장치에 게임을 스트림하도록 허용합니다" 체크박스에 체크 
  • 오른쪽 + 버튼을 눌러 스트리밍 할 게임을 추가 해 줍니다. 여기서는 심시티를 선택 했습니다.

  • 스트리밍할 게임을 추가하면 리스트에 게임이 나타납니다.
  • 스팀에서 받은 게임은 별도로 추가하지 않아도 스트리밍을 지원합니다.

이로써 PC에서는 스트리밍할 준비가 끝나게 됩니다.

Moonlight 설치

iOS/Android
  • iOS와 안드로이드는 앱스토어에서 moonlight game streaming을 검색 하고 다운로드 받습니다.
  • 앱을 실행하고 IP주소로 스트리밍 서버를 추가 해 줍니다. (PC의 IP를 입력합니다)
  • 서버 추가 후 PIN 코드 번호를 입력 해 줘야 합니다. 스마트폰에 뜬 PIN번호를 PC에 입력 해 줍니다

  • 여기까지 해 두면 PC 에서 추가 해 준 게임 리스트가 나타나는 것을 볼 수 있습니다. 
  • 원하는 게임을 터치하면 게임이 실행 됩니다.



라즈베리파이에 설치 (Raspberrypi)
  • Rasbian이 설치 된 SD 카드로 부팅 합니다.
  • repository를 추가 하기 위해 sources.list를 수정합니다.
  • sudo nano /etc/apt/sources.list
  • 아래 내용을 파일 하단에 추가 해 줍니다.
  • deb http://archive.itimmer.nl/raspbian/moonlight wheezy main
  • 이제 라즈베리파이에 moonlight를 설치 합니다.
  • apt-get update
    apt-get install moonlight-embedded
  • 다 설치 되면 moonlight pair xxx.xxx.xxx.xxx (PC의 IP주소) 를 입력하여 페어링을 합니다.
  • moonlight list라고 치면 PC에 등록 된 게임 리스트가 나옵니다.
  • 게임을 실행 할 때는 아래와 같이 실행합니다. 
  • moonlight stream -app "Street Fighter X Tekken"
아래 영상은 라즈베리파이에서 스트리밍으로 실제 플레이하는 화면입니다. 격투 게임도 충분히 즐길 수 있을 정도로 만족스러운 성능을 보여 주고 있습니다.


영상처럼 라즈베리파이2에서 게임패드를 이용하고 싶다면 아래 링크 자료 참고하셔서 관련 패키지 설치 후 즐기실 수 있습니다. 영상에서는  라즈베리파이2에 무선 리시버를 부착 후 XBOX360패드를 무선으로 이용하는 환경이었습니다.

XBOX360 패드 :https://github.com/RetroPie/RetroPie-Setup/wiki/setting-up-the-xbox360-controller
듀얼쇼크4 : http://freespiritslab.blogspot.kr/2015/09/4.html

스마트폰에서 블루투스로 게임패드 이용 시 WIFI와 간섭현상이 일어나서 상당히 불편할 수 있으니 되도록 OTG케이블을 이용해 유선으로 이용하거나  5Ghz WIFI 망 이용하시는게 좋겠습니다.

Moonlight를 이용해 게임 스트리밍에서 만족감을 느끼기 위해 가장 중요한 것은 H264 하드웨어 디코딩의 성능입니다. 디코딩 속도로 인해 인풋랙이 커질수도 작아질 수도 있기 때문이지요.
아래 내용은 XDA에서 테스트 한 디바이스별로 디코딩 성능이니 참고하시기 바랍니다.

Tier 1 devices:
Tegra 4 - Nvidia Shield - 5 ms - 1080p60 supported
Intel Atom/Bay Trail/Moorefield - Nexus Player - 8 ms - 1080p60 supported (may need a USB OTG Ethernet adapter for consistent performance)
Razer Forge TV - 10 ms - 1080p60 supported - H.265 supported
Tegra K1 - Nexus 9 - 15 ms - 1080p60 supported
Tegra 3 - OUYA and Nexus 7 (2012) - 17 ms - 1080p60 supported

Tier 2 devices:
Broadcom VideoCore IV - Fire TV Stick - 20 ms - 720p60/1080p30 supported
Exynos 7420 - Galaxy S6 - 20 ms - 1080p60/4K30 supported - H.265 supported
Snapdragon S4 Pro (rebranded 600) - Nexus 7 (2013) - 20 ms - 720p60/1080p30 supported
Snapdragon 801 - HTC One M8 GPE - 20 ms - 1080p60 supported
Snapdragon 800 - Nexus 5 - 20 ms - 1080p60 supported
Snapdragon 600 - Fire TV (2014) - 30 ms - 720p60/1080p30 supported

Tier 3 devices:
MediaTek devices - Fire TV (2015) - 55 ms - 1080p60 supported - H.265 supported

참고로  TVG셋탑은 역시나 게임 스트리밍에서도 실망을 하게 하네요. 150ms 정도의 지연이 나와서 아케이드게임이나 FPS, 격투게임은 이용하기 어렵더군요. IPTV 디코딩 능력 말고는 아쉬움이 많은 장비입니다.

이렇게 한번 설치 해 두고 안드로이드 셋탑이나 라즈베리파이를 이용하면 집 안의 디스플레이가 있는 곳이라면 어디서나 편하게 누워서 PC 게임을 즐기실 수 있으며 스마트폰을 이용하면 PC에서 하던 게임을 화장실에 앉아서 이어 하다가 다시 PC 앞에 와서는 PC로 이용할 수 있는 Seamless한 UX를 경험 할 수 있게 됩니다.

여러모로 복잡하게 설명한 것 같기 하네요.  실제 따라 해 보시면 매우 간단합니다만 이것저것 다 귀찮고 어렵게 느껴진다면 쉴드셋탑이나 스팀박스를 구매 해서 한 방에 해결 할 수도 있습니다.

관련글 : 오픈일렉에서 문라이트 이용하기
관련글 : 문라이트를 위한 듀얼쇼크 활용 팁


댓글 2개:

  1. 혹시 moonlight embedded를 사용할때 페어링은 되지만 리스트가 불려지질 않을때는 어떤 연유로 그런것일까요...

    답글삭제
  2. PC에서 게임을 추가하면 리스트가 나오는게 정상입니다.
    PC에서 리스트는 나오든가요?

    답글삭제