UE4自定义专用服务器(碰撞,命中框)
UE4 Custom Dedicated Server (collision, hitboxes)
所以我目前正在从头开始开发UE4中的自定义专用服务器。我使用RakNet作为网络引擎,并希望实现典型的专用服务器,该服务器可以管理向世界添加玩家,命中框,碰撞和验证数据包。我在这里验证的意思是,例如,如果服务器收到移动数据包,它可以决定数据包的发送方是否可以移动到那里。我看到验证例如移动数据包和命中框的最大麻烦,因为服务器必须可以访问世界和虚幻的碰撞方法,我不知道如何从头开始。是否可以从UE4获取基础服务器,并为其配备自己的网络引擎和数据包处理?还是有更好的方法来实现我的目标?
AFAIK 没有开箱即用的解决方案。你需要一些定制的东西。我能想到3个解决方案:
-
只需忽略碰撞即可。复制你从客户那里得到的东西,仅此而已。当然,这是一个便宜,省力的解决方案,容易被黑客入侵,但也许这对您的情况来说已经足够了?
-
在服务器上编写自定义冲突处理。这是很多工作。服务器需要知道所有碰撞体的位置、尺寸等。然后,您可以使用物理库(即子弹物理)来检查碰撞或编写自定义碰撞检查。
将 UE4编译为专用服务器。您可以在此处找到更多信息: https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux) 只需使用Raknet而不是原生UE4网络。
UE4的源代码是超过200万行复杂的C++代码,所以告诉别人"只是下载源代码并更改任何你喜欢的东西"不是一个可行的建议。
PS.PS。我不确定 RakNet 目前是否是一个不错的选择,这个项目已经 5 年没有更新了。
相关文章:
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- C++自定义比较函数
- 如何比较自定义类的std::变体
- std::设置自定义比较器
- 如何正确实现和访问运算符的各种自定义枚举器
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 自定义先决条件对移动分配运算符有效吗
- 使用VS Code和CMake Tools运行自定义命令
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- std::ranges::elements_view,用于自定义类似元组的数据
- 跟随整数索引列表的自定义类迭代器
- 参数化自定义CMake工具链
- 使用自定义比较函数使用std::sort()对矢量字符串进行排序时出现问题
- 如何在自定义类中启用'auto loops'?
- 使用QJsEngine在Qt中注册自定义类型
- Qt自定义QPush按钮未显示在布局上
- C unordered_map自定义的哈希函数碰撞
- UE4自定义专用服务器(碰撞,命中框)
- QT碰撞检测与自定义QGraphicsItem类