【问题标题】:UE4 Custom Dedicated Server (collision, hitboxes)UE4 自定义专用服务器(碰撞、碰撞箱)
【发布时间】:2019-03-26 18:44:04
【问题描述】:

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

【问题讨论】:

  • 你知道 UE 有它的全部源代码的公共权利吗?您可以下载完整的源代码并更改您喜欢的任何内容,所以答案是肯定的!
  • 我知道源是公开的,但我在 UE4 代码中缺乏方向。所以服务器应该例如不渲染任何东西,因为这对于进行 hitboxes 计算是不必要的。如果我错了,请纠正我。

标签: c++ unreal-engine4 dedicated-server


【解决方案1】:

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

  1. 忽略冲突。复制你从客户那里得到的东西,就是这样。当然,这是一种容易被黑客攻击的廉价、省力的解决方案,但对于您的情况来说可能就足够了吗?

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

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

PS。 UE4 源代码包含超过 200 万行复杂的 C++ 代码,因此告诉某人“只需下载源代码并更改您喜欢的任何内容”不是一个可行的建议。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多