0

我正在进入基于浏览器的游戏世界,而我只是将我的第一个游戏置于测试阶段。事情是它是一个回合制游戏,使用 PHP 脚本后端很容易做到这一点,但正如我所期待的那样,我对开发更实时的游戏的选择感到有点不知所措。

我不愿意在公共网站上给出我下一个项目的确切细节,所以我将尝试用更模糊的术语来描述我在这里寻找的东西。基本上我需要的是某种方法来处理来自用户的传入数据,同时还进行可能每秒发生多次的后台计算。在这种情况下,设置 PHP 脚本似乎很愚蠢,其中脚本不断被调用,并且数据库发生了许多写入;相反,在服务器上运行诸如 C++ 程序之类的东西似乎更有意义,处理请求并将值存储在本地内存中(直到用户注销,无论如何)。

看起来我很清楚自己想要什么,但问题是我不知道在服务器后端方面我在做什么。我知道如何使 Javascript 与 PHP 脚本交互,这就是我的知识范围。C++ 程序是解决这个问题的最佳方式吗?如果是这样,我需要什么才能开始?(我知道一些基本的 C++,但我不确定如何才能从接受请求的服务器上运行程序)。我想在这种情况下我能得到的最理想的事情是指导我如何进行简单的交互,其中 javascript 向服务器上的程序发送请求,然后对接收到的数据执行某些操作。一旦我有地方开始,我通常很擅长弄清楚事情。

谢谢你的帮助。

4

1 回答 1

0

我的建议:如果您正在寻找真正创建实时游戏,而不仅仅是寻找一个学习 C++ 的项目(这是一个同样有价值但非常不同的目标),请坚持使用 PHP,直到您真正遇到问题你解决不了。如果您仔细架构,您将能够根据需要替换系统中需要调整的那些部分。

您确定为后端要求的两个特征:

  1. 您希望远离数据库的高度交互的会话状态
  2. 后台进程(即那些不是通过 HTTP 由播放器事件触发的进程

在这些要求中,我没有看到任何将 PHP 排除在游戏业务逻辑之外的东西。

对于 1) 考虑诸如redis之类的东西(通过Predis,一个流行的 PHP 客户端)。这是您的高性能内存数据存储。

对于 2),您可以编写一个完全独立的 PHP 程序,该程序可以像任何其他客户端一样与主服务器通信。如果您使用 redis,它可能会直接与它对话。记住:没有什么说 PHP 必须处理网页请求。

最后,在研究这个时出现了另一个链接 - 它很旧,但代码仍然可用并且可能真的很有启发性:phpsocketdaemon是一个“用于在 PHP 中编写可以处理大量客户端和服务器连接的守护程序的库”。

于 2012-04-23T09:33:04.687 回答