使用node.js和socket.io构建简单的后端用于手机游戏



首先,我是一个自学成才的程序员/开发人员,很抱歉一些明显的问题。这个主题更多的是设计问题,而不是编程。

我有A.T.M Android Game在Play商店现场直播,我使用第三方后端和网络解决方案。现在,我想构建自己的简单后端和网络解决方案。为什么?因为:

  • 可以免费添加新功能的能力将(服务器端)
  • 将GameLogic从客户端转移到服务器端
  • 了解后端发展
  • 学习有关网络的学习(不是P2P,所以没有孔打孔)
  • 获得服务器端开发和技术的经验

为您的信息,我的游戏是某种黑桃。

现在我的问题:

我正在考虑使用node.js,socket.io和mongodb创建我的后端系统。

这些是我想做的:

网络:

  • 仅将服务器发送到客户端,反之亦然
  • io.to(套接字#id).emit('hey')(服务器到客户端)
  • socket.emit(" joinroom")(客户端到服务器)

后端功能:

  • 用户身份验证
  • 注册播放器信息(名称,唯一ID,得分,日期创建等)
  • 每次更新分数
  • 注册朋友列表以便他们可以一起玩
  • 等。

我的GameLogic会为每个房间做什么(ATM我的GameLogic完全是客户端,因此很容易受到黑客入侵和作弊的影响):

  • 创建房间时,请等待10秒钟,以便其他人可以加入
  • 10秒结束后,调用处理启动的函数过程
  • 随机化52甲板卡
  • AI选择下注
  • AI选择特朗普
  • AI轮到他时
  • 确定谁有下一个回合
  • 确定谁赢了
  • 在数据库中更新分数
  • 游戏结束后,开设房间,以便人们可以离开,并且加入游戏
  • 等。

是否可以使用node.js,socket.io和mongodb来创建这个?如果是的,使用node.js,socket.io和mongodb是很聪明的事情,或者最好使用另一种技术来做?

或我应该将Node.js和socket.io用于网络部分,而另一个技术逻辑的Technologie(示例ASP.NET)?我读到Node.js不好擅长CPU繁重的任务,我认为GameLogic部分CPU很重。

也许你们中的一些人可能想知道我的系统将支持多少球员?ATM嗯,我每天有20 ccu,但我的游戏在商店里持续了3个星期,而且我没有很多宣传,因为我想首先一个强大的后端系统。我希望我的后端能够处理100 000 ccu,也许我永远不会达到它,但这是我的目标。

我希望我能清楚自己想要的东西,希望你们能帮助我。如果我想做的话,我已经期待了一个星期。

nodejs是这种类型的事情的好选择。在相对较短的爆发中,许多并发的IO。您绝对可以使用列出的技术来制作可扩展的服务器端。

游戏逻辑可能会变得复杂,但我怀疑您甚至会注意到规则和检查卡游戏所需的CPU峰值。在每个阶段,您可能有5-10个规则可以检查,也许在52张卡片阵列(两次!)上迭代。没问题。对于CPU绑定的任务,请考虑" 1000的迭代"(图像处理?)或"数学计算"(过度使用的fibonacci?)。

我将指向您的ActionHerojs作为带有内置聊天的节点服务器(用于您的游戏室通信),内置任务(用于您的10秒超时和AI转弯),以及一个不错的项目结构,用于启动从头开始的新nodejs应用。

玩得开心!

相关内容

最新更新