我正在一家游戏公司中担任软件工程师,我们的产品团队提出了一款适用于Android和iOS的新游戏(一种休闲等距游戏,例如Gardenscapes)。我们的团队必须为游戏设置后端系统(是的,它将是一个基于网络的游戏,其中客户端与服务器之间的通信是通过REST调用进行的)。我们有使用旧系统的经验,但从头开始并没有真正构建游戏及相关功能所需的系统。在这方面,我们正在与社区接触,以寻求由像我们这样的新兴团队建立这种系统的必要指南。
我收集了一些我认为需要牢记的要求,以决定后端设计和选择的框架:
该游戏将具有等距游戏和元游戏。因为它 等轴测图,则需要实时更新。 -因此,我们需要添加一个我相信的网络套接字(任何建议都会有所帮助)。和 这也意味着将会有一些后台工作需要 由服务器在稍后的时间完成。
用于游戏的游戏数据(或市场数据)将是 由现场运营团队在服务器上进行管理。因此,我们需要一个管理工具。当然,游戏中有多个实体,并且 肯定会彼此相关(目前主要是 一对多,但继续进行可能是多对一的 多对多)。所以,我在想MySQL最好 选项。
最初(前三个月)的预期总安装量 在100万个生命周期内可能会达到500万。 DAU可能在10万左右。游戏也将有一个元游戏,所以它是 预计玩家将花费50%的时间在元游戏中 (在此期间将不会发送请求),并且等距的50% 游戏中的游戏玩法(向服务器请求更新) 给定的会话。会话时长可能约为30分钟。对于 对此,我们是否应该从一开始就做好分片准备?如果是这样的话, 我想了解哪个是首选(在应用程序中分片 层与数据库层)及其原因。
我在Rails方面拥有很好的专业知识(有6年的工作经验),并且在服务器端javascript(NodeJS,express以及与之相关的一些模块)方面有不错的经验。
我最初的倾向是滑轨,因为我认为它可以很好地解决上述问题(如果我错了,请纠正我!)。尽管我真的很喜欢NodeJS中的异步处理风格(我已经开发了一些API),但是我不确定它是否具有功能丰富的MVC框架(我只使用了Express),例如rails。>
非常感谢您耐心等待以上请求!
等待您的宝贵意见...