gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:11:24 27 4
gpt4 key购买 nike

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

我在 Play 商店有一款 Android 游戏,我使用第 3 方后端和网络解决方案。现在我想构建自己的简单后端和网络解决方案。为什么?因为:

  • 能够免费添加新功能将(服务器端)
  • 将游戏逻辑从客户端转移到服务器端
  • 了解后端开发
  • 了解网络(不是 p2p,因此无需打洞)
  • 获得服务器端开发和技术方面的经验

供您引用,我的游戏是某种黑桃。

现在我的问题:

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

这些是我想做的:

网络:

  • 只需从服务器发送到客户端,反之亦然
  • io.to(socket#id).emit('hey')(服务器到客户端)
  • socket.Emit("JoinRoom")(客户端到服务器)

后端功能:

  • 用户身份验证
  • 注册玩家信息(姓名、唯一 ID、分数、日期创作等)
  • 每次更新分数
  • 注册好友列表,以便他们可以一起玩
  • 等等

我的游戏逻辑将为每个房间做什么(ATM,我的游戏逻辑完全是客户端,因此容易受到黑客攻击和作弊):

  • 房间创建后,请等待 10 秒,以便其他人可以加入
  • 10秒结束后,调用处理启动的函数流程
  • 随机化 52 副牌
  • 人工智能选择投注
  • 人工智能选择特朗普
  • 轮到 AI 时进行游戏
  • 确定谁有下一个回合
  • 确定谁获胜
  • 更新数据库中的分数
  • 游戏结束后打开房间,以便人们可以离开并加入游戏
  • 等等

是否可以使用node.js、socket.io 和 mongoDB 创建它?如果是的话,使用 Node.js、socket.io 和 mongoDB 来实现这一点是否明智,还是使用其他技术来实现更好?

或者我应该使用node.js和socket.io作为网络部分,并使用另一种技术(例如asp.net)作为游戏逻辑?我读到,node.js 不擅长 CPU 繁重的任务,我认为游戏逻辑部分是 CPU 繁重的。

也许你们中的一些人可能想知道我的系统将支持多少播放器?好吧,我每天有 20 个 CCU,但我的游戏会在商店保存 3 周,而且我不会进行太多促销,因为我首先想要一个强大的后端系统。我希望我的后端能够处理 10 000 CCU,也许我永远无法达到它,但这就是我的目标。

我希望我清楚自己想要什么,希望你们能帮助我。我已经寻找了一个星期我想做的事情是否可行且高效。

最佳答案

NodeJS 对于此类事情来说是一个不错的选择。在相对较短的突发时间内大量并发 IO。您绝对可以使用您列出的技术制作可扩展的服务器端。

游戏逻辑可能会变得复杂,但我怀疑您是否会注意到纸牌游戏所需实现的规则和检查的 CPU 峰值。在每个阶段,您可能需要检查 5-10 条规则,并且可能迭代 52 卡数组(两次!)。不是问题。对于 CPU 密集型任务,请考虑“1000 次迭代”(图像处理?)或“数学计算”(过度使用斐波那契?)。

我将向您指出actionherojs作为一个 Node 服务器,具有内置聊天(用于游戏室通信)、内置任务(用于 10 秒超时和 AI 回合)以及用于从头开始启动新 NodeJS 应用程序的良好项目结构。

玩得开心!

关于node.js - 使用node.js和socket.io为手机游戏构建简单的后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40852511/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com