【发布时间】:2018-05-13 14:51:05
【问题描述】:
我正在用 Java 创建一个 2D 游戏。这个世界是基于多维数组的瓦片,我有服务器-客户端系统的架构。 与客户端的用户/连接是多线程的。
现在我的问题是: 我的客户应该向服务器发送请求以在他的视图范围内询问当前的世界状态(带有实体等),还是应该在我的连接/用户类中创建另一个线程,只是为了在每个 servertick 发送世界数据? 还是有更好的解决方案来发送/请求他的实体的世界?
感谢您的帮助;)
【问题讨论】:
-
我相信您做出的任何决定都取决于您未与我们分享的因素,例如玩家数量、延迟要求、游戏类型等。但是,一种常见的方法是让客户端请求其自身周围的地图信息,服务器在此类信息出现时将更改和重要数据推送给客户端。
-
游戏的实时性如何?如果它是一个棋盘游戏,那么一旦有人移动,服务器就发送数据可能是有意义的。如果它是一个具有同时动作的实时策略,它可能会更好地与服务器在每个滴答声中发送数据
-
另外,“我也创建了包”是什么意思?你是说网络数据包吗?
-
是的,我的意思是服务器包。我想要一种 mmorpg,它需要实时和更少的延迟
-
定义“mmorpg”,如果它是 RotMG 之类的东西,mmorpg 子弹地狱,你需要它比 WoW/RuneScape 之类的东西响应更快(更好的例子:Travian)我>。如果您对您想要做的事情和游戏类型更具描述性,那么我们可以更具描述性和帮助
标签: java multithreading server