Branch | ||||
---|---|---|---|---|
UE5.3 | ||||
UE5.2 | ||||
Master |
The official home for the Pixel Streaming servers and frontend!
The frontend and web server elements for Unreal Pixel Streaming (previously located in Samples/PixelStreaming/WebServers
) are now in this repository, for all to contribute to. They are referred to as the Pixel Streaming Infrastructure.
Goals
The goals of this repository are to:
- Increase the release cadence for the Pixel Streaming servers (to mitigate browser breaking changes sooner).
- Encourage easier contribution of these components by Unreal Engine licensees.
- Facilitate a more standard web release mechanism.
- Grant a permissive license to distribute and modify this code wherever you see fit (MIT licensed).
Contributing
If you would like to contribute to our repository, please reference our contribution guide. Thank you for your time and your efforts!
Contents
The Pixel Streaming Infrastructure contains reference implementations for all the components needed to run a pixel streaming application. They are structured as separate projects, which work together, but are designed to be modular and interoperable with other implementations which use WebRTC technology. These implementations include:
-
A signalling web server, called Cirrus, found in
SignallingWebServer/
. -
An SFU (Selective Forwarding Unit), found in
SFU/
. -
A matchmaker, found in
Matchmaker/
. -
Several frontend projects for the WebRTC player and input, found in
Frontend/
:- shared libraries for communication and UI functionality
- separate implementations using different techologies such as TypeScript or React/JSX
For detailed information, see the frontend readme.
Releases
We release a number of different components under this repository, specifically:
- Container images for the signalling server
- NPM packages for the frontend
- Source releases of this repo with the reference frontend built as a minified js bundle
Container images
The following container images are built from this repository:
- ghcr.io/epicgames/pixel-streaming-signalling-server (since Unreal Engine 5.1)
( This link requires you to join Epic's Github org )
NPM Packages
The following are unofficial
NPM packages (official ones coming soon):
Branch | Frontend library | Frontend reference ui |
---|---|---|
UE5.2 | lib-pixelstreamingfrontend-ue5.2 | lib-pixelstreamingfrontend-ui-ue5.2 |
NPM getting started
#frontend (core lib)
npm i @epicgames-ps/lib-pixelstreamingfrontend-ue5.2
#frontend ui
npm i @epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.2
Documentation
- General Docs
- Frontend Docs
- Signalling Server Docs TO DO
- Matchmaker Docs TO DO
- SFU Docs TO DO
Tagged source releases + built typescript frontend
Versions
We maintain versions of the servers and frontend that are compatible with existing and in-development version of Unreal Engine.
For a list of major changes between versions please refer to the changelog.
This repository contains the following in branches that track Unreal Engine versions:
Branch | Status |
---|---|
Master | Dev |
UE5.3 | Pre-release |
UE5.2 | Current |
UE5.1 | Supported |
UE5.0 | End of life |
UE4.27 | Unsupported |
UE4.26 | Unsupported |
Legend | Meaning |
---|---|
Dev | This is our dev branch, intended to be paired with ue5-main - experimental. |
Pre-release | Code in here will be paired with the next UE release, we periodically update this branch from master . |
Current | Supported and this is the branch tracking the latest released version of UE. |
Supported | We will accept bugfixes/issues for this version. |
End of life | Once the next UE version is released we will not support this version anymore. |
Unsupported | We will not be supporting this version with bugfixes. |
Legal
ยฉ 2004-2023, Epic Games, Inc. Unreal and its logo are Epicโs trademarks or registered trademarks in the US and elsewhere.