关于UE4多人局域网联机游戏中联网和回放的设置细节问题

news2024/12/24 2:28:00

背景

  1. 需要搭建局域网游戏。还需要把多人协作玩耍的过程记录下来,可以回放。于是开发了联网和回放功能。但出了问题。报了错。
  2. “客户端漫游失败,待定网络游戏创建失败” 怎么解决?

问题

  1. 创建UE4工程后,使用蓝图创建多人局域网蓝图,多人局域网 可以运行
  2. 单独制作回放(重播)系统,可以运行。回放系统记录下什么时间发生了事件的机制就用的联网功能。
  3. 但将多人局域网和回放系统放一起就无法同时存在。具体问题:在PIE模式下可以联网,可以回放。但Standalone模式无法联网,无法回放。发布独立游戏无报错。
  4. 在排查网络连接失败,能搜索到房间session但无法加入session的过程中,使用NetworkError和TravelError 对gameinstance检测(蓝图如下图)
    在这里插入图片描述
    Network并没有报错,但得到TravelError的报错如下: 客户端漫游失败,待定网络游戏创建失败。
    在这里插入图片描述

检查:

  1. 多人网络session蓝图,创建session、find session、join session 无问题
  2. 回放系统无问题
  3. 经两个多人网络游戏的代码对比排查。发现问题可能出在配置上。

解决

打开UE4工程下的Config/DefaultEngine.ini文件,这里面有UE4联网的设置。允许UE4链接局域网、steam、还是不允许联网。
在这里插入图片描述

找到对应的中括号的位置并增加或修改如下代码。如果没有中括号的项,可以自己创建一个。

[/Script/Engine.GameEngine]
#使用井号可注释
#局域网配置
NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

#回放系统配置,但无法联网的游戏  也无法启用回放系统。 注意前面有个+,就是说在局域网基础上追加对回放的支持。
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")

#链接到Steam平台的配置
#+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[/Script/OnlineSubsystemUtils.IpNetDriver]
#一堆Copy过来的代码,不太懂,就直接用了
AllowPeerConnections=False
AllowPeerVoice=False
ConnectionTimeout=60.0
InitialConnectTimeout=60.0
RecentlyDisconnectedTrackingTime=120
TimeoutMultiplierForUnoptimizedBuilds=1
KeepAliveTime=0.2
MaxClientRate=100000
MaxInternetClientRate=100000
RelevantTimeout=5.0
SpawnPrioritySeconds=1.0
ServerTravelPause=4.0
NetServerMaxTickRate=30
MaxNetTickRate=120
NetConnectionClassName="/Script/OnlineSubsystemUtils.IpConnection"
MaxPortCountToTry=512
ResolutionConnectionTimeout=20.0

[/Script/Engine.NetDriver]
#如果有控制、声音、Actor等需求。这里是从其他地方copy过来的,我眼下用不上,但也保留了
+ChannelDefinitions=(ChannelName=Control, ClassName=/Script/Engine.ControlChannel, StaticChannelIndex=0, bTickOnCreate=true, bServerOpen=false, bClientOpen=true, bInitialServer=false, bInitialClient=true)
+ChannelDefinitions=(ChannelName=Voice, ClassName=/Script/Engine.VoiceChannel, StaticChannelIndex=1, bTickOnCreate=true, bServerOpen=true, bClientOpen=true, bInitialServer=true, bInitialClient=true)
+ChannelDefinitions=(ChannelName=Actor, ClassName=/Script/Engine.ActorChannel, StaticChannelIndex=-1, bTickOnCreate=false, bServerOpen=true, bClientOpen=false, bInitialServer=false, bInitialClient=false)

[OnlineSubsystem]
#无法联网,经测试此种方法无法链接局域网。
#DefaultPlatformService=Null

#允许联网,经测试在断开网线后,此种方法可以组建局域网,并非链接到steam平台。
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

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

[/Script/WindowsTargetPlatform.WindowsTargetSettings]
Compiler=VisualStudio2017

设置完成后,重启UE4引擎,在次以Standalone模式运行游戏,就可以既支持联网,也可以录制回放了。

重点1:

是[/Script/Engine.GameEngine]这个设置,由于我的游戏是局域网的,不需要链接steam平台。而且局域网支持录制回放,所以我用注释的方式关闭了OnlineSubsystemSteam.SteamNetDriver。

