question

Thomas H avatar image
Thomas H asked

Unreal Online Session Management,PlayFab Unreal Online SubSystem

Hi,

I'm looking for a way to handle matchmaking in Unreal across multiple platforms. I thought PlayFab would offer that, but the proper way to do this in Unreal would be with an Online Subsystem which handles everything related to game sessions.

The PlayFab Unreal plugin doesn't implement an Online Subsystem, atleast I couldn't find one. So, my question is, is it possible to handle Unreal game sessions with PlayFab and if yes, how?

,
unreal
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

element808 avatar image
element808 answered

Aloha Thomas,

We successfully launched our multi-platform mobile game a few months ago. We didn't use the default UE4 online subsystem. We set it to OnlineSubsystemNull and just used Open Level and Command nodes (after getting IP and port of a standby server via PlayFab plugin). For this to work you need to integrate the GSDK into your UE4 project. If you're having trouble with getting this done, Microsoft published our technical document in getting this setup here: https://docs.microsoft.com/en-us/gaming/playfab/features/multiplayer/servers/playfabgsdk_guide

5 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Seth Du avatar image Seth Du ♦ commented ·

@Thomas H, PlayFab is a service based on RESTful API, which is platform independent.

Refer to matchmaking, the attributes can be customized. If you want players can only match players with the same platform, it is convenient to configure attributes when requesting matching making ticket. Meanwhile, the matchmaking queue can configure a String Equality Rule.

Please feel free to reply this answer if you have any questions.

0 Likes 0 ·
Thomas H avatar image Thomas H Seth Du ♦ commented ·

Thanks for your answer, my problem isn't that easy to solve. If you do a P2P network, players can't connect straight to someones listen server, because first, there is a high chance the listen server is behind a NAT and second Unreals open command didn't even work when I tried it with a correct ip and port combination.

Unreal comes with a Steam Online Subsystem which handles P2P networking, that's why I hoped the PlayFab plugin could do the same, Steam isn't an option because it's not platform independent.

0 Likes 0 ·
element808 avatar image element808 Thomas H commented ·

P2P is a different beast. You'll essentially need to setup NAT-punchthrough, which Photon (and Steam) offers. PlayFab and Photon work well together, though the trade off is that you won't be able to use much, if any, of Unreal Networking and will have to develop your own replication methods using Photon. Photon does have a sample project and basic tutorial for this though.

Photon wasn't an option for us because we were already too deep in UE4 Networking so we went with the dedicated server option via PlayFab. Steam also wasn't an option for us because we were developing for mobile.

If it's on the same network, it's easier to setup P2P cause you don't need to do NAT-punchthrough, and you can use the UE4 subsystem using join session, find session, etc...

0 Likes 0 ·
Show more comments
Haris Sevinc avatar image Haris Sevinc commented ·

Hi there, im trying to develop multiplayer game with UE4 but i confused about services.

I wanna create co - op rpg game ( its not that much matter, cuz moba and fps games are working same ).

ıt should work on master server because im rewarding ppls with real money (security issues).

In this case,

- Playfab and photon

- Playfab multiplayer server

- Playfab matchmaking system

- Playfab UE4 Subsystem

Which services should i use. Im confused so hard, can you show me the a way to do this?

0 Likes 0 ·
Thomas H avatar image
Thomas H answered

Hi, thanks for the answer. I actually tried the same before, but It seems like I can't get the correct port.

To be clear, I want to implement a P2P network and hoped PlayFab would offer something for that, like Steams P2P.

I can't find a way to connect with someone else using the IP and port. I tried to get the used port from the Online Subsystem, but everytime I try to open or to clienttravel using that port it fails. And that already happens inside the same network without any NAT between both clients.

5 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

element808 avatar image element808 commented ·

Try with port 17777 or 1777. You could also try with just the IP if you're on the same network.

0 Likes 0 ·
Thomas H avatar image Thomas H element808 commented ·

The last time I tried it the reported port was 17777 but connecting with it wasn't working. Are you using the open command or ClientTravel?

0 Likes 0 ·
element808 avatar image element808 Thomas H commented ·

Sorry, I had to go waaaaay back on our source control to see what we used to join locally on P2P session (i.e. listen server). We used the Execute Console Command node with the command "open 127.0.0.1:7777".

joinlocalserver.png

0 Likes 0 ·
joinlocalserver.png (148.2 KiB)
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.