UE4自定义专用服务器(碰撞,命中框)

UE4 Custom Dedicated Server (collision, hitboxes)

本文关键字:碰撞 自定义 专用 服务器 UE4      更新时间:2023-10-16

所以我目前正在从头开始开发UE4中的自定义专用服务器。我使用RakNet作为网络引擎,并希望实现典型的专用服务器,该服务器可以管理向世界添加玩家,命中框,碰撞和验证数据包。我在这里验证的意思是,例如,如果服务器收到移动数据包,它可以决定数据包的发送方是否可以移动到那里。我看到验证例如移动数据包和命中框的最大麻烦,因为服务器必须可以访问世界和虚幻的碰撞方法,我不知道如何从头开始。是否可以从UE4获取基础服务器,并为其配备自己的网络引擎和数据包处理?还是有更好的方法来实现我的目标?

AFAIK 没有开箱即用的解决方案。你需要一些定制的东西。我能想到3个解决方案:

  1. 只需忽略碰撞即可。复制你从客户那里得到的东西,仅此而已。当然,这是一个便宜,省力的解决方案,容易被黑客入侵,但也许这对您的情况来说已经足够了?

  2. 在服务器上编写自定义冲突处理。这是很多工作。服务器需要知道所有碰撞体的位置、尺寸等。然后,您可以使用物理库(即子弹物理)来检查碰撞或编写自定义碰撞检查。

  3. UE4编译为专用服务器。您可以在此处找到更多信息: https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux) 只需使用Raknet而不是原生UE4网络。

UE4的源代码是超过200万行复杂的C++代码,所以告诉别人"只是下载源代码并更改任何你喜欢的东西"不是一个可行的建议。

PS.PS。我不确定 RakNet 目前是否是一个不错的选择,这个项目已经 5 年没有更新了。