处理正在进行计算的基于浏览器的游戏的后端有哪些选项
What are the options for handling backend for browser-based games which have ongoing calculations?
我正在进入基于浏览器的游戏世界,我只是把我的第一个进入测试阶段。问题是这是一款回合制游戏,使用PHP脚本后端很容易做到,但是当我期待时,我对开发更实时的游戏的选择有点不知所措。
我犹豫是否要在公共网站上给出我的下一个项目的确切细节,所以我会尝试用更模棱两可的术语描述我在这里寻找的内容。基本上,我需要的是某种方法来处理来自用户的传入数据,同时还可以进行每秒可能发生多次的后台计算。在这种情况下,设置PHP脚本似乎是愚蠢的,其中脚本不断被称为数据库发生许多写入;相反,在服务器上运行类似C++程序、处理请求并将值存储在本地内存中(直到用户注销,无论如何)似乎更有意义。
看起来我很清楚我想要什么,但问题是我不知道我在做什么,当涉及到服务器后端时。我知道如何使Javascript与PHP脚本交互,这就是我的知识范围。C++计划是实现这一目标的最佳方式吗?如果是这样,我需要什么才能开始?(我知道一些基本C++,但我不确定如何从接受请求的服务器运行程序)。我想在这种情况下我能得到的最理想的事情是指导我如何进行简单的交互,其中javascript向服务器上的程序发送请求,然后该程序将对它接收的数据执行某些操作。一旦我有地方可以开始,我通常非常擅长弄清楚事情。
感谢您的任何帮助。
我的建议是:如果你想真正创建那个实时游戏,而不仅仅是寻找一个可以学习C++的项目(这是一个同样值得但非常不同的目标),坚持使用PHP,直到你真正遇到一个你无法解决的问题。如果您仔细构建,您将能够根据需要替换系统中需要调整的部分。
您确定为后端要求的两个特性:
- 要远离数据库的高度交互式会话状态
- 后台进程(即,那些不是由通过 HTTP 的玩家事件触发的进程
在这些要求中,我没有看到任何将PHP从游戏业务逻辑中移除的内容。
对于 1) 考虑像 redis 这样的东西(通过 Predis,一个流行的 PHP 客户端)。这是高性能内存中数据存储。
对于2)你可以编写一个完全独立的PHP程序,就像任何其他客户端一样与主服务器通信。如果你使用 redis,它可能会直接与它对话。请记住:没有说PHP必须处理网页请求。
最后,在研究这个问题时出现了另一个链接 - 它很旧,但代码仍然可用,可能真的很有启发性:phpsocketdaemon 是一个"用于在 PHP 中编写守护进程的库,可以处理大量的客户端和服务器连接"。
- ArrayFire中统一后端的使用
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 如何在 LLVM 后端的机器级别找到 def-use 链
- 如何在 boost::msm 中实现可以访问状态机 (SM) 的后端/前端的"BaseState"
- 在单链表中的后端插入节点
- CUDA(GPU)作为OpenCV后端
- 如何将C 中的后端写入与TCL/TCK用户界面连接
- 在同一应用程序中,可以将C 用作后端和Javafx
- 是否可以使用 c++ 作为 Electron.js 的后端
- 我如何将 c++ 中的向量序列化为 char,以便于将 mondodb 用于后端
- 当后端响应需要很长时间时,WXWIDGET应用程序会挂起
- Boost ::使用与多个水槽的同一后端使用相同的后端安全性
- 从Web前端发送请求到C 后端
- 无法使用CPU后端使用TensorFlow AOT编译创建最终二进制文件
- Skia中的非均匀文本缩放(Freetype 2后端)
- 带有C 类的Electron Nodejs在后端
- 用于C++后端服务的 Web 界面
- 在不减慢主应用程序速度的情况下在后端运行成员函数的技巧是什么
- 在Boost Meta状态机的后端访问前端
- 处理正在进行计算的基于浏览器的游戏的后端有哪些选项