Game Kit Peer to Peer

Я закодировал приложение bomberman, которое использует одноранговое соединение gamekit. Проблема в том, что через некоторое время игра перестает синхронизироваться.

Я просмотрел пример кода для GKTanks и использовал их модель. Между одноранговыми узлами нет отношений клиент / сервер, поэтому я не использовал их в своей игре.Оба одноранговых узла поддерживают состояние игры, которое они обновляют на основе полученных данных.

У меня есть NSTimer, который используется для запуска цикла игры на каждом кадре. NSTimers не синхронизированы, поэтому иногда игровые состояния становятся разными, например: игроки получают бонусы примерно в одно и то же время, и они оба получают бонусы, потому что для отправки данных требуется время.

Буду признателен за любую идею, как заставить приложение работать. Я подумываю переписать код для использования клиент-сервер, но не уверен, что это хорошая идея ... пока

Спасибо!

РЕДАКТИРОВАТЬ: Я изменил код таким образом, что в качестве ведущего выбирается случайный игрок. Каждый раз, когда игрок кладет бомбу, он спрашивает сервер, где ее разместить. Сервер возвращает позицию игроков (как видно на сервере), а затем сообщает игроку, где разместить бомбу.

Для бонусов сервер проверяет, взял ли игрок усиление, и, если он сделал, он отправляет пакет, информирующий его.

Теперь появилась еще одна проблема. Задержка между устройствами велика (я использую Bluetooth-соединение). На установку бомбы уходит около 0,2 секунды после того, как клиент нажал кнопку, чтобы поставить ее.

Я отправляю все данные надежно. Правильно ли я это делаю?

5
задан silviupop 28 October 2011 в 15:29
поделиться