Я хотел расширить свою разработку игр в сферу многопользовательской игры, однако у меня нет средств для правильного сервера с сокетами или времени, чтобы понять, как они работают и как их правильно и безопасно использовать.
Однако я полностью способен отправлять и получать данные между Flash и MySQL через PHP в различных форматах.
Если бы мне пришлось создать пошаговую игру, подойдет ли такой опрос базы данных MySQL (через PHP)? На данный момент я думаю в этом направлении:
- Два игрока находят друг друга с помощью глобального списка открытых игр (довольно стандартный подход).
- В базе данных создается встреча или аналогичная строка.
- В строке будет храниться информация о том, кто сейчас ход, и текущее состояние игры в формате JSON или XML. Строка также будет содержать временную метку от каждого игрока, представляющую последний раз, когда они запрашивали информацию о состоянии игры в базе данных. Когда игроки завершают свой ход, поле «ход» переключается.
- Каждый игрок опрашивает базу данных, чтобы узнать, наступила ли их очередь. Если это так, информация о состоянии игры будет сравниваться с информацией о состоянии игры до того, как они закончили свой последний ход, и на экране будут выполняться действия, отражающие разницу. Затем начинается их очередь, и процесс повторяется.
- Во время опроса базы данных, если противник не опросил базу данных для своего хода в течение 120 (произвольных) секунд, игрок получит уведомление о том, что другой игрок ушел / истек срок ожидания / что угодно.
Будет ли это слишком медленным или ненадежным? Или есть другие проблемы, которые можно предвидеть, например, результат одновременного опроса базы данных обоими игроками (не уверен, что это имеет значение)?