Crossplay for PC is here ...

Hello, I’m desperately looking for information on how to play a game in Epic and Steam in multiplayer. Are there any examples or tutorials available? I’ve tried following the procedure outlined in the developer portal documentation, but without success.
Thank you

Ps: I have my to game ready and working in mp in Unreal and Steam.
But for crossplay between steam/Epic …no success.

Hi J_Tox,

What issues are you running into? Do you have more details or specific questions? If your Steam, Epic and Unreal build are all using EOS for the backend in theory that should put all players in the same pool if the deployment ID on all instances of the game are the same. (assuming you are using EOS).

I would also suggest taking a look at Lyra as at least one example of how to set this all up. Its a bit overkill but at least a working demo/reference. For now, more context on what issues you are running into would be helpful.

Hello thank you for the answer.
I will try to be more clear.
In the Epic dev portal I created my organization,brand setting,stats,achievement,leaderboard.
I used the EOS core plugin from the market to develop that single/multiplayer game.
In the Steam I already created in the partner steamgame my Application with the unique ID and the necessary stats and achievements to be in sync with the Epic side.
I’m usigng the SteamCore-PRO plugins from the marketplace to achieve this.So they are both the same game.
from the Steam side I generated an Encrypted App Ticket Key SDK Auth
I put that key on Epic dev portal in the Product Setting / Identity Providers / inside the field: Encryption Key( Required only for Encrypted App Tickets)
And also the App ID from the Steam provided for my App.
I see that you mention: “If your Steam, Epic and Unreal build are all using EOS for the backend in theory that should put all players in the same pool if the deployment ID on all instances of the game are the same. (assuming you are using EOS).”
Do you mean that on the Steam side I have to keep using the EOS functions to do the Login to fetch and assign data to my stats,achievement,leaderboard from my Epic dev portal and not using the SteamCore stats,achievement,leaderboard ?
So I have to use on Steam the Auth login from EOS also ?
At the moment I was not sure about those point.
I know also that when I will upload my build on Steam I have to include the redistributable installer.
Can you tell me if I have to follow those steps and what i am missing ?
Thank you.

Hi J_Tox,

Thanks for the additional context. I will preface by saying that I have limited ability to support EOS Core and its plugins as it is developed and owned by a third party so I cannot know exactly what it is doing under the hood or how its integration works.

That being said, main things to highlight. To start, for crossplay to work you need a common multiplayer backend for all players. EOS was built to support this, and EOSCore should be able to help with that. You’ll probably want to confirm with the EOSCOre community/discord on integration but first step is signing the player into the EOS backend via EOS Connect. The main idea is taking an authenticated user token (Steam, Epic) and signing into the backend to retrieve their platform agnostic product user ID (PUID). If this is the first time the account is signing in they won’t be found and you would follow the create user flow to have a PUID generated and associated. If you are using the same IDs (product ID, Sandbox ID, Deployment ID, Client ID/Secret) to authenticate the EOS SDK on your Steam and Epic builds, then all of your players should be in the same backend and would be the first part of getting crossplay solved and working.

A good way to know that things are working is take a players Steam ID or Epic account, and in your Organization on the Dev Portal select “Accounts” on the lefthand side and enter that ID and search to see if a PUID is associated with the account for your title. That is a good indicator that the Connect login flow is working.

The second part to consider with our requirements is if your game supports friend invites. As our documentation mentions, if you support the ability to invite native platform friends (so if im on Steam I can see and invite my other Steam friends directly), on Epic the same, you would need a similar mechanism to do so across storefront boundaries.

Most often I see titles solve this by adding an optional ability to log into a players Epic Account on Steam. This is where EOS Auth comes into play, as that is how you sign into an Epic Account. So then, on the Steam build, there is a setting somewhere that allows a player to login to their Epic account alongside their Steam account, and it would also load the Epic Overlay where Steam players can see and invite (or receive invites) via their Epic friends social graph to the game. Other solutions are also completely valid, the requirements documentation should expand on that.

Lots to digest, most of it “philosophical” but hopefully also gives you some pointers in the right direction. If not, or you have more questions/issues please follow up and we can tackle those as well.

Thank you so much it is becoming more clear for me.
Now for this part: " You’ll probably want to confirm with the EOSCOre"
-Eoscore-PRO fulfill all the requirements of EOS.
If I undestand …I can put a copy of my build alongside the redistribuable Installer , keep the same Epic IDs (product ID, Sandbox ID, Deployment ID, Client ID/Secret) to authenticate the EOS SDK on my Steam and Epic builds, add also in my steam config file DefaultEngine.ini my SteamDevAppId , SteamAppId and I will normally have something which can work.
So in that case I even don’t need on my steam build to fetch the Stats, achievement( with the steam functions) I created on the steam platform but I will keep the EOS functions to fetch them on the Epic platform.
Is that correct ?
Thanks

Yes correct, you could, if you want, support cross progression between Steam and EGS (should a player buy on both platforms) and track acheivement progress in EOS and make the relevant calls to Steam when to unlock an achievement. Entirely optional, but possible.

But otherwise, yeah, use Steam SDK/commands to track achievement progress on Steam, for EGS players you would track that all through EOS.

1 Like

Thank you very much , now I will do my best to read the documentation with a new insight and try the implementation.

Hello, if you found a solution to this issue, can you share it? I’ve been dealing with the same problem for days. Thank you.