《UE5_C++多人TPS完整教程》学习笔记3 ——《P4 测试多人游戏(Testing Mutiplayer)》


本文为B站系列教学视频 《UE5_C++多人TPS完整教程》 —— 《P4 测试多人游戏(Testing Mutiplayer)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C++ Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者)为 游戏引擎能吃么。


文章目录

  • P4 测试多人游戏
  • 4.1 如何在编辑器中测试游戏
  • 4.2 通过局域网进行测试连接
  • 4.3 Summary


P4 测试多人游戏

本节课将讨论如何采用编辑器中播放模式(PIE,Play in editor)测试多人游戏,以及如何通过局域网(LAN, Local Area Network)连接到游戏。
在这里插入图片描述


4.1 如何在编辑器中测试游戏

下面讲解如何使用虚幻引擎内置的 多人测试功能Multiplayer testing capabilities)。

  1. 新建“第三人称游戏”工程项目 MPTesting,项目默认设置这里选择 C++。
    在这里插入图片描述
  2. 在工具栏上点击 “修改游戏模式”按钮 “”,在下拉菜单栏中可以看到 “多玩家” 选项卡,其中:
  • 玩家数量”(Number of Players) 可以修改成 1 ~ 4 之间的整数值,这里修改为 2,意味着当游戏开始时,两个游戏的实例(Instance)会同时运行。
    在这里插入图片描述
  • 网络模式” (Net Mode)设置虚幻引擎 编辑器播放游戏Play In Editor,PIE)的方式。选择 “Standalone” 将启动一个独立的游戏,不会创建专用服务器,也不会连接到服务器中;选择 “以监听服务器运行”(Play As Listen Server),编辑器将同时用作服务器和客户端,超出的额外实例可能会被打开,这取决于客户端的数量;选择 “以客户端运行”(Play As Client) ,编辑器将用作客户端,虚幻引擎将为我们创建一个专用服务器(Dedicated server),并在其中运行游戏实例。
    在这里插入图片描述
  1. 选择 “网络模式” 为 “以监听服务器运行”,点击工具栏上的 “播放” 游戏按钮 “▶”,可以看到两个游戏实例被打开,其中较小那个窗口的标题栏上提示该窗口运行的实例为 “客户端”,可以点击该窗口对人物进行控制。
    在这里插入图片描述
    在这里插入图片描述

4.2 通过局域网进行测试连接

通过局域网(LAN, Local Area Network)进行连接测试,以确保两台机器连接在一起时多人游戏可以正常运行。

  1. 局域网通常情况下有一个连接了多台机器的路由器(或同一个 Wi-Fi),每个台机器都会分配一个 IP 地址。由于它们都连接到了同一个路由器中,因此它们之间可以通过本地 IP 地址互相访问。
    在这里插入图片描述

  2. 使用蓝图搭建连接测试逻辑。在 “Content/Thirdperson/Blueprints” 目录下双击“BP_ThirdPersonCharacter”,打开完整蓝图编辑器。拖拽界面上方的 “BP_ThirdPersonCharacter” 选项卡到 “ThirdpersonMap” 选项卡的右边,以便于在蓝图编辑窗口和编辑器主界面之间快速切换。
    在这里插入图片描述
    在这里插入图片描述

  3. 在 “BP_ThirdPersonCharacter” 蓝图编辑器面板中添加三个键盘事件 “1”,“2”,“3”。
    在这里插入图片描述

  4. 设计一个按下键盘 “1” 键,就可以切换到等待其他玩家进入多人游戏的事件。在菜单栏(Menu Bar)下拉菜单中选择 “新建关卡” (New Level),选择 “Basic” 关卡(Level),在菜单栏(Menu Bar)下拉菜单中选择 “保存当前关卡” (Save Current Level),保存到 “Content/Thirdperson/Maps” 目录下,命名为 “Lobby”,表示这是其他玩家通过 LAN 连接后前往的关卡。
    在这里插入图片描述
    在这里插入图片描述

  5. 回到“BP_ThirdPersonCharacter” 蓝图编辑器面板。从节点 “1” 的 Pressed 引脚处拖拽出一条线,连接 “打开关卡 (按名字)” (Open Level (by Name))节点,并修改该节点的选项 “Level Name” 为 “Lobby”,修改选项 “Options” 为 “listen”,表示按下“1”就打开 “Lobby” 并指定其为监听服务器。
    在这里插入图片描述

  6. 从节点 “2” 的 Pressed 引脚处拖拽出一条线,连接 “执行控制台命令” (Execute Console Command)节点,然后修改该节点的选项 “Command” 为 “Open 192.168.3.12”,表示当键入 “2” 时,当前的游戏实例将会与本机进行 LAN 连接,然后可以载入本机已经运行的关卡 “Lobby”,其中 “192.168.3.12” 是本机 IPv4 地址,可以通过在命令提示符中键入命令行 ipconfig 查看。最后点击工具栏的 “编译” 和 “保存” 按钮。
    在这里插入图片描述
    在这里插入图片描述

  7. 打包项目。在工具栏中选择 “平台”,接着选择 “Windows”,点击 “打包项目”,在弹出的资源管理器窗口中找到工程 “MPTesting” 目录,新建一个文件夹 “Build” 并选择。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Notes

  • 如果出现 “SDK未设置” 错误提示 “Windows的SDK未正常安装,而其是生成数据的必需项。请检查主工具栏中“启动”菜单的SDK部分来更新SDK”,解决办法参见《UE5打包SDK未正确安装的问题》。
    在这里插入图片描述
  • 如果打包失败,出现错误提示 “ERROR: No target name was specified on the command-line.”,原因可能是因为 C++ 项目名称不合法,比如项目名称为 Test,或者出现了 “%-!” 等特殊字符以及中文。
  1. 打包完成后可以看到 “Build” 目录下生成了 “Windows” 文件夹,其中包含 “MPTesting” 应用程序。将本机(姑且叫设备1)的这个 “Windows” 文件夹发送到另一台设备(姑且叫设备2)上以准备进行测试,确保两个设备在同一个 LAN 下。
    在这里插入图片描述
    在这里插入图片描述

  2. 在设备1上运行 “MPTesting.exe”,在游戏窗口打开后按下 “1” 键,可以看到成功由默认关卡 “ThirdpersonMap” 跳转到关卡 “Lobby”。
    在这里插入图片描述
    在这里插入图片描述
    在设备2上运行 “MPTesting.exe”,可能会出现 “WARNING…” 对话框,直接点击 “确定” 按钮即可。游戏窗口打开后按下 “2” 键,可以看到成功由默认关卡 “ThirdpersonMap” 跳转到设备1的关卡 “Lobby”,并且关卡中有两个 Character。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


