Skip to main content

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.

This guide will walk you through setting up a complete CloudGaming environment on your local machine. You’ll have a working streaming session in under 15 minutes.

Prerequisites

Before you begin, ensure you have:
  • Windows 10/11 (build 1903+) with a GPU (NVIDIA, AMD, or Intel)
  • Visual Studio 2022 with C++ desktop development workload
  • Node.js 18+ and npm
  • Redis (download from redis.io)
  • Git for cloning the repository
This quickstart uses localhost for all components. For production deployment, see the Deployment Guide.

Setup Steps

1

Install Redis

Start Redis server on the default port (6379):
redis-server
Leave this terminal window open. Redis is required for signaling server coordination.
2

Start the Signaling Server

Navigate to the Server directory and install dependencies:
cd Server
npm install
npm start
The signaling server will start on ws://localhost:3002. Keep this terminal open.
For development with prettier logs, use npm run dev instead.
3

Start the Matchmaker Service

In a new terminal, start the matchmaker:
cd Server
node mm_server/Matchmaker.js
The matchmaker will listen on http://localhost:3000. This service handles host registration and client matching.
4

Build and Run the Host

Open DisplayCaptureProject.sln in Visual Studio 2022 and build the solution (x64, Debug or Release).Before running, ensure config.json is in the same directory as the executable. Use the default config or customize for your needs.Run the host:
x64\Debug\DisplayCaptureProject.exe
The host will:
  • Generate a unique Room ID (displayed in console)
  • Register with the matchmaker
  • Start capturing the target process (configured in config.json)
  • Wait for client connections
Make sure the targetProcessName in config.json matches a running process on your system.
5

Start the Client

In a new terminal, serve the client HTML:
cd Client/html-server
npx http-server . -p 8080
Open your browser to http://localhost:8080
6

Connect and Stream

In the browser client:
  1. Click “Find Match” to automatically discover the host
  2. The client will connect via WebRTC signaling
  3. Once connected, you’ll see the host’s screen streaming in real-time
  4. Use keyboard and mouse to interact with the remote session
Alternatively, you can manually enter the Room ID displayed by the host console.

Verify the Connection

Once connected, you should see:
  • Client Browser: Live video stream with low latency (under 50ms typical)
  • Host Console: Connection status and performance metrics
  • Performance Overlay: FPS, latency, and bitrate indicators in the client

Configuration

The default config.json provides sensible defaults for local testing. Key settings to adjust:

Target Process

{
  "host": {
    "targetProcessName": "notepad.exe"
  }
}
Change this to the process you want to capture (e.g., a game executable).

Video Quality

{
  "host": {
    "video": {
      "fps": 60,
      "bitrateStart": 8000000,
      "preset": "p2"
    }
  }
}
  • Lower preset (p1-p7) = faster encoding, higher latency
  • Higher bitrateStart = better quality, more bandwidth

Audio

{
  "host": {
    "audio": {
      "processLoopback": {
        "enabled": true
      }
    }
  }
}
Enable processLoopback to capture only the target process audio (Windows 11+).

Troubleshooting

Possible causes:
  • Matchmaker not running on port 3000
  • Host hasn’t sent heartbeat to matchmaker
  • Host status is “busy” instead of “idle”
Solution: Check that all services are running and the host console shows successful registration.
Possible causes:
  • Signaling server not running on port 3002
  • Redis not running on port 6379
  • Firewall blocking WebSocket connections
Solution: Verify all services are running and check browser console for errors.
Possible causes:
  • Target process not running
  • GPU encoder not available
  • Audio device not configured
Solution: Check host console for encoder initialization errors. Ensure target process is running.
Possible causes:
  • CPU/GPU overload
  • Network bandwidth insufficient
  • Incorrect encoder preset
Solution: Lower FPS, reduce bitrate, or use a faster NVENC preset (p1 or p2). See Performance Tuning.

Next Steps

Now that you have a working setup:

Architecture

Understand how components work together

Configuration

Explore advanced configuration options

Deployment

Deploy to production with Railway, Docker, or Kubernetes

API Reference

Learn about the Matchmaking and Signaling APIs

Build docs developers (and LLMs) love