제가 보유한 게이밍 노트북은 Alienware x14 한 대뿐입니다. 하지만 게임을 하는 장소는 책상 앞만이 아닙니다. 거실에서는 큰 화면으로 하고 싶고, 침대에 누워서는 가볍게 들고 할 수 있는 기기가 편합니다. 기기를 늘리는 대신, 노트북 한 대의 성능을 집 안의 다른 화면들로 보내기로 했습니다.
호스트는 Apollo, 클라이언트는 Moonlight 조합입니다. Apollo는 게임 스트리밍 호스트인 Sunshine의 포크(fork, 원본을 가져다 따로 발전시킨 버전)입니다. 솔직히 처음부터 Apollo를 노리고 고른 것은 아닙니다. 유튜브 영상을 보고 그대로 따라 설치했습니다. 왜 Apollo인지는 다 구축하고 나서 공식 문서를 읽고 알았습니다. 그런데 알고 보니 화면 크기가 제각각인 기기를 여러 대 붙이는 지금 구성에는 Apollo 쪽이 맞았습니다.
구성
- 호스트: Alienware x14 (Windows 11, i7-12700H, RTX 3060 6GB, RAM 32GB)에 Apollo 설치
- 클라이언트: Steam Deck, Y702 태블릿, Shield TV(Android TV), iPhone — 모두 Moonlight 앱
- 네트워크: 집 안에서는 10G 홈 네트워크(TP-Link Archer GE800), 집 밖에서는 Tailscale 경유

Apollo를 설치하고 기기를 붙이는 순서
- Alienware x14에 Apollo를 설치하고 웹 UI에 접속한다.
- 각 클라이언트 기기에 Moonlight 앱을 설치한다.
- Moonlight에서 호스트를 선택하면 PIN이 표시되고, 그 번호를 Apollo 웹 UI에 입력하면 페어링이 끝난다.
- 페어링한 기기에서 앱 목록을 열고 게임을 실행하면 스트리밍이 시작된다.
다만 페어링을 마쳤는데도 두 번째 기기부터 게임이 실행되지 않거나 마우스·키보드가 먹지 않는 일이 생깁니다. 고장이 아니라 권한 때문입니다. Apollo는 가장 먼저 페어링한 기기에만 전체 권한을 주고, 그다음 기기부터는 기본적으로 화면 보기 권한만 줍니다. 웹 UI에서 해당 기기에 실행 권한과 입력 권한을 열어주면 해결됩니다.

기기마다 화면을 새로 만드는 가상 디스플레이
기기가 여러 대가 되면 다음으로 부딪히는 문제는 화면입니다. 기기마다 해상도와 주사율이 다르기 때문입니다. Apollo에는 가상 디스플레이 기능(SudoVDA)이 내장되어 있어서, 스트리밍을 시작하면 접속한 기기에 맞는 가상의 화면을 자동으로 만들고, 접속을 끊으면 그 화면이 사라집니다.
순정 Sunshine에서는 이 과정이 번거롭습니다. 실제 모니터가 없는 환경을 만들려면 더미 플러그를 꽂거나 가상 디스플레이 드라이버를 따로 설치하고, 기기마다 해상도를 손으로 맞춰야 합니다. 그런데 붙이는 기기가 세 대나 되면 해상도가 전부 다릅니다. Steam Deck과 태블릿과 TV가 같은 화면 크기를 쓸 리가 없습니다.
Apollo는 기기마다 고정된 디스플레이 정체성을 부여합니다. 그래서 Windows가 기기별 화면 설정을 기억하고, 다음에 접속하면 전에 쓰던 그 화면이 그대로 돌아옵니다. 기기 세 대를 오가며 써도 해상도를 다시 만질 일이 없습니다.


노트북 호스트라서 필요했던 헤드리스 모드
호스트가 데스크톱이 아니라 노트북이면 화면 출력이 또 문제입니다. Apollo에는 헤드리스 모드가 있어서, 설정에서 그래픽 어댑터를 외장 GPU로 지정하고 헤드리스 모드를 켜면 더미 플러그 없이도 외장 GPU가 직접 화면을 그리고 인코딩합니다. 재부팅 한 번이면 끝나는 설정이라 노트북을 호스트로 쓰기 수월합니다.

