многопользовательская игра с использованием SurfaceView для рисования и Bluetooth для многопользовательской (производительность) - PullRequest
0 голосов
/ 24 февраля 2011

Я сейчас создаю игру для Android. Сама игра работает, используя ту же архитектуру, что и лунная платформа Google. Я также изучал Bluetooth API и приложение Bluetooth-чат. Я хотел бы сделать свою игру так, чтобы в нее можно было играть с двумя устройствами, используя друг друга по Bluetooth.

Я делаю игру в стиле понг. Так что у меня есть мяч и 2 весла. Один для каждого игрока. Я использую ветку для обновления игры и для отображения на поверхности. Теперь я использую эту ветку для отправки положения моего весла на другое устройство. Игра работает на скорости 50 кадров в секунду. Это означает, что я делаю 50 записей по Bluetooth. Этот метод работает, но есть огромные задержки ...

Как мне улучшить производительность Bluetooth? Какой тип ввода и вывода я должен использовать?

С уважением

1 Ответ

0 голосов
/ 24 февраля 2011

Вы не должны полагаться на хорошее соединение, ожидайте переменных задержек.

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

Насколько я понимаю, минимум, который вы должны отправить / отметка времени, - это позиция поддона, когда он ударяет по мячу, и / или исходящий вектор шара, с того момента другое устройство может самостоятельно рассчитывать, что произойдет, пока он бьет по мячу и делает то же самое. Любые обновления поддонов с этого момента являются дополнительными.

...