Estou pensando em fazer um jogo multiplayer online 3G para o iphone. O modo multijogador é o meu foco principal, mas notei que todos os aplicativos de jogos exigem wi-fi. Alguém sabe se isso é simplesmente um problema com a velocidade da rede 3G ou a dose da Apple impõe restrições à sua rede 3G que impede os desenvolvedores de fazer isso?
iphone
software-engineering
networking
multiplayer
Jesse Dorsey
fonte
fonte
Respostas:
Não conheço nenhuma limitação específica que a Apple impõe em relação ao 3G. O meio de comunicação ainda seria TCP / UDP ou HTTP POST / GET.
Em termos de limitações de rede, redes de celular como o seu serviço 3G certamente possuem um conjunto único de características. As redes 3G são notórias por terem uma latência horrível, não é incomum ver tempos de ida e volta de até 700 ms. Em termos de largura de banda, o 3G não é tão ruim assim que os dados começam a fluir.
Se você estiver assistindo a um jogo de ação para vários jogadores, onde cada segundo conta, ter picos de 0,7 segundos seria muito ruim. Esta é uma das razões pelas quais você usaria o Wifi. No entanto, se for um jogo do tipo Mafia Wars, você ficaria bem.
Talvez eu esteja me lembrando disso incorretamente, mas me lembro de haver um problema ao estabelecer uma sessão cliente / cliente entre dois usuários 3G - como se houvesse um firewall que impedisse a entrada de portas através de 3G. Por esse motivo, você precisaria de um servidor centralizado para corresponder aos clientes ou usar o Wifi.
fonte
Os telefones que usam redes 3G normalmente (nem sempre, mas principalmente) operam com NATs muito restritivos. Pacotes UDP do mesmo soquete de origem para dois destinos diferentes geralmente aparecerão no dispositivo usando dois endereços IP diferentes. Isso dificulta a criação de conexões ponto a ponto.
Condições de rede, como latência e perda de pacotes, são mais comuns que conexões ADSL ou a cabo domésticas. No entanto, se o usuário tiver um sinal muito bom, a largura de banda poderá ser maior que o ADSL ou o cabo.
Você geralmente pode usar TCP e UDP. No entanto, se você estiver usando o UDP, recomendo o uso de uma biblioteca que possa lidar com o desempenho ruim do UDP. Eu usei o ReplicaNet com grande sucesso em redes com baixo desempenho de rede. As conexões UDP confiáveis que ele usa parecem ser muito estáveis e se recuperam bem da perda de pacotes.
fonte