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