【发布时间】:2016-08-28 00:46:09
【问题描述】:
我正在构建我的第一个在线多人游戏,并试图找出找到特定范围内所有玩家的最佳方法。
我环顾四周;所有其他解决方案都基于内置测距功能的游戏引擎 API。
每个玩家都有一个原始的x,y 坐标对。
我想到的第一件事是:遍历服务器上的每个用户并过滤掉范围内的用户 - 只需使用毕达哥拉斯定理 - 但是我知道必须有更好的方法来做到这一点。
我想到的最好的事情是将地图分成大约 100 (10 x 10) 的部分,并将用户相应地放置到部分中。然后我可以获取用户所在的部分,而不是遍历服务器上的每个用户,而是遍历 9 个方格内的每个用户(3x3,用户部分及其周围的所有其他部分)。
我确信这比简单地每秒循环遍历整个服务器 1000 次要好,但有没有标准的方法,或者它是如何完成的?
我想在客户端和服务器端都保持精简。
【问题讨论】:
标签: algorithm server range game-engine game-physics