Je cherche à créer un jeu multijoueur en ligne 3G pour l'iphone. Le multijoueur est mon objectif principal, mais j'ai remarqué que toutes les applications de jeu nécessitent une connexion Wi-Fi. Est-ce que quelqu'un sait si c'est simplement un problème avec la vitesse du réseau 3G ou si Apple impose des restrictions sur leur réseau 3G qui empêchent les développeurs de faire cela?
iphone
software-engineering
networking
multiplayer
Jesse Dorsey
la source
la source
Réponses:
Je ne connais aucune limitation spécifique qu'Apple impose concernant la 3G. Le support de communication serait toujours TCP / UDP ou HTTP POST / GET.
En termes de limitations de réseau, les réseaux cellulaires comme votre service 3G ont certainement un ensemble unique de caractéristiques. Les réseaux 3G sont connus pour avoir une latence horrible, il n'est pas rare de voir des temps aller-retour allant jusqu'à 700 ms. En termes de bande passante, la 3G n'est pas si mal une fois que les données commencent à couler.
Si vous regardez un jeu d'action multi-joueurs où chaque seconde compte, avoir des pointes de 0,7 seconde serait assez mauvais. C'est une des raisons pour lesquelles vous utiliseriez le Wifi. Cependant, si c'est un jeu de type Mafia Wars, ça irait.
Je me souviens peut-être de cela de manière incorrecte, mais je semble me souvenir qu'il y a eu un problème lors de l'établissement d'une session client / client entre deux utilisateurs 3G - comme s'il y avait un pare-feu qui empêchait tout port entrant sur 3G. Pour cette raison, vous auriez besoin d'un serveur centralisé pour correspondre aux clients ou utiliser le Wifi.
la source
Les téléphones utilisant des réseaux 3G fonctionnent généralement (pas toujours, mais surtout) derrière des NAT très restrictifs. Les paquets UDP provenant du même socket source vers deux destinations différentes apparaissent généralement à partir du périphérique en utilisant deux adresses IP différentes. Cela rend très difficile la création de connexions poste à poste.
Les conditions réseau telles que la latence et la perte de paquets sont plus courantes que les connexions ADSL ou par câble à domicile. Cependant, si l'utilisateur a un très bon signal, la bande passante peut être supérieure à l'ADSL ou au câble.
Vous pouvez généralement utiliser TCP et UDP. Cependant, si vous utilisez UDP, je recommanderais d'utiliser une bibliothèque capable de faire face à de mauvaises performances UDP. J'ai utilisé ReplicaNet avec beaucoup de succès sur des réseaux aux performances réseau médiocres. Les connexions UDP fiables qu'il utilise semblent être très stables et se rétablissent bien de la perte de paquets.
la source