#局域网配置
NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")

#回放系统配置,但无法联网的游戏  也无法启用回放系统。
+NetDriverDefinitions=(DefName="DemoNetDriver",DriverClassName="/Script/Engine.DemoNetDriver",DriverClassNameFallback="/Script/Engine.DemoNetDriver")

#链接到Steam平台的配置
#+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
注意:GameNetDriver 和 DemoNetDriver 起一个名字,也错误。

重点2:

把 DefaultPlatformService 设置成Null ,无法联局域网。设置成steam后,可以链接局域网。
在断开路由器跟互联网的链接后,使用DefaultPlatformService=Steam,路由器的局域网段内,可以顺利搭建多人游戏。如下代码

[OnlineSubsystem]
#无法联网,经测试此种方法无法链接局域网。
#DefaultPlatformService=Null

#允许联网,经测试在断开网线后,此种方法可以组建局域网,并非链接到steam平台。
DefaultPlatformService=Steam

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385864.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

知识图谱的介绍

知识图谱的由来 谷歌在2012年提出了知识图谱的概念,当时目的在于优化搜索引擎的返回结构,为用户提供更精确的结果。 知识图谱的定义 为了理解知识图谱,我们首先要明白信息与知识的概念。首先,信息表示的是外部的客观事实&#…

binlog找回误删数据

1、检查当前是否开启binlog存储 输入命令show variables like %log_bin%;,结果如下 可以看到log_bin的值是ON,说明binlog开启了。 2、查找binlog的存储位置 这个去到数据库的my.cnf配置文件中寻找,有一个log_bin的配置 切换到log_bin的目…

Saleen 系列来袭!

由 Ghostopunch 创作👻🥊 Ghostpunch 将 Saleen Automotive 带入 The Sandbox 元宇宙! 是 Saleen Automotive 于 1984 年由汽车界的梦想家 Steve Saleen 创立,目标是将经过比赛验证的性能带入大街小巷和元宇宙……😉 5…

TSDF学习记录

【唐宇迪】三维重建-TSDF通俗解读 人工智能入门教程 水泡动画模拟(Marching Cubes) - 算法小丑 - 博客园 (cnblogs.com) TSDF 流程分析 首先需要构建一大块空区域采用体素网格来存储该区域需要计算每个体素的TSDF值及其权重 原理简述 SDF值&#x…

【开源库学习】从OkHttp到Retrofit(其一 OkHttp)

从OkHttp到Retrofit主要流程dispatcherInterceptorsRetryAndFollowUpInterceptorBridgeInterceptorCacheInterceptorConnectInterceptorCallServerInterceptor缓存连接池主要流程 okHttp的使用比较简单,通常需要首先初始化一个HttpClient,然后在每次发送…

基于ubuntu的STM32嵌入式软件开发(四)——应用软件工程的修改、Makefile及编译脚本的编写

本文主要介绍基于标准库函数移植的STM32的应用软件工程的修改,主要涉及到文件内容修改、Makefile文件编写、编译脚本编写等内容,其中编译脚本是基于arm-none-eabi-gcc的交叉编译器撰写的。程序亲测可以正常编译,生成.bin和.hex的可烧录镜像文…

笔记--学习mini3d代码

主要是记录学习mini3d代码时,查的资料; 从github下载的代码: GitHub - skywind3000/mini3d: 3D Software Renderer in 700 Lines !!3D Software Renderer in 700 Lines !! Contribute to skywind3000/mini3d development by creating an a…

富文本QTextEdit

<1> QTextEdit支持富文本处理&#xff0c;即文档中可使用多种格式&#xff0c;如文字、图片、表格等… <2> 文档的光标主要基于QTextCursor类&#xff0c;文档的框架主要基于QTextDocument类。 <3> 一个富文本的文档结构主要分为几种元素&#xff1a;框架&am…

公司只有我一个测试人员...也没有朋友经验可以借鉴,我该怎么办?

近日看到一个帖子&#xff1a; 我所在的公司目前就我一个测试&#xff0c;我一个人对接开发&#xff0c;对接产品&#xff0c;公司也没什么流程&#xff0c;我不知道我该做什么&#xff0c;也没有前人经验可以借鉴&#xff0c;我该怎么办&#xff1f; 看到有很多刚刚步入测试行…

