Moonshine - PC 게임을 Moonlight가 실행되는 모든 기기로 스트리밍
요약
Moonshine은 Linux 환경에서 데스크톱 환경 없이 헤드리스로 동작하는 오픈소스 게임 스트리밍 서버입니다. Sunshine과 달리 자체 컴포지터를 생성하여 가상 디스플레이나 더미 플러그 없이도 임의의 해상도, 주사율, HDR 설정을 지원합니다.
핵심 포인트
- Linux에서 데스크톱 환경 의존성 없이 헤드리스 실행 가능
- 물리적 더미 플러그 없이 임의 해상도 및 HDR 지원
- 기존 데스크톱 사용과 동시에 게임 스트리밍 가능
- Vulkan 인코더 기반의 가볍고 최적화된 코드베이스
정리하면 Nvidia GameStream은 독점 기술이었다가 Nvidia가 폐기했고, 이후 Sunshine과 Moonlight가 모든 플랫폼에서 저지연 스트리밍을 지원하는 오픈소스 서버·클라이언트로 등장함
Game on Whales는 다중 사용자 스트리밍과 가상 디스플레이를 더해 기존 로그인 세션에 영향을 주지 않는 자체 호스팅 Stadia/GeForce Now에 가까우며, Steam·Firefox 등을 선별된 컨테이너로 실행함
이후 Apollo와 Artemis가 가상 디스플레이 스트리밍을 간단히 만들었지만 Apollo의 가상 디스플레이는 사실상 Windows 전용이고, Moonshine은 이를 Linux 서버에서 구현함
Apollo에서 갈라진 Vibepollo는 거의 전부 바이브 코딩으로 만든 개선판이라 개인적으로는 사용하지 않을 생각인데, 이 계보에서 빠진 것이 있는지 궁금함
Steam Link도 빠졌음. 하드웨어 판매는 끝났지만 Android 앱 등을 통해 소프트웨어는 계속 살아 있음
Steam은 Google과 달리 이미 고객 기반까지 갖췄으므로, 당장 내일이라도 모든 하드웨어에서 보유 게임을 실행하는 Stadia식 서비스를 발표해도 놀랍지 않을 것 같음
소비자용 GPU를 여러 가상화 호스트가 공유하기는 여전히 사실상 불가능해 활용도가 제한됨. 강력한 서버 한 대에 씬 클라이언트를 연결해 구형 COD 같은 게임을 즐기는 구성이 이상적임
Moonshine은 Linux에서 헤드리스 Sunshine처럼 동작하는 것인지 궁금함
Sunshine은 스트리밍 중 호스트 화면에도 게임이 표시되지만, Moonshine은 물리 디스플레이 없이 실행하거나 여러 게임을 동시에 실행할 수 있다는 의미인지 확인하고 싶음
Proxmox 안의 Fedora가 부팅할 때 실제 모니터 사양을 흉내 내는 가짜 디스플레이를 만들도록 커널 인자를 설정함
Sunshine이 이를 실제 디스플레이로 인식하므로 전원과 LAN 케이블만 남겨도 되고, HDMI 더미 플러그나 가상 디스플레이 드라이버 없이 Linux 게임 서버가 잘 작동함
Sunshine과 Moonlight는 다시 활발히 개발돼 Apollo와 Artemis보다 최근 릴리스도 나온 것으로 보임
Windows에서 원격 게임 중에도 다른 사람이 서버를 사용할 수 있는지 궁금함. 찾아본 가상 디스플레이 솔루션 대부분은 서버 디스플레이를 꺼버림
Moonshine 개발자임. 핵심은 Sunshine과 비슷하지만 기존 데스크톱 환경에 의존하지 않고 자체 컴포지터를 생성한다는 차이가 있음
데스크톱 환경 없이 헤드리스로 실행하고, 더미 플러그 없이 임의 해상도·주사율을 만들며, 모니터가 지원하지 않아도 HDR을 사용할 수 있음. 기존 데스크톱을 사용하면서 동시에 게임을 스트리밍하는 것도 가능함
기술적으로는 Vulkan 인코더 하나, Linux 하나, GUI 없음, 구형 Moonlight 클라이언트 미지원이라는 좁은 범위를 의도적으로 택해 코드베이스를 가볍게 유지함. 대신 비교적 최신 GPU·드라이버와 새 Moonlight 클라이언트가 필요함
2022년부터 만들던 취미 프로젝트로, 처음에는 Sunshine보다 못해 README에서 사용하지 말라고 권했지만 차별화된 기능이 생긴 뒤 그 문구를 제거함
신규 사용자에게는 자료가 풍부하고 잘 작동할 가능성이 높은 Sunshine을 우선 권장하며, 새로운 것을 만져보길 좋아한다면 Moonshine도 괜찮음
월 20달러짜리 Claude나 Codex 요금제만 있어도 Linux를 만져보기 위한 진입 장벽이 크게 낮아졌음. 예전에는 몇 시간이나 며칠씩 막히던 일을 커피 한 잔 마시는 동안 해결할 수 있어, Bazzite 머신에서 시험할 때 다소 거친 부분도 예전만큼 방해가 되지 않을 듯함
너무 겸손하게 소개한 것 같음. Linux의 Sunshine에서는 임의 해상도를 사용할 수 없다는 차이가 매우 큼
Sunshine의 여러 Linux 문제에 답답해하다가 어젯밤 Moonshine을 발견했고, 지금까지 매우 만족스러움
10분 정도 사용해봤는데 인상적이었음. VS Code는 실행하지 못했지만 원격 모드가 있어 크게 중요하지 않고, 나중에 다른 앱으로 다시 시도할 예정임
자체 컴포지터 구조상 완전한 데스크톱 환경을 구동하기는 어려워 보이지만, Linux에는 앱 하나씩이라도 안정적으로 원격 실행할 방법이 절실함. KDE와 GNOME 내장 서버는 전반적으로 문제가 있고 모니터도 켜져 있어야 함
Sunshine과 Moonlight로 데스크톱에서 에뮬레이션하고 업스케일한 PS2 게임 SSX Tricky를 7년 이상 된 Android 셋톱박스에 매우 부드럽게 스트리밍할 수 있었음
다만 데스크톱 화면에 게임이 그대로 표시돼 다른 사람이 게임하는 동안 호스트를 사용할 수 없었는데, Moonshine이 이를 해결하는 것으로 보임. 이미 훌륭했던 조합에 화룡점정을 더한 셈임
SSX 시리즈가 그리움. EA Big이 문을 닫고 다른 회사도 이어받지 않은 것이 아쉬우며, 그중에서도 Tricky를 가장 좋아했음
MacBook에 DualSense를 연결하고 Moonlight를 열어 게임용 데스크톱에 전체 화면으로 접속한 뒤 Steam의 AAA 게임을 실행하는 방식으로 Moonlight와 Apollo를 사용 중임
Wi-Fi 7에서는 체감할 만한 지연이 거의 없고, 대형 TV에 연결한 Minisforum도 DualSense의 다른 버튼 조합으로 접속할 수 있음. Apollo가 설정을 저장해 두 기기 사이를 거의 문제없이 전환 가능함
Android 휴대전화에서도 시도해볼 만함. 컨트롤러를 장착한 6.7인치 OLED 2340×1080, 120Hz HDR 화면으로 침대에서 Diablo 2 Remastered를 하면 Steam Deck보다도 만족스러움
휴대전화는 영상만 재생하므로 뜨거워지지 않고 배터리도 오래감
스트리밍 중 지연 급증을 막으려면 AWDL을 종료해야 하는지도 궁금함
Steam 외부 게임 지원 외에도 Steam Link보다 더 잘 작동하는지 궁금함
Moonshine이 세션마다 가상 데스크톱 같은 것을 생성하는지, 단순한 별도 화면인지 아니면 완전히 독립된 컴포지터 인스턴스인지 궁금함
기능 설명대로 각 스트림이 데스크톱 환경과 완전히 분리된 자체 컴포지터에서 실행됨. 여러 인스턴스를 호스팅할 수 있는 게임 서버라는 발상이 매우 매력적임
PC에서 Switch 게임을 에뮬레이션해 구형 Wii U와 3DS로 스트리밍하는 데 이런 방식을 사용함
Android 기반의 Ayn Odin·Thor 같은 최신 휴대용 기기에서도 사용함
몇 년 전 Rust로 모든 에뮬레이터에 다인용 네트워크 플레이를 지원하는 도구를 만들었는데, 의외로 구현이 쉬웠음
Moonlight와 Sunshine 조합을 RTX 4000 Pro GPU 서버에서 만족스럽게 사용 중임
연결된 클라이언트에 맞춘 자동 해상도 조정만 아쉬웠지만 Home Assistant Windows 클라이언트로 스크립트를 작성해 해결함
노트북에서 휴대전화로 Sunshine과 Moonlight 스트리밍을 설정하려고 안내서를 따라갔지만 쓸 만한 결과를 얻지 못했음
쉬려고 하는 게임에 제한된 여가 일주일을 코덱·지연·Wi-Fi 설정·여러 앱을 만지는 데 써버려 포기했는데, 약 3년이 지난 지금은 개선됐는지 궁금함
가끔 완벽하게 작동한 세션도 있어 기술적으로 가능하다는 것은 확인했지만, 90% 정도는 이상한 오류·설정 문제·업데이트의 호환성 파괴에 시달렸음. 잘 쓰는 사람도 있지만 문제를 다듬으려면 아직 많은 작업이 필요해 보임
약 일주일 전 LLM의 도움으로 Windows 호스트와 Ubuntu 클라이언트를 30분 만에 설정했고, 외부 네트워크 연결 문제도 15분 정도 만에 해결함
결국 하려던 게임은 로컬 다인용만 지원했고 ProtonDB의 제한적 호환 판정과 달리 노트북에서 바로 실행돼 스트리밍이 필요 없었지만, 설정 자체는 수월했음. Tailscale도 사용함
호스트 PC는 유선 LAN에 연결하고 클라이언트는 1080p 60fps 이상에서 최소 Wi-Fi 6를 사용해야 함. 일부 공유기는 패킷 손실이 심하므로 괜찮은 장비를 쓰거나 직접 구성하는 편이 좋음
데스크톱과 PS Vita 사이에서 Sunshine과 Moonlight를 사용 중이며, 핵심은 최소한 호스트를 유선으로 연결하고 무선 공유기까지의 지연을 낮추는 것임
무선은 이상적인 환경에서도 재전송이 필요한 패킷이 훨씬 많으므로 Wi-Fi는 클라이언트 쪽에서만 쓰는 편이 좋음
GPU를 직접 연결한 ROS 2 개발용 VM에 원격 접속하려고 Sunshine과 Moonlight를 사용 중임
구형 Ubuntu가 필요해 VM을 택했고 Gazebo 시뮬레이션 때문에 GPU 직접 연결이 필요했음. RDP에서는 데스크톱이 심하게 느리고 반응이 없었지만 이 조합으로 쓸 만해짐
자체 PC 게임 스트리밍은 Nvidia 기능을 켜기만 하던 시절보다 설정이 훨씬 어려워졌음
마지막으로 시도했을 때 작동 방법을 알아내지 못해 포기했으며, 다른 장점에도 불구하고 오픈소스 개발자들은 사용성을 제대로 챙기지 못하는 듯함
지금은 Nvidia 독점 기능 시절보다 훨씬 좋은 환경이 됐으니 다시 시도해볼 만함. 가장 간단한 방법은 Steam 내장 Remote Play와 공식 앱이며, Sunshine과 Moonlight는 더 나은 결과와 세밀한 설정, Steam 외부 앱 지원을 제공함
YouTube 안내서나 AI의 도움도 받을 수 있고, 실제로 Linux 배포판 방화벽이 스트리밍 포트를 막고 있다는 원인을 AI와 함께 찾아낸 적이 있음
처음에는 로컬 네트워크에서 시작하고 인터넷 스트리밍은 나중에 설정하는 편이 좋지만, WireGuard나 Tailscale 같은 홈 VPN이 있다면 어렵지 않을 수 있음. 호스트는 유선이 가장 좋고 클라이언트 Wi-Fi도 6GHz를 지원하면 대체로 괜찮음
PS Remote Play만큼 마법처럼 간편하지는 않지만 다시 시도해보길 권함
5년 전에는 비슷한 문제로 게임 스트리밍을 완전히 포기했지만, 한 달 전 오래된 Linux 노트북으로 소파에서 Oxygen Not Included를 하려고 5분 만에 Sunshine과 Moonlight를 설정했고 곧바로 완벽하게 작동함
권장 사항과 달리 호스트도 Wi-Fi였는데 잘 됐으며, 최근 몇 년간 기술로 해본 일 중 가장 마법 같은 순간이었음. 다만 로컬 Wi-Fi 스트리밍만 사용함
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기