Как синхронизировать бой между двумя или более игроками?
Суть такова - игра с стиле tower defence онлайн, предположительно на android (хотя мне кажется без разницы), один игрок выстраивает оборону а другой потом нападает.
Решено что нападающий должен быть онлайн, ему грузится сцена оборонителя.
Как дальше быть, я имею ввиду чтобы она оба видели одно и то же?
Бой у одного происходить должен а другой наблюдать? при этом данные сохраняются на сервере и выдаются другому.
Или как это правильно делается?
Если можно примеры реализации кода или статьи где подобное описывается...
И можно ли серверную часть делать на PHP или для таких дел С использовать...
В общем хотелось бы обсудить данную тему, как реализовать подобное.
Почитал по форумам (еще до компа не добрался), поговаривают что Photon не работает с https серверами, то есть только в незащищенном что-ли, пока что не совсем понял...
GavriKos, если есть возможность реализации мною задуманного то конечно изучу данное направление, просто некоторые пишут что раньше работало а теперь не работает, но это все комментарии, я не берусь пока что что-то утверждать, если вы говорите что это возможно с данной технологией то конечно буду разбираться, просто пока что только собираю сведения и выбираю направление....
Я думал про то чтобы каждый выстрел, движение, уничтожение генерировалось или вычислялось на сервере и оба получали картинку, но учитывая что многие данные будут меняться по несколько раз в секунду то не знаю как это должно работать...
Я писал на PHP и запросы между серверами делал через CURL, на один запрос в одну сторону 1-2 сек и в другую столько же, и того один шаг юнита займет минимум 2 сек, ну это же тормоза...
Поэтому хотелось бы примеры реализации увидеть где в режиме реального времени идет обмен данными между сервером и клиентами...
Zimaell, php со стандартной обработкой запроса - не самый лучший вариант для real-time-приложений, потому что на каждый пых будет запускаться новый скрипт. Частично поможет настроенный опкэш (1-2 сек - это долговато). Но лучше - использовать асинхронный скрипт, который не завершается, а ожидает новые запросы (см. ReactPHP, PHP-PM, amphp и пр). Либо другой язык (node.js, c#/asp.net, java, etc).