我正在尝试创建一个多人游戏,其中,
Java.Util.Timer
作为我的游戏循环 关于实际问题:
我应该根据以下几点使用什么样的游戏循环? 以下各类游戏循环的优缺点是什么?
编辑
到目前为止我尝试了什么:
我在第1点使用了游戏循环,但有些房间没有机会更新他们的游戏循环。 我很困惑我是否需要更改我的游戏循环,或者我是否需要在每个循环中更改我的代码,或者问题是因为Java.Util.Timer
。
最终,它取决于您需要提供更多信息。
你正在处理不同的游戏或不同房间的“匹配”,我接受它,因为你说你的游戏是1v1。
如果您不需要在运行时在各个“房间”之间传输数据,那么拥有单独的循环是没有意义的。 如果您在服务器上托管游戏,则应将每个“房间”作为不同的并行处理。
另请注意,如果根本不需要传输数据,那么您应该使用直接TCP / UDP连接。
如果你详细说明,我可以更好地回答,但我建议你看看这个。 它是用C ++而不是Java,但它仍然有用
我在考虑自己这样做。 这取决于您对网络进行编码的方式。 我正在使用kryonet库,所以我的解决方案可能与您的不同。
此外,如果没有更多信息,很难回答这个问题。 你在制作什么类型的游戏? 它的图形很重吗? 你需要UDP / TCP连接吗? 延迟是个问题吗? 你打算实现线程吗? 用户是与服务器交互还是直接相互连接或两者兼而有之? (你提到过房间,所以我假设有一台服务器。
基于有限的信息,我一般会推荐的是这样的。
服务器/主机循环---生成-----> Room1循环
...............................................--- - > Room2循环
.............................................. ---- - > Room3循环
我很确定每个循环都需要fps,并且它们必须干净地分成主机循环,你需要玩这个。 还可以浏览一下您的网络库以进行fps处理。
如果您不使用网络库,我建议您使用一个。
我自己有关于网络循环的各种想法,最好的方法是让服务器促进两个用户之间的TCP连接,然后在匹配完成后将结果传回服务器。
我想对于来回发送的结果会有安全问题,但有办法解决这个问题。
祝好运。