我正在尝试创建一个多人游戏,
- 服务器每2个玩家创建1个房间(我的游戏是PvP,一对一)
- 每个房间处理游戏逻辑
- 我将使用
Java.Util.Timer
作为我的游戏循环 - 服务器 FPS = 5
- 每个房间都会处理玩家移动和少量物理
关于实际问题:
根据以下几点,我应该使用什么样的游戏循环?以下每种游戏循环的优缺点是什么。
- 每个房间都有自己的游戏循环(计时器)
- 在单个游戏循环(计时器)中处理所有房间
- 所有房间都在一个游戏循环中处理,但是当房间总数 = 50 时,服务器将创建另一个新的游戏循环。
编辑
到目前为止我尝试了什么:
我在第 1 点使用了游戏循环,但是有些房间没有机会更新他们的游戏循环。我很困惑我是否需要更改我的游戏循环,或者我是否需要在每个循环中更改我的代码,或者问题是否是因为 Java.Util.Timer
。
最佳答案
最终,这取决于您需要提供更多信息。
你在处理不同的游戏,或者在不同的房间“比赛”,我认为是因为你说你的游戏是 1v1。
如果您不需要在各个“房间”运行时在它们之间传输数据,那么使用单独的循环就没有意义。如果您在服务器上托管游戏,那么每个“房间”都应该作为不同的进程并行处理。
另请注意,如果根本不需要传输数据,那么您实际上应该使用直接 TCP/UDP 连接。
如果你详细说明,我会更好地回答,但我建议你看看这个。它是用 C++ 而不是 Java 编写的,但它仍然可能有帮助
关于java - 多人游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314078/