因此,我目前正在从头开始在UE4中开发自定义专用服务器。我将RakNet用作网络引擎,并希望实现一种典型的专用服务器,该服务器可以管理向世界添加玩家,击中盒子,碰撞和验证数据包。我在这里验证的意思是如果服务器接收到一个移动数据包,它可以决定该数据包的发送方是否可以移动到该位置。我发现验证例如最大的麻烦移动数据包和Hitbox,因为服务器必须能够访问世界以及虚幻的碰撞方法,我不知道该如何从头开始。是否可以从UE4获取基本服务器并为其配备自己的网络引擎和数据包处理功能?还是有更好的方法实现我的目标?
答案 0 :(得分:0)
AFAIK尚无解决方案。您需要定制的东西。我可以想到3种解决方案:
只需忽略冲突。复制您从客户那里得到的东西,仅此而已。当然,这是一种容易被黑客入侵的廉价,省力的解决方案,但也许足以解决您的情况?
在服务器上编写自定义冲突处理。这是很多工作。服务器将需要知道所有对撞机的位置,尺寸等。然后,您可以使用物理库(即Bullet Physics)检查碰撞或编写自定义碰撞检查。
将UE4编译为专用服务器。您可以在此处找到更多信息: https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux) 只需使用Raknet代替本机UE4网络即可。
PS。 UE4源代码超过200万行复杂的C ++代码,因此告诉某人“仅下载源代码并更改您喜欢的任何内容”并不是可行的建议。
PS.PS。我不确定RakNet目前是否是一个不错的选择,这个项目已经有5年没有更新了。