Multiplayer not Working for IOS

Since there is NO documentation or lack of answers on the answer hub i’m posting this as a bug to get some attention.

I have a blueprint-only project that is suppose to run multiplayer on IOS devices. However, i’ve done all the steps required to make it run on Windows and Mac(they work there) but for IOS there is no instructions nor any sample projects to trouble shoot my issues.

When i try to create a session or join one i receive the following error on the device log.

LogScriptCore:Warning: CreateSession - Cannot map local player to unique net ID
LogScriptCore:Warning: FindSessions - Cannot map local player to unique net ID

I’m setting everything up on the DefaultEngine.ini :

[OnlineSubsystem]
DefaultPlatformService=Null (or DefaultPlatformService=IOS doesn’t work)

And Enabling the game center in the project settings.

For now i’m using simply LAN to connect the devices so Distribution and Mobile Provisioning and etc should not be an issue.

Is Mobile Multiplayer Supported or not? If yes, please could you kindly point me to some references for setting it up.

EDIT: Kyle Langley specified that the reason mobile online multiplayer is not supported is because of a bug, not because there is no intended support via the engine. Apologies for the misinformation.

For now, you’ll need to use a 3rd party service for that on mobile. We went with Photon for our cross-platform iOS/Android multiplayer.

Unfortunately, this will prevent your project from being Blueprint-only. I just learned some C++ over at http://www.learncpp.com/ and moved forward with the integration of the SDK. Honestly though, if you’re any good with Blueprints, it’s not much different. The logic and terminology are the same; you’ll just have to get used to the syntax and gasp typos that you don’t have to deal with in Blueprints. We still use Blueprints for everything else (it’s a mobile game, so why not; performance is fine as long as you opt for Timelines instead of Tick).

Once you integrate Photon into your project, you’ll probably wanna just use their API instead of UE4’s. But you could create a wrapper if you wanted. If you’re trying to avoid complexity though, I’d recommend using Photon’s built-in functions and just exposing them to Blueprints. That’s what we did. Once the core C++ work was out of the way, as far as setting up our custom Photon functions, the rest is handled in Blueprints. The major drawback is not being able to UE4’s built-in replication system. So based on how complex your game is, you should know which one would be better for longterm. We aren’t using any custom server code, which is another beast by itself.

Hey LuLima,

Thank you for your report. We will begin investigation into this issue as soon as possible. If we are unable to reproduce the problem, or need more information, we will follow up with some additional questions for you. Otherwise, we will post an ‘Answer’ once the issue has been logged in our bug database or we have a solution for it.

To replicate this issue, it is as simple as creating a 4.12 blueprint project with a create and join session nodes connected to a button and trying to run it on a IOS device.

Hey LuLima,

My apologies for the delay on this.

I was able to recreate the issue and have logged it. You can track its progress through the development staff here: https://issues.unrealengine.com/issue/UE-34875

Also, for future reference, once this issue is fixed the information that states you must have a third party support iOS multiplayer functionality is wrong. You can, however, use something like Photon, if you want to replace the normal Game Center support.

So, when this issue is fixed the match-making and session logic for the IOS platform should be working as intended? It should work online and may be used for multiplayer on a production level?

You should be able to use Game Center to create and join multiplayer sessions - when this issue is fixed.

Hi, I see tons of posts about this topic – when can we let iOS devices play with each other?

A simple client opening a level on listen and another one connecting is enough. I’m doing my custom match-making as a back-end service

No new information regarding this issue. Keep an eye on:

https://issues.unrealengine.com/issue/UE-34875