I’m working on a project with a couple of coworkers that is not exactly a game, but rather player would just walk around a space and they would interact with some things like videos. Very simple, but we’re all learning Unreal from scratch, so everything is quite the challenge.
One thing we need to figure out is how to get the people we’re targeting (basically other employees) to see this in the easiest possible way. So we’ve been looking into pixel streaming. After a steep learning curve, I was able to figure out how to setup the server and get people to connect to it from all over the world.
But here’s the problem: if 10 are people are connected, they all play as one. If one of them moves to the right, they all do at the same time. So it’s like 10 people fighting for control of one player. Obviously that makes the whole thing useless, so what I’m trying to figure out is how to make each person that loads the game in their browser a unique player inside the game, so they can walk around and interact with items as they see fit.
I saw a video on YT where a guy launches two instances of the game, and then loads the IP from two separate browsers and each is different, but I did that and it doesn’t work. I joined the game from one computer, then from another computer, and they were both the same. In the powershell window, I can see that they are different players, but in the two browsers, they act as one. And also, we need to have in a few dozen people at the same time, so launching let’s say, 40 instances of the game would cripple any server and would be insanely expensive.
Here is an answer which appears ages later after your question.
If your application doesn’t have multiplayer support, that means that the users will connect to isolated environments and they won’t interact with each other.
For multiplayer experiences, you can check CollabViewer project templates which provide an opportunity for you to set up locally connected multiplayer experiences inside your application or alternatives.
Regarding the Pixel Streaming part of your question, if you are setting a single instance and sharing access to this instance with all your users, they will only see the same pixel streaming experience because you are simply sharing the same screen with them as you mentioned.
If you only need to show your project, you can use Vagon Streams to share your project from a single link and let your users access your project(s) from their browser without needing to download your project. You will only need to upload your app and create a Stream link, that’s all. No integration is needed.
If you would like to create multiplayer experiences and let your users interact with each other, you can check the following blog post to learn more.
Is it possible to start an instance when a player joins Pixel Streaming in Unreal Engine?
I don’t want multiplayer; I need a unique instance for each player.
I plan to use a matchmaker to join the instance, but I’m unsure how to automatically start an instance when a player joins in a browser. Is there any way to achieve this?
Yes, you only need to upload your application & create a Stream link for your application. When someone clicks on your link, the system will automatically assign a unique instance to your user, and run your application with the selected performance option.
Also, if you have some time in the upcoming days, we will be happy to tell you more about Vagon Streams and our capabilities. You can contact us via streams@vagon.io.
for creating individual user to join unique session, we need to start new instance.
Which is pretty much expensive
if ur are using something like aws or playfab etc
Also aws doesnot provide any direct solution for auto scaling on demand
Playfab has plugin which support auto scaling.
And discord people from unreal server, suggested that pixel streaming is not a good option for any use case, until our budget is high