Ich suche nach einem 3g Online-Multiplayer-Spiel für das iPhone. Multiplayer ist mein Hauptaugenmerk, aber ich habe festgestellt, dass alle Spiele-Apps Wi-Fi erfordern. Weiß jemand, ob dies einfach ein Problem mit der Geschwindigkeit des 3G-Netzwerks ist, oder ob Apple seinem 3G-Netzwerk Einschränkungen auferlegt, die Entwickler daran hindern?
iphone
software-engineering
networking
multiplayer
Jesse Dorsey
quelle
quelle
Antworten:
Ich kenne keine spezifischen Einschränkungen, die Apple in Bezug auf 3G auferlegt. Das Kommunikationsmedium wäre weiterhin TCP / UDP oder HTTP POST / GET.
In Bezug auf Netzwerkeinschränkungen weisen Mobilfunknetze wie Ihr 3G-Dienst zweifellos einzigartige Merkmale auf. 3G-Netze sind bekannt für ihre schreckliche Latenz. Es ist nicht ungewöhnlich, dass Roundtrip-Zeiten von bis zu 700 ms auftreten. In Bezug auf die Bandbreite ist 3G nicht so schlecht, sobald die Daten fließen.
Wenn Sie sich ein Mehrspieler-Actionspiel ansehen, bei dem jede Sekunde zählt, wären Spitzen von 0,7 Sekunden ziemlich schlecht. Dies ist ein Grund, warum Sie Wifi verwenden würden. Wenn es sich jedoch um ein Spiel vom Typ Mafia Wars handelt, wäre alles in Ordnung.
Ich erinnere mich möglicherweise falsch daran, aber ich erinnere mich an ein Problem beim Einrichten einer Client / Client-Sitzung zwischen zwei 3G-Benutzern - als gäbe es eine Firewall, die eingehende Ports über 3G verhindert. Aus diesem Grund benötigen Sie entweder einen zentralen Server, der den Clients entspricht, oder Sie verwenden WLAN.
quelle
Telefone, die 3G-Netze verwenden, arbeiten normalerweise (nicht immer, aber meistens) hinter sehr restriktiven NATs. UDP-Pakete von demselben Quell-Socket zu zwei verschiedenen Zielen werden normalerweise vom Gerät mit zwei verschiedenen IP-Adressen angezeigt. Dies macht es sehr schwierig, Peer-to-Peer-Verbindungen herzustellen.
Netzwerkbedingungen wie Latenz und Paketverlust sind häufiger als Heim-ADSL- oder Kabelverbindungen. Wenn der Benutzer jedoch ein sehr gutes Signal hat, kann die Bandbreite höher sein als bei ADSL oder Kabel.
Normalerweise können Sie TCP und UDP verwenden. Wenn Sie jedoch UDP verwenden, würde ich die Verwendung einer Bibliothek empfehlen, die mit einer schlechten UDP-Leistung fertig wird. Ich habe ReplicaNet mit großem Erfolg in Netzwerken mit schlechter Netzwerkleistung verwendet. Die zuverlässigen UDP-Verbindungen, die es verwendet, scheinen sehr stabil zu sein und erholen sich gut von Paketverlusten.
quelle