与PHP的多人游戏。我有什么机会?

时间:2012-06-06 18:53:56

标签: php comet

首先,我需要这些信息来制作实时多人浏览器游戏。现在,我几乎可以对所有内容进行编码,但有一个例外 - 必须将服务器端事件推送到客户端。所以我需要一个真正的解决方案(与longpolling不同)。

我一直在阅读所有论坛,所有文章,但这让我感到困惑。

我想问一些问题,但如果可能的话,我需要深入的答复。

  1. HTML5为我们带来了WebSockets功能。它最初几乎没有得到浏览器的支持,但是现在,几乎所有最新的浏览器都支持它。它将成为未来的彗星解决方案吗?可以杀死node.js和其他解决方案吗?

  2. 有很多选择可供选择。 Node.js,socket.io,APE,使用第三方网站的API。 (像pusher.com)对我来说最有益的是什么?我想用PHP编写服务器端代码。我相信如果我们使用node.js,我也应该用javascript编写服务器端代码。这是对的吗?如果没有,我如何在这些框架中使用PHP?

  3. 我打算对多人游戏进行编码,因此性能/可扩展性至关重要。我不认为我一开始会有超过100个并发玩家,但是没有人知道未来会带来什么,所以我希望它能够编码它可以支持未来几千个并发玩家的方式。我有什么选择?

  4. PHP,就像我喜欢语言本身一样,它只是缺乏这个领域......我不想编写像Travian这样的游戏,它们很无聊。我希望他们是实时的。如有必要,我可以为这项任务学习一门新语言。你对此有何看法?

  5. 我目前正在使用Apache作为本地Web服务器。过去使用过IIS和Nginx。是否有为此工作设计的PHP Web服务器?据我所知,有些语言有专门用于并发的Web服务器。 (例如Tornado Web)

  6. 将max_execution_time设置为0并在无限循环中将新数据刷新到客户端在这种情况下不是一种选择,它根本不起作用。

    非常感谢任何答案。

    谢谢。

    聚苯乙烯。我会将它用于其他事情,如实时通知,但主要是我的2D游戏本身。

1 个答案:

答案 0 :(得分:1)

PHP不是为此而设计的。我建议你选择一种专为此类应用而设计的语言。

回答你的问题:

  1. 网络套接字的想法是编写一个可以与游戏服务器连接的游戏客户端。如果您正在构建一个使用套接字的游戏,PHP将无法适应这种模式。您需要能够持续运行并且很可能是多线程的东西。您正在查看C#,C ++,Java等。由于node.js是服务器,因此node.js不会。在浏览器中,您正在编写客户端。

  2. 我不确定如何回应这个因为node.js!= PHP。 node.js旨在成为Web服务器。这意味着服务器接收Web请求并发回适当的响应(想想Apache的HTTPD)。 PHP是一种与apache接口的脚本语言,可以进行更多动态html处理。

  3. 使用C ++,Java,C#等

  4. 学习C ++,Java,C#或任何其他支持套接字的语言。

  5. 不,Web服务器假设接受请求,处理请求并返回结果。如果您正在寻找客户端和服务器之间的持续通信,那么Web服务器就不是您想要的。

  6. 有些产品已经完成了很多基础工作。我建议您查看类似PhotonSmart Fox Server

    的内容