虚幻在线子系统 NULL 不工作,在线子系统 Steam 工作

问题描述 投票:0回答:1

我遇到了一个关于在线子系统 NULL 的奇怪问题。我能够很好地创建和加入会话。一旦我加入会话,所有客户的棋子在移动时都会经历橡皮筋效应。还有其他奇怪的行为,例如客户端在获取 GameState 类时返回 null。

奇怪的是,使用在线子系统 Steam 时一切正常且符合预期。在登录到不同 Steam 帐户的两台独立计算机上进行测试时,橡皮筋移动问题消失了,并且客户端为 GameState 类获取 null 的奇怪行为也不存在。

我表示,如果案件被推翻,这将是一个更大的问题。由于这个问题,开发需要更长的时间。

在 Steam 和 NULL 子系统之间更改时,我在 DefaultEngine.ini 文件中更改以下内容

[/Script/Engine.GameEngine]
 +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=NULL

[OnlineSubsystemSteam]
bEnabled=false
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

蒸汽

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

DefaultEngine.ini 文件中是否还有任何其他设置需要更改才能使空子系统正常运行?谢谢!

unreal-engine4 steam
1个回答
0
投票

据我所知,你的 INI 看起来不错。 如果 NULL 处于活动状态,Steam 驱动程序将无法加载并回退到 IpNetDriver。

  • 角色移动复制不应受到您选择的在线子系统的影响。 具体来说,使用默认的 IpNetDriver 将只允许流量通过套接字 (UDP)。

游戏状态不复制的问题也感觉像是游戏逻辑问题,而不是 NetDriver 问题。 如果有的话,我希望 Steam 的功能会变得更糟,因为他们的 p2p 模型使用了 STUN/TURN。 你在这里做任何不标准的事情吗? 这通常表明类本身存在一些问题,例如忘记在虚拟函数上调用 Super() 等。 一定要检查你的日志,并将 LogNetTraffic 改为 Verbose(这是非常垃圾邮件),这会告诉你演员到底发生了什么。

如果您在 PIE 中使用 OSS NULL 运行,请确保您的主机(如果侦听服务器)在后台时不会受到限制,因为这会严重降低帧速率,意味着服务器实际上运行速度会变慢,并会影响客户端网络性能(通常不是很多)。

可以使用更多有关您测试方式的详细信息。 您是否使用侦听服务器 + 客户端、专用服务器 + 客户端等在编辑器中使用 PIE?

您是否使用游戏逻辑执行任何特定的 SetActorLocation 操作? 如果是这样,您就违反了角色移动组件 PHYS 移动模式的工作方式,这可能会导致橡皮筋和不同步。

© www.soinside.com 2019 - 2024. All rights reserved.