报名成人学历,还有没有必要申请学士学位?

很多同学在报名成人学历的时候并不重视学位证书&#xff0c;认为拿到毕业证就行了。 其实&#xff0c;学位证的重要性有时候真的不亚于毕业证。 别人要求必须双证&#xff0c;你一个毕业证就不顶事了。 下面我们就来了解下学位证的用处&#xff0c;以及三大成人学历提升方式&am…

微服务一 实用篇 - 3. Docker

《微服务一 实用篇 - 3. Docker》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - 3. Docker》《微服务一 实用篇 - 3. Docker》1.初识Docker1.1.什么是Docker1.1.1.应用部署的环境问题1.1.2.Docker解决依赖兼容问题1.1.3.Docker解决操…

干货文稿|详解深度半监督学习

分享嘉宾 | 范越文稿整理 | William嘉宾介绍Introduction to Semi-Supervised Learning传统机器学习中的主流学习方法分为监督学习&#xff0c;无监督学习和半监督学习。这里存在一个是问题是为什么需要做半监督学习&#xff1f;首先是希望减少标注成本&#xff0c;因为目前可以…

软件测试自动化Java篇【Selenium+Junit 5】

文章目录Selenium环境部署自动化测试例子常见的元素操作窗口等待浏览器的操作弹窗选择器执行脚本文件上传浏览器参数Junit 5导入依赖Junit 4 和 Junit5 注解对比断言测试顺序参数化单参数多参数动态参数测试套件指定类来运行测试用例指定包名来运行包下测试用例Selenium 为什么…

【线程安全篇】

线程安全之原子性问题 x &#xff0c;在字节码文件中对应多个指令&#xff0c;多个线程在运行多个指令时&#xff0c;就存在原子性、可见性问题 赋值 多线程场景下&#xff0c;一个指令如果包含多个字节码指令&#xff0c;那么就不再是原子操作。因为赋值的同时&#xff0c…

智慧工地AI视频分析系统 opencv

智慧工地AI视频分析系统通过pythonopencv网络模型图像识别技术&#xff0c;智慧工地AI视频分析算法自动识别现场人员穿戴是否合规。本算法模型中用到opencv技术&#xff0c;OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Pyth…

研讨会回顾 | Perforce版本控制工具Helix Core入华十年,携手龙智赋能企业大规模研发

2023年2月28日&#xff0c;龙智联合全球领先的数字资产管理工具厂商Perforce共同举办Perforce on Tour网络研讨会&#xff0c;主题为“赋能‘大’研发&#xff0c;助力‘快’交付”。 作为Perforce Helix Core产品在中国地区的唯一授权合作伙伴&#xff0c;龙智董事长何明女士为…

六、GoF之工厂模式

设计模式&#xff1a;一种可以被重复利用的解决方案。 GoF&#xff08;Gang of Four&#xff09;&#xff0c;中文名——四人组。 《Design Patterns: Elements of Reusable Object-Oriented Software》&#xff08;即《设计模式》一书&#xff09;&#xff0c;1995年由 Eric…

Sidecar-详解 JuiceFS CSI Driver 新模式

近期发布的 JuiceFS CSI Driver v0.18 版本中&#xff0c;我们提供了一种全新的方式访问文件系统&#xff0c;即 JuiceFS 客户端以 Sidecar 方式运行于应用 Pod 中&#xff0c;且客户端与应用同生命周期。 这个全新的功能将帮助用户在 Serverless Kubernetes 环境中使用 Juice…

【Python每日一练】总目录(不断更新中...)

Python 2023.03 20230303 1. 两数之和 ★ 2. 组合总和 ★★ 3. 相同的树 ★★ 20230302 1. 字符串统计 2. 合并两个有序链表 3. 下一个排列 20230301 1. 只出现一次的数字 2. 以特殊格式处理连续增加的数字 3. 最短回文串 Python 2023.02 20230228 1. 螺旋矩阵 …

基于k3s部署KubeSphere

目录相关文档准备工作安装K3S安装KubeSphere相关文档 k3s官网&#xff1a;https://docs.k3s.io/zh/quick-start k3s所有版本查看&#xff1a;https://github.com/k3s-io/k3s/tags kubesphere文档&#xff1a;https://kubesphere.io/zh/docs/v3.3/quick-start/minimal-kubesp…