Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Shyamalp16/CloudGaming/llms.txt
Use this file to discover all available pages before exploring further.
Architecture Overview
CloudGaming is a peer-to-peer cloud gaming and remote desktop solution that streams Windows applications to browsers with ultra-low latency using WebRTC.Components
The platform consists of four main components:| Component | Technology | Purpose |
|---|---|---|
| Windows Host | C++ (WGC), Go (Pion WebRTC) | Captures and encodes game video/audio, handles input |
| Signaling Server | Node.js, WebSocket, Redis | Coordinates WebRTC connections between hosts and clients |
| Matchmaker | Node.js, Express, Redis | Manages host registration and assigns clients to available hosts |
| Client | HTML5, WebRTC | Browser-based game streaming client |
Prerequisites
For All Components
- Node.js 16+ and npm
- Redis 6+ (for production multi-instance deployment)
- Git
For Windows Host
- Windows 10 version 1903+ or Windows 11
- Visual Studio 2019 or 2022 with C++ desktop development workload
- NVIDIA GPU (NVENC), Intel GPU (QuickSync), or AMD GPU (AMF)
- FFmpeg with hardware encoding libraries
- Go 1.19+ (for WebRTC stack)
For Production Deployment
- Signaling Server: 1-2 GB RAM, websocket support
- Matchmaker: 512 MB RAM minimum
- Redis: 256 MB RAM minimum, persistent storage recommended
- Windows Host: 4+ GB RAM, dedicated GPU, Windows Server or Desktop
Deployment Order
Deploy Signaling Server
Deploy the WebSocket signaling server that coordinates WebRTC connections.See Signaling Server Deployment
Deploy Matchmaker
Deploy the matchmaker service for host registration and client assignment.See Matchmaker Deployment
Build and Run Windows Host
Compile the C++ host application and configure it to connect to your signaling and matchmaker services.See Host Setup
Deploy Client
Host the static HTML client on any web server or CDN.See Client Deployment
Production Architecture
For production deployments, consider this setup:- Multiple Signaling Servers: Scale horizontally behind a load balancer, using Redis pub/sub for cross-instance communication
- Matchmaker: Single instance or active-standby for high availability
- Redis: Managed Redis with persistence and automatic failover
- Windows Hosts: Multiple hosts in different regions for load distribution
- Client: Served via CDN (Cloudflare, Vercel, etc.) with HTTPS
Environment Configuration
Key environment variables used across components:| Variable | Component | Purpose | Default |
|---|---|---|---|
REDIS_URL | Signaling, Matchmaker | Redis connection string | redis://127.0.0.1:6379 |
WS_PORT | Signaling Server | WebSocket port | 3002 |
PORT | Matchmaker | HTTP API port | 3000 |
HOST_SECRET | Matchmaker, Host | Shared secret for host authentication | to-change-in-prod |
SIGNALING_PUBLIC_URL | Matchmaker | Public WSS URL for clients | - |
All services support
.env files for configuration. See individual deployment guides for complete variable lists.Quick Start (Local Development)
For local testing, you can run all components on a single machine:Security Considerations
Next Steps
- Windows Host Setup - Build and configure the Windows capture host
- Signaling Server - Deploy the WebRTC signaling infrastructure
- Matchmaker - Set up host registration and session management
- Client Deployment - Host the browser client