// the find
giongto35/cloud-game
Web-based Cloud Gaming service for Retro Game
CloudRetro runs retro game emulation server-side via Libretro and streams video/audio to the browser over WebRTC, so anyone can play NES/GBA/N64/arcade games without installing anything. The coordinator-worker architecture is designed to scale horizontally — spin up more workers in different regions and the coordinator routes players to the nearest one. It's for people who want to self-host a multiplayer retro gaming platform, not for casual players looking for a quick game.
The WebRTC streaming stack is built on Pion, which is a solid Go WebRTC library with active maintenance — not a wrapper around a C library that will break on every OS update. The coordinator/worker split is genuinely useful: workers are stateful (they run the emulator), but the coordinator is stateless enough that you can replace it without dropping sessions. CrowdPlay (multiple players sharing one game instance via deeplink) is a clever feature that's actually implemented, not just described in a roadmap. The GStreamer pipeline for encoding gives you real codec flexibility rather than being locked to a single software encoder.
Getting this running locally requires GStreamer, CGo for the Libretro bindings, and an X server for OpenGL cores — the setup is genuinely painful on anything that isn't a Debian-based Linux server, and Windows support is described as MSYS2-only. The wiki is self-described as outdated and the author's current focus has shifted to the sibling project CloudMorph, which is a soft signal this repo is in maintenance mode rather than active development. Save state storage is S3-only with no local filesystem fallback documented, which is annoying if you're running this at home. The web frontend is plain vanilla JS with image-based UI buttons — functional but dated, and touch controls on mobile are going to be rough for anything requiring precise input.