我想将我的游戏开发扩展到多人游戏领域,但是我没有资金购买具有套接字的适当服务器,也没有时间了解它们的工作原理以及如何正确和安全地使用它们。
然而,我完全有能力通过 PHP 在 Flash 和 MySQL 之间以各种格式发送和接收数据。
如果我要创建一个回合制游戏,以这种方式(通过 PHP)轮询 MySQL 数据库是否合适?目前我正在考虑这些方面:
- 两个玩家通过开放游戏的全球列表(相当标准的方法)等方式找到对方。
- 在数据库中创建遭遇或类似行。
- 该行将以 JSON 或 XML 格式存储有关轮到谁以及游戏当前状态的信息。该行还将包含来自每个玩家的时间戳,表示他们最后一次轮询数据库以获取游戏状态信息。当玩家完成他们的回合时,“回合”字段将切换。
- 每个玩家都会轮询数据库,看看是否轮到他们了。如果是,则游戏状态信息将与他们结束最后一轮之前的游戏状态信息进行比较,并且将在屏幕上发生动作以反映差异。然后轮到他们开始并重复该过程。
- 在轮询数据库时,如果对手没有在 120(任意)秒内轮询数据库,玩家将收到另一个玩家离开/超时/其他任何情况的通知。
这会太慢或不可靠吗?或者是否还有其他可以预见的问题,例如两个玩家同时轮询数据库的结果(不确定这是否重要)?