We understand that Pixel Streaming is still early access but so far it works for what we need but the scalability aspect is still uncertain, does anyone have any input on this?
Also - From our understanding on how Pixel Streaming works you need to have a single server for each user, is this correct or can you have multiple users, each with the ability to control movement, etc. themselves connect to a single machine? If so what’s the limit on the number of clients that can connect to a single machine before you need to spin up another machine?
Hey @CharlestonS, the question about scalability is a great one. I haven’t heard of any scalability tests that we’ve done internally to establish the limit for how many connections we can stream from a single server. I’d be really interested to hear any findings you can share.
For your second question, you don’t need a server for each user. You can have many end-users connected to the same UE4 instance, seeing the same content being broadcast from the engine. If they’re all viewing the content through a player web page that supports sending mouse/keyboard/touch events back to the engine (like the default player.htm page), then all their inputs will get sent to the Engine. The result is that they’ll all fight for control – if I try to move left and you try to move forward at the same time, the engine will behave like it’s getting both inputs and will move the character left and forward at the same time. If I try to move left and you try to move right, the inputs cancel out and the character won’t move at all.
By customizing the player HTML page, and directing different users to different pages, you can set it up so that they have different amounts of control over the engine. For example, you could make one page for a “presenter” that allows controls, and another page for “attendees” that blocks all controls so that they only see the broadcast of what the presenter is doing. Both those pages can be served by the same Signaling & Web Server, the same WebRTC Proxy Server, and the same instance of the Unreal Engine.
Like I said above, we just haven’t pushed the limits of how many users can connect to the same stack at the same time.
We launched a SaaS platform doing exactly what you need, I think.
Feel free to check our website and let me know if it answers your needs: www.furioos.com
In short, Furioos allows you to stream your 3D applications (like your Unreal Engine applications) and share them as easily as a video on Youtube.
We take care of the creation of virtual machines, the storage of your applications, as well as their scalability.
You only have a few clicks to give anyone access to your Unreal Engine applications.
No GPUs are required, because the calculation of the 3D application is done in our servers!
You will find a short video tutorial here: Embed your Unreal Engine games on any website! (no GPU required) - YouTube
The beta is free, feel free to test it.
One more thing: we now support the amazing Pixel Streaming on Furioos
Don’t hesitate to contact us if you need more information.
I am interested in how the commands on Pixel Streaming would work in the multi-page setup described. If you wanted to make some shared experience that two people log into, would the commands from the different pages be able to be sent in parallel?
Like one player has Keyboard letter A assigned to their page and it makes a cube jump. Another page has Keyboard Letter B assigned to their page to make the cube move forward. If both keys are hit at the same time would they block each other, lag in response, or happen in parallel?
So your using scenario is possible if you use for each user an own Pixel Streaming connection and simultaneously creating a multi gaming application. The effort to develop such an implementation (multi-client, multi-gaming, auto scaling cloud infrastructure for Pixel Streaming) is complex but solvable.
Hi @CharlestonS did you find any interesting solution / insights that could help on your question ? Seems we are at the same level here and still not having a proper solution for end user scalability + pixel streaming.
Hello, I have managed deploying my pixel streaming game, and successfully create multiuser experience with matchmaker server by altering the parameters in the exe with adding parameter --matchmakerPort=9999 in exe 1, matchmakerPort=9988 in exe 2, matchmakerPort=9977 in exe 3.
Run exe 1 and let player enter, the player will be redirected to port 9999 and control the first instance
Run exe 2 and let player enter, the player will be redirected to port 9988 and control the second instance, etc…
But I don’t know yet how to automate so first player will enter 9999, second will enter 9988, but when the first player logged out, port 9999 will be empty, so the third player when entering will use port 9999