3

我想做一个在线Flash游戏,它会有社交功能,但游戏主要是单人游戏。例如,屏幕上不会同时出现两个玩家,社交互动将通过异步消息进行,不会有实时聊天什么的。大部分逻辑将发生在客户端,服务器将验证客户端逻辑,但它不需要完全同步,这就是我认为轮询可能令人满意的原因。

我在很多地方读到套接字服务器比使用轮询在线游戏更有效,但这主要是考虑到比我所描述的游戏更多的多人游戏和多人互动的游戏吗?如果许多用户同时在线玩,但每个人都在玩一个相对孤立的游戏,并且没有与每个玩家实时交互,那么轮询可能没问题,或者无论如何如果你有一个在线游戏都建议使用套接字您设想多人同时玩的游戏?谢谢!

4

1 回答 1

2

你有什么样的服务器?它是否支持持久连接(即它可以自己运行循环)还是仅支持无状态模式(您的客户端必须轮询)?

有状态的

Quake / Half-life 等多人游戏在与连接的客户端保持持久连接的服务器上运行。这样效率更高,因为它可以将相关的游戏状态保存在 RAM 内存中,而不是在每条消息之后将其保存到磁盘/数据库中。

无状态

如果您有一个 Web 服务器(例如 PHP),那么您几乎受限于无状态模式,您只需等待客户端消息,从数据库加载所有相关信息,进行一些计算,然后将答案返回给客户端。在这种情况下,您需要为每个“事务”(客户端投票)执行所有这些操作。

如果通信稀疏且简单,则无状态服务器实际上可能是更好的选择。这很容易实现。

于 2010-06-02T13:53:49.773 回答