alternatives to Multipeer connectivity

Hello, I was wondering if there are any alternatives to multipeer connectivity. I am creating a game that allows users to chat among each other and was wondering if there was anything I can use other than multipeer. Moreover, Is there anything I can use that allows me to crossplatfrom, so users in adroid may also chat? Also, is there anything that lets me us Cell service network connection (mobile data) as a means of connection instead of/along with wifi. So which ever one is available can be used?. Thanks in advance. Much appreciated

I just want to know all my options thanks : )

Thanks again

Accepted Reply

Gosh, there’s a lot of questions packed in here. Let’s break this down:

  • The on-the-wire protocol used by Multipeer Connectivity is not documented for third-party use. If you want to talk with code on non-Apple platforms you’ll need to create your own on-the-wire protocol (or adopt some public protocol).

  • Multipeer Connectivity uses Bonjour for local service discovery. Those protocols are public [1].

  • This does not extended to the peer-to-peer link-layer support (Bonjour over Bluetooth, Bonjour over peer-to-peer Wi-Fi). Those protocols are also not documented for third-party use.

  • All of the above relates to the local network. If you want a solution that works over the wider Internet, you should look at the GameKit APIs.

  • The protocol used by GameKit is also not documented for third-party use.

So, to summarise, if you want to implement a game that talks across the wider Internet between Apple and non-Apple platforms, none of Apple’s APIs will be useful to you. You’ll need to investigate third-party solutions or implement a lot of stuff yourself.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

[1] Namely:

Replies

Gosh, there’s a lot of questions packed in here. Let’s break this down:

  • The on-the-wire protocol used by Multipeer Connectivity is not documented for third-party use. If you want to talk with code on non-Apple platforms you’ll need to create your own on-the-wire protocol (or adopt some public protocol).

  • Multipeer Connectivity uses Bonjour for local service discovery. Those protocols are public [1].

  • This does not extended to the peer-to-peer link-layer support (Bonjour over Bluetooth, Bonjour over peer-to-peer Wi-Fi). Those protocols are also not documented for third-party use.

  • All of the above relates to the local network. If you want a solution that works over the wider Internet, you should look at the GameKit APIs.

  • The protocol used by GameKit is also not documented for third-party use.

So, to summarise, if you want to implement a game that talks across the wider Internet between Apple and non-Apple platforms, none of Apple’s APIs will be useful to you. You’ll need to investigate third-party solutions or implement a lot of stuff yourself.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

[1] Namely:

Thank you for your response,

What do you mean by "implement a lot stuff yourself" can you explain so I may better understand what I would need to investigate to further my build. Also, extra sidenote question, Can gamekits be used for implementations in app that arent used for games or aren't games.

Thanks for your reply your helping further my knowledge even more.

What do you mean by "implement a lot stuff yourself" can you explain so I may better understand what I would need to investigate to further my build.

Implementing a cross-platform wide-area gaming protocol is tricky. To start, you’re going to need set up and run some sort of centralise server. What you need beyond that depends on your communication needs. Most real-time games use UDP, which already puts you well off the beaten path. Beyond that:

  • You’ll need to deal with NAT traversal, which is a whole world of fun in itself.

  • You’ll probably also need to provide a backup for that on your centralised server, but some NAT environments can’t be traversed.

  • You have to think about what you’re going to do about networks that are secured by a proxy.

For games that don’t work in real time (turn-by-turn games, for example), you should be able to do all the work on your centralised server, which makes things easier. At that point the only thing you need to worry about is scaling.

Also, extra sidenote question, Can gamekits be used for implementations in app that arent used for games or aren't games.

To start, Multipeer Connectivity is not part of GameKit and it is definitely supported for non-game apps.

With regards the networking APIs in the GateKit framework proper, I don’t think there’s any technical reason you can’t use them in a non-game app, so this really boils down to a policy question, and that’s not something I can address.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hi,


"To start, Multipeer Connectivity is not part of GameKit and it is definitely supported for non-game apps.

With regards the networking APIs in the GateKit framework proper, I don’t think there’s any technical reason you can’t use them in a non-game app, so this really boils down to a policy question, and that’s not something I can address.

Share and Enjoy"




For this would I need a server?? as in to use gamekits for this purpose?


Thank you for your replies, it means a lot

For this would I need a server?

The quote you included referenced two APIs, Multipeer Connectivity and GameKit, so I’m going to respond for each:

  • For Multipeer Connectivity this question is not applicable because that API is for local networking only.

  • For GameKit this question is a bit subtle. Historically GameKit was built to allow folks to create games entirely based on Apple infrastructure. They seem to have backed away from that recently, but this is not a technology that I follow closely so I can’t give you a definitive answer.

GameKit has its own topic area here on DevForums, and someone over there might be able to offer a more informed opinion.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"