Java 多人游戏

Java 多人游戏,java,multiplayer,Java,Multiplayer,我正在尝试创建一个多人游戏 每2名玩家,服务器将创建1个房间(我的游戏是PvP,一对一) 每个房间处理游戏逻辑 我将使用Java.Util.Timer作为我的游戏循环 服务器FPS=5 每个房间将处理玩家的移动和小物理 关于实际问题: 基于以下几点,我应该使用什么样的游戏循环?下面每种游戏循环的优缺点是什么 每个房间都有自己的游戏循环(计时器) 在单个游戏循环中处理所有房间(计时器) 所有房间都在一个游戏循环中处理,但当房间总数=50时,服务器将创建另一个新的游戏循环 编辑 到目前为止,我尝试的

我正在尝试创建一个多人游戏

  • 每2名玩家,服务器将创建1个房间(我的游戏是PvP,一对一)
  • 每个房间处理游戏逻辑
  • 我将使用
    Java.Util.Timer
    作为我的游戏循环
  • 服务器FPS=5
  • 每个房间将处理玩家的移动和小物理
  • 关于实际问题:

    基于以下几点,我应该使用什么样的游戏循环?下面每种游戏循环的优缺点是什么

  • 每个房间都有自己的游戏循环(计时器)
  • 在单个游戏循环中处理所有房间(计时器)
  • 所有房间都在一个游戏循环中处理,但当房间总数=50时,服务器将创建另一个新的游戏循环
  • 编辑

    到目前为止,我尝试的是:


    我在第1点使用了游戏循环,但是有些房间没有机会更新他们的游戏循环。我不知道是否需要更改游戏循环,或者是否需要更改每个循环中的代码,或者问题是否是因为
    Java.Util.Timer

    最终,这要视情况而定,您需要提供更多信息

    我认为你在不同的房间里处理不同的游戏,或者“比赛”,因为你说你的游戏是1v1

    如果在不同的“房间”运行时不需要在它们之间传输数据,那么使用单独的循环是没有意义的。如果你在服务器上托管游戏,那么每个“房间”应该作为不同的进程并行处理

    还要注意的是,如果根本不需要传输数据,那么实际上应该使用直接TCP/UDP连接

    如果你详细说明的话,我会回答得更好,但我建议你看看这个。它是C++语言,不是java语言,但它可能对

    有帮助。

    我正在考虑自己做这件事。这将取决于你如何编码你的网络。我正在使用kryonet库,所以我的解决方案可能与您的不同

    而且,如果没有更多的信息,很难回答这个问题。你在做什么类型的游戏?它重吗?您需要UDP/TCP连接吗?延迟是一个问题吗?你打算实现线程吗?用户是与服务器交互还是直接相互连接,或者两者都是?(你提到了房间,所以我假设有一个服务器

    一般来说,基于有限的信息,我会推荐如下内容

    服务器/主机循环---生成------>Room1循环
    房间2环路
    房间3环路

    我很确定每个循环都需要fps,它们必须清晰地划分到主机循环中,您需要对其进行处理。另外,请查看您的网络库中的fps处理

    如果您没有使用网络库,我建议您使用一个

    我自己对网络循环有一些不同的想法,最好是让一个服务器促进两个用户之间的TCP连接,然后在匹配完成后将结果传输回服务器

    我想对于来回发送的结果会有安全问题,但是有办法解决这个问题


    祝你好运。

    到目前为止你尝试过的任何问题?我认为这个问题可能更适合GameDev SE:我很确定他们仍然可以处理编程。事实上,帮助文章声称:
    游戏特定的编程问题(引擎架构、游戏相关API、网络、工具等)
    是允许的。你为什么不试着把它放在那里,我想你会得到一个更好的答案。你列出的所有方法都是有效的,最好的答案取决于你的要求和网络代码。这对我来说似乎太广泛了。在实现特定方法时出现错误是另一个问题。@user3598272真正的答案是“如果您对自己的需求了解不够,无法自己找到答案,请选择最容易实现的一个,因为您需要担心更大的问题。然后在需要时进行更改。”哦,哈哈。这是我的问题!:)我在BigCodeszer上还有其他适用于java的解决方案。