Skip to content
View Nika0000's full-sized avatar
  • Georgia, Tbilisi
  • 12:16 (UTC +04:00)

Block or report Nika0000

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Nika0000/README.md

 

RAYWAN a cutting-edge cloud gaming platform
delivering the power of console gaming, anywhere, anytime.

 

Note

This project is under active development and not yet open for testing. Features and functionality are still being finalized.

Introduction

RAYWAN is an advanced, open-source cloud gaming platform engineered to deliver ultra-low-latency, high-quality gaming experiences across a wide range of devices. It’s designed with a clear separation between host and client technologies to optimize each side for the best performance, quality, and compatibility.

Built from the ground up for flexibility and scalability, RAYWAN is ideal for developers, enthusiasts, and innovators who want a cloud gaming solution that is open to modification and can be self-hosted. By leveraging cutting-edge tools and libraries, RAYWAN provides the infrastructure to stream games in real-time with minimal latency, making it suitable for both personal use and large-scale deployments.

RayWAN DEMO #1

Features

  • Ultra-Low Latency: Aiming for sub-50ms latency.
  • High-Resolution Streaming: Streaming up to 4K resolution at 60 FPS.
  • Cross-Device Compatible: Designed to stream games across multiple devices, enabling flexible client-side configurations without requiring high-end hardware.
  • Hardware Decoding/Encoding: Supports hardware-accelerated decoding/encoding with popular codecs like H.264, HEVC, and AV1.
  • Multi-Gamepad Support: Allows up to 4 gamepads to be connected simultaneously.
  • Self-Hosting Capabilities: Deployable on both personal servers and cloud infrastructure, providing flexibility for individual or large-scale usage.

How it Works

RAYWAN operates on a host-client architecture, designed for real-time, low-latency communication between a gaming server (host) and the client application. The platform utilizes P2P (peer-to-peer) communication, allowing for direct, fast video/audio streaming from the server to the client without intermediary servers.

Here’s a step-by-step breakdown of the data flow and processes in RAYWAN:

Server Side (Host)

  1. Game Rendering: The game is rendered on the host server using high-performance computing resources, typically leveraging GPU acceleration to ensure smooth, high-frame-rate rendering.

  2. Video Capture and Encoding: Once the game is rendered, frames are captured and then encoded using GPU hardware acceleration. RAYWAN supports various codecs such as H.264, HEVC, and AV1, ensuring high-quality, efficient encoding. The use of hardware encoding reduces latency and CPU load, optimizing performance.

  3. RTSP Streaming: The encoded video and audio streams are packaged into an RTSP (Real-Time Streaming Protocol) stream. RTSP allows efficient real-time transmission of multimedia content, which is ideal for high-performance gaming.

  4. Input Handling: On the server side, the Input Receiver module listens for user input from the client (keyboard, mouse, controller actions). This input is then relayed to the Replay User Input module, where actions are immediately processed in the game environment, ensuring real-time responsiveness.

Client Side

  1. RTSP Reception and Decoding: The client application receives the RTSP stream containing video and audio data. Using GPU hardware acceleration, the client decodes the stream in real-time, enabling smooth, high-definition playback on a range of devices without requiring high-end hardware.

  2. Game Display: The decoded video frames are displayed to the user, creating a high-fidelity gaming experience with minimal latency, effectively mirroring the game running on the server.

  3. User Input Capture and Transmission: The client captures user input (keyboard, mouse, or controller actions) and sends this data back to the server through the Input Sender module. This data is transmitted over the network using P2P communication, bypassing unnecessary network hops and minimizing delay.

Network Layer

  • P2P Communication: By implementing peer-to-peer networking, RAYWAN reduces latency associated with traditional server-based networking. The direct P2P connection between the server and client allows for efficient, low-latency data transmission of both video/audio streams and input commands.

  • Bi-Directional Data Flow: The network layer supports bi-directional communication: the video and audio data flows from the server to the client, while input data flows from the client to the server. This two-way communication is optimized for gaming, with video/audio streams and user input tightly synchronized.

RAYWAN General architecture

GPU Hardware Acceleration

Both server and client rely on GPU hardware acceleration for encoding and decoding video, significantly improving performance. GPU acceleration reduces CPU usage, minimizes latency, and enables RAYWAN to handle high-resolution, high-frame-rate video streams without sacrificing quality.

Demo

Demo: Chivarly 2 Demo: Forza Horizon 5
Watch the video Watch the video
Demo: Assassin's creed odyssey Demo: Kingdom Classics
Watch the video Watch the video

Popular repositories Loading

  1. cloudflare_turnstile cloudflare_turnstile Public

    A free CAPTCHAs alternative to enhance security and protect against bots.

    Dart 11 8

  2. SuperFrog SuperFrog Public

    Dart 5 1

  3. nika0000 nika0000 Public

    3

  4. flutter_horizontal_list_view flutter_horizontal_list_view Public

    Simple horizontal list view widget for displaying a list of items in a horizontal layout with fixed crosAxisCount.

    C++ 1 1

  5. parsec-sdk parsec-sdk Public archive

    Forked from MalfoyJW/parsec-sdk

    Low latency, peer-to-peer, interactive game streaming.

    C

  6. moonlight-common-c moonlight-common-c Public

    Forked from moonlight-stream/moonlight-common-c

    Core implementation of Nvidia's GameStream protocol

    C