2012-05-03 10 views
6

sto creando un gioco per iPhone multi giocatore utilizzando il tutorial multi giocatore come lo scheletro nel seguente link http://www.raywenderlich.com/3276/how-to-make-a-simple-multiplayer-game-with-game-center-tutorial-part-12.limite di dimensione del pacchetto per i giochi iPhone?

Con l'architettura in uso (GameCentre peer to peer) uno dei dispositivi svolge il ruolo di server. Ho una domanda, qual è la limitazione della dimensione del pacchetto? In media devo inviare 890 byte per volta ...

+0

È possibile inviare pacchetti piuttosto grandi, ma è necessario preoccuparsi della velocità. Un grosso pacchetto richiederà più tempo per l'invio, quando la comunicazione veloce è importante in un gioco. In genere, se i pacchetti stanno diventando troppo grandi in un gioco, è possibile suddividerlo in pacchetti più piccoli, ognuno con la propria parte essenziale di dati. – wquist

+0

ciao grazie per la risposta, quindi per definizione di un grande pacchetto è un pacchetto di 1k considerato abbastanza grande? – godzilla

+0

byte da 1k? Quindi, come 1 kB? Se invii 30 pacchetti al secondo, allora ~ 240 kb in entrambe le direzioni in termini di velocità di connessione, quindi dipende molto dal pubblico di destinazione. Varia molto sia su locale, WAN, 3G, ecc. Per me, però, è abbastanza grande. Questo è l'equivalente di circa 250 valori float, o oltre 100 posizioni XY, ogni frame. Assicurati che tutto ciò che stai inviando sia essenziale. Se si dispone di calcoli o di qualche tipo di oggetto logico inviato, provare a standardizzare il suo comportamento e inviare una segnalazione a singolo byte che dice "questo è successo" ed eseguire qualsiasi calcolo sul lato client. – wquist

risposta

1

Generalmente non si deve fare affidamento sulle dimensioni del pacchetto di rete. I pacchetti possono essere frammentati (via TCP/IP e riassemblati dallo stack) oppure i dati vengono resi pacchetti in base a MTU dei parametri di invio/ricezione.

+0

grazie per la risposta, la mia preoccupazione è una soglia di dimensione che se i dati superati non verranno ricevuti dall'altra parte? – godzilla

+0

Non proprio. I tuoi dati saranno impacchettati dallo stack di rete e ricostruiti sull'altro lato. Non devi fare nulla. L'unica limitazione è una larghezza di banda, dal momento che i telefoni cellulari possono trovarsi in un luogo con cattiva ricezione. Assicurati di gestire gli errori correttamente. – Zepplock

1

Per il Game Kit Programming Guide:

  • limitare la dimensione dei messaggi inaffidabili di 1000 byte o di dimensioni più piccole.
  • Limita la dimensione dei messaggi affidabili a 87 kilobyte o di dimensioni inferiori.