The changelog is a summary of commits between releases of Unreal Engine.
As a reminder each UE-X branch/tag in this repository corresponds to a version of Unreal Engine.
- Protocol structures can now contain strings by @Belchy06 in EpicGames#336
- Added the ability for the frontend peer to auto connect when a new streamer is available by @mcottontensor in EpicGames#358
- Upgrade 5.2 to 5.3 in libraries, docs, log messages, build pipelines by @lukehb in EpicGames#262
- Include create, reconnect, and update events (with associated tests) by @jibranabsarulislam in EpicGames#273
- Add github action for PR and Issue management by @Belchy06 in EpicGames#304
- Update stale.yml by @Belchy06 in EpicGames#305
- Update stale workflow to also auto close stale issues and PRs by @Belchy06 in EpicGames#306
- Show player count in stats panel by @Belchy06 in EpicGames#303
- Change implementations/EpicGames to implementations/typescript #166 by @gunsha in EpicGames#177
- Refactor SignallingWebServer to a single docker file by @Belchy06 in EpicGames#337
- Update LatencyTest handler to accept input data by @Belchy06 in EpicGames#340
- Add contribution guideline
CONTRIBUTING.md
by @DenisTensorWorks in EpicGames#352 - New matchmaker queue screen with easy customization by @kasp1 in EpicGames#211
- Updated CONTRIBUTING.md with backport rules by @Belchy06 in EpicGames#357
- Signaling message reference doc by @mcottontensor in EpicGames#271
- Update SignallingProtocol.md by @mcottontensor in EpicGames#288
- Fixed auto reconnect to not reconnect when the page is refreshed. by @mcottontensor in EpicGames#285
- Fixed iOS touch when settings panel is open by @Belchy06 in EpicGames#274
- Fixed Firefox console errors
TypeError: this.preferredCodec.split is not a function
by @Belchy06 in EpicGames#310 - Fixed ensuring touch is relative to absolute location of parent rect by @StomyPX in EpicGames#316
- Fixed injecting new params into SDP to get stereo back on Chrome by @StomyPX in EpicGames#332
- Fixed matchmaker asking for OS authentication instead of erroring out with EACCESS by @StomyPX in EpicGames#333
- Fixed consuming the context menu event instead of sending a mouse up by @StomyPX in EpicGames#354
- Bump tough-cookie from 4.1.2 to 4.1.3 in /Frontend/library by @dependabot in EpicGames#290
- Bump word-wrap from 1.2.3 to 1.2.4 in /Frontend/library by @dependabot in EpicGames#320
- Bump word-wrap from 1.2.3 to 1.2.5 in /Frontend/ui-library by @dependabot in EpicGames#327
- Bump Node.js to latest LTS by @StomyPX in EpicGames#321
- Added minimal sample React implementation by @hmuurine in EpicGames#159
- Added a new frontend for the Pixel Streaming Demo showcase project by @lukehb in EpicGames#158
- Added multiple streamer support by @mcottontensor in EpicGames#74
- Added
DefaultToHover
being parsed as a config option inInitialSettings
message by @StomyPX in EpicGames#68 - Added indication to the signalling server when the browser intends to send the offer by @Belchy06 in EpicGames#75
- Added experimental support for WebXR based experiences by @Belchy06 in EpicGames#85
- New general docs page/ToC + new security page. by @MWillWallT in EpicGames#254
- Update README to mention container images require being part of Epic's Github org by @mcottontensor in EpicGames#248
- Update platform_scripts readme.md to explain the different scripts by @lukehb in EpicGames#224
- Improve signalling Server readme @DenisTensorWorks in EpicGames#223
- Adding microphone feature documentation for UE5.2 by @DenisTensorWorks in EpicGames#228
- Adding microphone feature documentation by @DenisTensorWorks in EpicGames#208
- Added new general docs page/ToC + new security page. by @MWillWallT in EpicGames#254
- Settings Panel Documentation by @MWillWallT in EpicGames#135
- Customised Pixel Streaming Player Page by @MWillWallT in EpicGames#90
- Updated Signalling Server docs by @DenisTensorWorks in EpicGames#223
- Updated docs for frontend for settings and TURN by @lukehb in EpicGames#224
- Adding docs for microphone feature by @DenisTensorWorks in EpicGames#228
- Updated README to mention container images require being part of Epic's Github org by @mcottontensor in EpicGames#248
- Updated the Frontend Docs to move some material from UE docs official to this repo by @StomyPX in EpicGames#152
- Update Docs to remove broken links by @Belchy06 in EpicGames#122
- Add repository health status in the form of Github badges table on readme.md by @lukehb in EpicGames#265
- Re-enable iOS and iPadOS fullscreen by @Belchy06 in EpicGames#266
- Changed forwarded logs to Cyan, added warning for missing playerId by @StomyPX in EpicGames#253
- Added "media-playout" to prevent spam in Aggregated Stats by @chasse20 in EpicGames#232
- Added 'stat PixelStreamingGraphs' to showcase frontend #229 by @devrajgadhvi in EpicGames#238
- Bump socket.io-parser from 4.2.2 to 4.2.4 in /Matchmaker by @dependabot in EpicGames#244
- Bump engine.io from 6.4.0 to 6.4.2 in /Matchmaker by @mcottontensor in EpicGames#220
- Allow inheritance of webrtcPlayerController and webXrController by @Belchy06 in EpicGames#209
- Pass command line args when calling run_local.bat by @lukehb in EpicGames#109
- Customize frontend styles through UI API by @hmuurine in EpicGames#133
- Force URL param settings when receiving initial application settings by @Belchy06 in EpicGames#134
- Added ability to pass HTTPS certificate locations via Cirrus configuration by @marcinbiegun in EpicGames#149
- Added unit tests for library by @hmuurine in EpicGames#156
- Converted frontend javascript to typescript and refactor. by @lukehb in EpicGames#63
- Removed useless code, make code style more consistent by @Senseme in EpicGames#59
- Multi-streamer QOL improvements by @Belchy06 in EpicGames#88
- Removing the player id from forwarded messages by @mcottontensor in EpicGames#91
- Added a QOL message when multiple streamers are detected by @Belchy06 in EpicGames#94
- Added dev and prod configs to webpack by @lukehb in EpicGames#102
- Added github actions to create an NPM package for frontend library and make a release for the repo by @lukehb in EpicGames#103
- Neaten up install scripts by @Belchy06 in EpicGames#106
- Added 'stat PixelStreamingGraphs' to showcase frontend #229 by @devrajgadhvi in EpicGames#238
- Changed forwarded logs to Cyan, added warning for missing playerId by @StomyPX in EpicGames#253
- Allow inheritance of webrtcPlayerController and webXrController by @Belchy06 in EpicGames#209
- Alter reconnection flow to request streamer message list and fail out after N attempts. by @Belchy06 in EpicGames#195
- Added exports for UI configuration types by @kass-kass in EpicGames#193
- Added ability to optionally disable certain frontend elements by @kass-kass in EpicGames#161
- Added support for programmatically changing peer layers when using the SFU by @Belchy06 in EpicGames#179
- Improved frontend API support for UE communication by @hmuurine in EpicGames#132
- Added ability in frontend to Enable/disable user input devices by @hmuurine in EpicGames#136
- Exposed websocketController and webXRController to public API by @lukehb in EpicGames#124
- Added XR events: xrSessionStarted, xrSessionEnded, xrFrame by @lukehb in EpicGames#125
- Decouple UI from the frontend library by @hmuurine in EpicGames#110
- Replaced hardcoded log path with given parameter path by @Mirmidion in EpicGames#39
- Fixed viewport resizing not always working due to improperly calling timer. by @mcottontensor in EpicGames#247
- Fixed hovering mouse mode set in URL being overridden on refresh. by @mcottontensor in EpicGames#246
- Fixed matchmaker directing users to http when the signalling server is using https by @mcottontensor in EpicGames#245
- Fixed reconnects will be attempted even when a disconnect is triggered by afk timeout by @Belchy06 in EpicGames#215
- Fixed datachannels not working when using the SFU by @mcottontensor in EpicGames#137
- Fixed SFU having clashing datachannel/stream ids, now using mediasoup's internal stream ids for SCTP by @StomyPX in EpicGames#129
- Fixed controller indices from multiple peers would clash by @Belchy06 in EpicGames#165
- Fixed Connecting to Unreal 5.1 app with the 5.2 frontend crashes on connect by @Belchy06 in EpicGames#180
- Fixed sfu player would try subscribing when sfu disconnected by @Belchy06 in EpicGames#172
- Fixed bug where stress tester would leave orphaned Pixel Streaming connections by @lukehb in EpicGames#185
- Fixed bug where reconnects were being attempted even when a disconnect is triggered by afk timeout by @Belchy06 in EpicGames#215
- Fixed viewport resizing not always working due to improperly calling timer. by @mcottontensor in EpicGames#247
- Fixed log spam caused by missing "media-playout" in Aggregated Stats by @chasse20 in EpicGames#232
- Fixed hovering mouse mode set in URL being overridden on refresh. by @mcottontensor in EpicGames#246
- Fixed matchmaker directing users to http when the signalling server is using https by @mcottontensor in EpicGames#245
- Fixed frontend library not building on Linux due to incorrect casing by @StomyPX in EpicGames#96
- Fixed SFU peer datachannels aren't being created by @Belchy06 in EpicGames#95 and EpicGames#97
- Fixed crash on browsers where the xr object wasn't on the navigator by @Belchy06 in EpicGames#93
- Fixed Preferred codec selector causes no stream if application launched without
-PixelStreamingNegotiateCodecs
by @Belchy06 in EpicGames#83 - Fixed adding the rest of the browsers supported codecs after setting the preferred codec (#83) by @lukehb in EpicGames#84
- Fixed delayed mic input by @Belchy06 in EpicGames#77 and @lukehb in EpicGames#78
- Fixed syntax error by @mcianni in EpicGames#44
- Fixed check if KeyboardEvent.keyCode deprecated then use KeyboardEvent.code + mapping instead. by @lukehb in EpicGames#48
- Fixed bug when negating property in and removing duplicate property by @lukehb in EpicGames#49
- Fixed incorrect login page path when using authentication by @Belchy06 in EpicGames#55
- Fixed handling of "defaultToHover" field in offer by @StomyPX in EpicGames#60
- Fixed Pixel Streaming session disconnecting entirely when using the new frontend by @hmuurine in EpicGames#141
- Fixed input would not entirely unregister when using the new frontend by @lukehb in EpicGames#144
- Fixed frontend not working with older NodeJS versions due ts-jest and jest by @hmuurine in EpicGames#168
- Fixed webpack was double bundling frontend lib into the final bundle (#117) by @lukehb in EpicGames#118 @hmuurine in EpicGames#117
- Fixed cirrus Dockerfile that resulting in a non-functional signalling server by @Belchy06 in EpicGames#123
- Various security updates by @mcottontensor in EpicGames#220
- Security updates for default turn server configuration. by @gingernaz in EpicGames#196
- Bumped qs and express in /SignallingWebServer by @dependabot in EpicGames#69
- Bumped qs and express in /Matchmaker by @dependabot in EpicGames#70
- Bumped passport from 0.4.1 to 0.6.0 in /SignallingWebServer by @dependabot in EpicGames#71
- Bumped engine.io and socket.io in /Matchmaker by @dependabot in EpicGames#72
- Bumped socket.io-parser from 4.2.2 to 4.2.4 in /Matchmaker by @dependabot in EpicGames#244
- Patched Uncaught exception in PixelStreamingInfrastructure via engine by @imhunterand in EpicGames#61
- Fixed insufficient validation when decoding a Socket packet by @iot-defcon in EpicGames#57
- @ CVE-2022-25896 by @mik-patient in EpicGames#35
- Bump webpack from 5.75.0 to 5.76.0 in /Frontend/library by @dependabot in EpicGames#153
- Bump webpack from 5.75.0 to 5.76.0 in /Frontend/ui-library by @dependabot in EpicGames#155
- Bump webpack from 5.75.0 to 5.76.0 in /Frontend/implementations/EpicGames by @dependabot in EpicGames#154
- Fixing security warnings. by @mcottontensor in EpicGames#163
- Moved all package.json under @epicgames-ps scope to avoid package confusion by @lukehb in EpicGames#187
- 3b1b84 Fix black screen flickering when receiving freeze frames.
- 853625 Fix CSS to show AFK overlay.
- c897e1 Fix
pointerlock
errors on platforms like iOS where it doesn't exist.
- 980208 Add handling for mouse double click.
- 6b8f31 Expose freeze frame delay as a configurable option.
- fe5c4c Added Dockerfile for the 5.1 Signalling Server container.
- 3d641a Fixed
MatchViewportWidth
not working if toggled repeatedly. - ca6644 Fix controller button messages not being sent.
- bb4063 Fix missing
let
in loops. - b59bfb Fix
removeResponseEventListener
using remove instead of delete. - 4fee8a Fix missing initialization for unquantizeAndDenormalizeUnsigned.
- 42fa91 Move to standardized
onwheel
browser event.
- b23cba Added a
MaxPlayerCount
configuration option to the signalling server to restrict participant numbers (default -1: no upper limit). - e46c4d Added support for handling websocket messages sent as binary.
- 616f07 Added
offerToReceive
toggle/flag to indicate browser should/or should not make the SDP offer. - 845ab1 Added ability to send handle a "input protocol", which is a protocol specification for data channel messages sent by the UE side. This allows the frontend need no extra handling to support custom data channel messages (of course the user must still bind a handler if they wish to do anything with the message).
- 1c1fe0 Added ability to request keyframes on the frontend.
Backported 5.0 frontend to support 4.27:
- Removed SFU support as this is not supported in 4.27.
- Ignore playerConnected message as not supported in 4.27.
- Force frontend to generate the WebRTC offer as 4.27 expects this.
Backported 5.0 frontend to support 4.26:
- Removed SFU support as this is not supported in 4.26.
- Ignore playerConnected message as not supported in 4.26.
- Force frontend to generate the WebRTC offer as 4.26 expects this.
- Remove Linux scripts as Linux Pixel Streaming was not supported in 4.26.
- Force the removal of
extmap-allow-mixed
from the SDP as WebRTC version UE used in 4.26 did not support it.
Versions prior to UE 4.26 are not tracked here as this repository has never supported those versions.