我正在开发一个多人 2D 游戏,玩家和其他对象在屏幕上以简单的坐标系移动。所以玩家的客户端将它的动作发送到服务器,根据这些动作,服务器的游戏室线程会定期(可能是 50-100 毫秒)为每个对象计算新的速度、坐标和角度。然后它将有关这些更改的数据发送给每个玩家。
例如,我们有十个玩家可以在一秒钟内发送三次他们的动作,服务器必须将这些动作转发给每个人。考虑到除了移动之外的其他玩家动作,一秒钟内可能会出现数十条小消息,而这只是在一个房间里。
所以这里有一堆问题:
1) Netty 是我正在寻找的框架吗?这是一款实时游戏,所以每一毫秒都很重要。低延迟是最重要的要求。如果玩家的 ping 超过 30,则游戏非常糟糕和滞后。
2)如果是这样,我也想听听你对这种服务器的优化和设置的每一个建议,它发送小数据包,但有很多。我估计并发玩家的峰值将是大约 2000-3000 名用户在 100-200 个房间里玩,所以如果服务器能够无延迟地处理这么多玩家玩游戏,我会非常高兴。
3)每个游戏房间都有某种自己的线程来循环和运行游戏。有没有合适的方法来做这种线程,所以它对服务器的正常功能影响不大?
感谢您的回答!