ho codificato un'applicazione Bomberman che utilizza un peer to peer GameKit connessione. Il problema è che dopo un po 'il gioco non è più sincronizzato.Kit Gioco Peer to Peer
ho guardato il codice di esempio per GKTanks e usato il loro modello. Non vi è alcuna relazione client/server tra colleghi, quindi non ne ho usato uno nel mio gioco. Entrambi i peer mantengono un gamestate che aggiornano in base ai dati ricevuti.
Possiedo un NSTimer utilizzato per eseguire il gameloop su ciascun frame. Gli NSTimers non sono sincronizzati, quindi a volte i gamestate diventano diversi ex: i giocatori prendono un powerup all'incirca nello stesso momento e ottengono entrambi il powerup perché impiega un po 'di tempo per inviare i dati.
Gradirei qualsiasi idea di fare del lavoro app. Sto pensando di riscrivere il codice per utilizzare client-server, ma non sono sicuro che sia una buona idea ... ancora
Grazie!
MODIFICA: Ho modificato il codice in modo che venga scelto un giocatore casuale come host. Ogni volta che un giocatore piazza una bomba chiede al server dove posizionarlo. Il server restituisce la posizione dei giocatori (come visto sul server) e poi dice al giocatore dove posizionare la bomba.
Per i powerup il server controlla se un giocatore ha ricevuto un powerup e se lo ha fatto invia un pacchetto che lo informa.
Un altro problema è apparso ora. La latenza tra i dispositivi è elevata (sto usando una connessione bluetooth). Ci vogliono circa 0,2 secondi per piazzare una bomba dopo che il cliente ha toccato il pulsante per posizionarlo.
che sto inviando in modo affidabile tutti i dati. Lo sto facendo bene?