집 밖에서는 Tailscale
밖에서 접속할 때는 Tailscale을 거칩니다. 호스트와 클라이언트를 같은 Tailscale 네트워크에 넣어 두면, Moonlight에서 호스트의 Tailscale 주소로 접속하는 것만으로 집 안에서와 똑같이 실행됩니다. 포트포워딩을 따로 열 필요가 없다는 점이 편합니다.


새 기기를 살까 하다가, 있는 기기를 쓰기로
원래 Steam Deck을 갖고 있는데, 성능이 아쉬워서 ROG Xbox Ally X를 추가로 살까 고민했습니다. 그런데 이 구성을 갖추고 나니 굳이 새 기기를 살 이유가 줄었습니다. 게임은 어차피 Alienware x14가 돌리고, 손에 드는 기기는 화면과 조종만 맡으면 됩니다. 이미 갖고 있는 Y702 태블릿이나 Steam Deck, Shield TV에 컨트롤러만 연결하면 바로 클라이언트가 됩니다. 성능을 기기마다 나눠 갖는 게 아니라, 호스트 한 대에 몰아 두는 쪽이 낫다고 판단했습니다.
실제로 플레이해 보면 지연은 신경 쓰이지 않는 수준입니다. 평소 즐기는 정도라면 충분했습니다. WoW 포에버는 게임 컨트롤러 모드로, 하스스톤과 Slay the Spire 2도 쾌적하게 돌아갔습니다. 무거운 최신 게임을 최고 옵션으로 돌리는 구성은 아니지만, 제가 실제로 하는 게임에서는 부족함이 없었습니다.
단점도 있습니다. 터치가 안 되는 Shield TV에 듀얼쇼크4 컨트롤러를 연결한 조합입니다. 게임 자체는 문제없는데, 마우스 모드로 전환해서 커서를 움직이고 클릭하는 경험이 좋지 않았습니다. 아날로그 스틱으로 커서를 맞추는 것 자체가 어렵고 답답합니다. 마우스가 필요한 순간이 잦은 게임이라면 이 조합은 피하는 게 좋습니다.
개인적으로 가장 좋은 조합은 Y702 태블릿에 GameSir X2 컨트롤러를 붙인 구성이었습니다. 화면을 직접 터치할 수 있어서 마우스 모드의 답답함이 없고, Y702의 주사율도 좋아서 움직임이 부드럽습니다. 화질, 조작, 편의성 어느 쪽으로 봐도 이 조합이 제일 나았습니다.
써 보니
기기만 보면 여러 대를 쓰는 것 같지만, 실제로 관리할 곳은 한 곳뿐입니다. 게임은 Alienware x14 한 대에만 설치되어 있고, 화면만 그때그때 골라 씁니다. 소파에서는 TV로 크게, 침대에서는 태블릿으로 가볍게, 손에 들고 하고 싶으면 Steam Deck으로. 기기를 바꿀 때마다 해상도를 만지거나 케이블을 옮길 필요가 없다는 점이, 처음 따라 만들 때는 몰랐던 Apollo의 진짜 장점이었습니다.
전력 면에서도 이득이 있었습니다. 스트리밍을 하는 동안에는 화면 출력이 접속한 기기의 가상 디스플레이로만 나갑니다. 노트북 본체의 화면은 꺼 두어도 되고, 안 쓰는 화면을 괜히 켜 둘 필요가 없습니다. 거실 TV로 크게 틀어 놓고 놀 때도, 정작 노트북 쪽에서는 게임 연산과 인코딩에만 전력을 쓰는 셈입니다.
참고로 HDR은 욕심내지 않았습니다. Apollo 공식 문서에서조차 HDR 스트리밍은 아직 일반적으로 권장하지 않는다고 적혀 있습니다. 기기마다 톤 매핑이 달라 색이 어긋나는 일이 흔하기 때문입니다. SDR로 안정적으로 쓰는 쪽을 택했습니다.










Add Comment