4.3 Summary

本节课主要学习虚幻引擎内置的多人游戏测试功能,接着使用蓝图编写 LAN 连接事件,然后对项目进行打包并在两台设备上进行 LAN 连接测试。

4.2 通过局域网进行测试连接步骤 7 中,如果打包项目时出现 “SDK未设置” 错误提示 “Windows的SDK未正常安装,而其是生成数据的必需项。请检查主工具栏中“启动”菜单的SDK部分来更新SDK”,解决办法参见《UE5打包SDK未正确安装的问题》;如果出现错误提示 “ERROR: No target name was specified on the command-line.”,原因可能是因为 C++ 项目名称不合法,比如项目名称为 Test,或者出现了 “%-!” 等特殊字符以及中文。


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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java入门高频考查基础知识9(银盛15问万字参考答案)

JAVA刷题专栏:http://t.csdnimg.cn/9qscL 目录 一、Springcloud的工作原理 三、注册中心心跳是几秒 四、消费者是如何发现服务提供者的 五、多个消费者调⽤用同⼀接口,eruka默认的分配⽅式是什么 六、springboot常用注解,及其实现 七、…

【Java】零基础蓝桥杯算法学习——线性动态规划(一维dp)

线性dp——一维动态规划 1、考虑最后一步可以由哪些状态得到,推出转移方程 2、考虑当前状态与哪些参数有关系,定义几维数组来表示当前状态 3、计算时间复杂度,判断是否需要进行优化。 一维动态规划例题:最大上升子序列问题 Java参…

反序列化漏洞(一)Shiro漏洞CVE-2016-4437复现

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、前言 春节后第一篇,祝大家龙年一切顺利&…

第二十八回 施恩重霸孟州道 武松醉打蒋门神-可用于生产环境的Python Web框架:Pyramid

施恩给武松讲了他的烦心事,他在快活林的酒肉店被蒋门神霸占了。希望武松能帮他出气。施恩的父亲也从屏风后走出来,让施恩拜武松为兄长。 武松要去打蒋门神,跟施恩约好了“无三不过望”,望子就是酒旗,意思看到酒旗就要…

中国电子学会2023年12月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)

2023-12 Scratch一级真题 分数:100 题数:37 测试时长:60min 一、单选题(共25题,共50分) 1.观察下列每个圆形中的四个数,找出规律,在括号里填上适当的数?(C)&#xf…

企业架构师的人格特质

L - Learning 持续学习的能力A - Abstracting 概念抽象的能力C1 - Connecting 联结事物的能力C2 - Compromising 平衡折衷的能力D - Decisioning 果断决策的能力 参考文章的链接

HGAME 2024 WEEK2 Web方向题解 全

---------【WEEK-2】--------- What the cow say? 题目描述:the cow want to tell you something 注意title,Python的flask漏洞可多呢 版本310 先测一下SSTI 正常情况下 SSTI测试 变量渲染测试,被waf了,说明方向对了 单单过滤…

js toFixed函数精度问题

在使用toFixed函数会出现精度缺失问题,如下图 在2.55与1.45保留1位小数时,正常情况下应该为2.6与1.5,而toFixed函数得出的是2.5与1.4。这和计算机中小数存储有关。 小数运算不精确其实与下面三方面有关: 1、存储 2、运算 3、显示…

starknet之 class_hash

文章目录 问题背景什么是Class Hash问题背景 部署合约报错:ReferenceError: Buffer is not defined 什么是Class Hash 官方: https://book.starknet.io/ch04-03-01-deploy-standard-account.html?highlight=class%20hash#finding-the-class-hash 要部署智能合约,您需要在…

栈和队列循环队列(C/C++)

本篇将用数组实现栈、链表实现队列以及使用数组实现循环队列,然后实现了用栈实现队列和用队列实现栈以及一些其他的栈和队列的习题,加深队栈和队列的理解。 若只看对应所需,可直接看文章旁的目录。 1.栈 1.1栈的概念及结构 栈:一…

ros自定义msg记录

文章目录 自定义msg1. 定义msg文件2. 修改 package.xml3. 修改 CMakeLists.txt4. message_publisher.py5. message_subscriber.py6. 运行 catkin build 测试 自定义msg ros 版本:kinetic 自定义test包的文件结构如下 |-- test | |-- CMakeLists.txt | |-- msg…

拓扑排序入门

文章目录 写在前面一些概念算法步骤字典序最大/最小的拓扑序列?模板例题3704. 排队家谱树奖金P1983 [NOIP2013 普及组] 车站分级1639. 拓扑顺序 写在前面 昨晚cf div3的F就是一道基本上可以说板子的拓扑排序的题目,没有做出来感觉图论很早之前就看了&am…