《UE5_C++多人TPS完整教程》学习笔记6 ——《P7 在线会话控制(Online Sessions)》


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


文章目录

  • P7 在线会话控制
  • 7.1 在线子系统
  • 7.2 会话接口
  • 7.3 制定游戏计划
  • 7.4 Summary


P7 在线会话控制

本节课将接着上节课《P6 在线子系统(Online Subsystem)》的内容,详细介绍虚幻引擎的在线子系统类的作用以及它涵盖的一些与(管理)多人游戏会话功能相关的接口(Interface),深入探讨 “会话” 接口,它用于处理设置和加入游戏会话。最后,从游戏计划制定中说明如何让其他玩家连接我们的多人游戏或我们如何加入其他玩家。
在这里插入图片描述


7.1 在线子系统

  1. 虚幻引擎的在线子系统提供了一种访问在线平台服务(SteamXbox Live等)的方法,利用在线子系统可以处理任何在线平台服务的好友、成就、设置配对会话(Setting up matching sessions)等系统功能,而我们必须要做的就是为特定的平台配置我们的项目。
    在这里插入图片描述

  2. 我们需要在 Engine.ini 这个配置文件下指定默认平台服务。虚化引擎的在线子系统可以通过 “IOnlineSubsystem” 类中的静态函数 “Get” 进行访问,该函数返回值是一个指向相应子系统的指针,具体参阅官方文档 《IOnlineSubsystem::Get》
    在这里插入图片描述


7.2 会话接口

  1. 我们最关心(We’re most concerned with)的就是会话接口(Session interface),它除了可以创建、管理和销毁游戏会话,还具有会话搜索以及其他配对(Matchmaking)功能。

  2. 一个会话可以认为是游戏的一个实例,它运行在具有一系列属性的服务器上。会话可以是公开的,即所有玩家就能找到并加入该会话;会话也可以是私密的,这样只有接收会话邀请的人才能加入游戏。
    在这里插入图片描述

  3. 一个典型的会话 生命周期Lifetime)包括会话由需求创建、等待玩家加入、为每个加入的玩家注册、会话开始、进行多人游戏、会话结束、取消玩家注册、会话更新或销毁。我们只需要 “CreateSession()”、“FindSessions()”、“JoinSession()”、“StartSession()”、“DestroySession” 这些接口函数即可实现上述生命周期。
    在这里插入图片描述


7.3 制定游戏计划

  1. 我们的游戏目标就是点击菜单中两个按钮—— “Host” 和 “Join” 的其中之一就能实现相应功能:点击 “Host” 时,设定会话设置、调用会话接口函数 “CreateSession()”,以创建并打开一个游戏大厅等待其他玩家加入;点击 “Join” 时,设定搜索设置(Search settings)接着调用会话接口函数 “FindSession()”,这将返回一些搜索结果,因此需要进行遍历(iterate through those results)并选择一个有效的会话,紧接着调用会话接口函数 “JoinSession()”,获得 “Client Travel” 所需的 IP 地址,进入其他玩家(作为监听服务器)创建的游戏大厅中。
    在这里插入图片描述
  2. 然后把上述逻辑功能放入一个自己设计、用于专门处理与会话相关特性(session-related feature)的简洁(neat)类中。但我们不想因为创建诸多新类而无从下手,现在我们只需要从下图右边的典型类中访问在线子系统。
    在这里插入图片描述

7.4 Summary

本节课详细介绍虚幻引擎的在线子系统类,游戏会话典型的生命周期以及与能够完成这个生命周期所需要的接口函数。最后,从游戏计划制定中说明使用接口函数来让其他玩家连接我们的多人游戏中或者让我们连接到其他玩家的多人游戏中。
在这里插入图片描述


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

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

相关文章

《直到黎明》中的人物性格——萨曼莎·戈登

在Supermassive Games开发的交互式恐怖冒险游戏《直到黎明》中,萨曼莎戈登是一位关键角色,其性格塑造丰富而立体,包含了多重维度的人性刻画。以下将从几个核心性格特点出发,深入探讨萨曼莎戈登这一角色。 一、勇敢坚韧 萨曼莎面对游戏中极端恶劣的生存环境与持续不断的恐怖…

Java 基于 SpringBoot+Vue 的社区医院系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

一、DataX简介

DataX简介 一、什么是DataX二、DataX设计三、支持的数据源四、框架设计五、运行原理六、DataX和Sqoop对比 一、什么是DataX DataX是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、OD…

小白速成法:剖析一个Android项目以快速上手

这是一个基于Tasmota的设备、用MQTT协议来通信控制的安卓应用程序。支持ON/OFF命令插座和基本的RGB LED控制。 源码点击此处 只需要关注SmartController-main\app\src的代码 项目解压之后如图 只需要关注“app”文件夹里的东西即可,“gradle”是配置文件&#xf…

linux信号机制[一]

目录 信号量 时序问题 原子性 什么是信号 信号如何产生 引入 信号的处理方法 常见信号 如何理解组合键变成信号呢? 如何理解信号被进程保存以及信号发送的本质? 为什么要有信号 信号怎么用? 样例代码 core文件有什么用呢&#…

AI论文速读 |【综述】城市基础模型回顾与展望——迈向城市通用智能

最近申请了一个公众号,名字为“时空探索之旅”。之后会同步将知乎有关时空和时序的论文总结和论文解读发布在公众号,更方便大家查看与阅读。欢迎大家关注,也欢迎多多提建议。 🌟【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘…

用Python来实现2024年春晚刘谦魔术

简介 这是新春的第一篇,今天早上睡到了自然醒,打开手机刷视频就被刘谦的魔术所吸引,忍不住用编程去模拟一下这个过程。 首先,声明的一点,大年初一不学习,所以这其中涉及的数学原理约瑟夫环大家可以找找其…

侧信道攻击是什么

侧信道攻击是什么? 侧信道攻击是一种利用系统的物理实现或实现的特定属性来获取信息的攻击方式。这些攻击利用了系统在执行特定操作时产生的信息泄漏,而不是直接攻击系统的计算或加密算法。侧信道攻击通常利用系统的功耗、电磁辐射、时间延迟等物理特性进行攻击&a…

【Java程序设计】【C00264】基于Springboot的原创歌曲分享平台(有论文)

基于Springboot的原创歌曲分享平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的原创歌曲分享平台 本系统分为平台功能模块、管理员功能模块以及用户功能模块。 平台功能模块:在平台首页可以查看首…

专业145+总分400+合肥工业大学833信号分析与处理综合考研经验电子信息通信,真题,大纲,参考书

今年专业课145总分400,我总结一下自己的专业课合肥工业大学833信号分析与处理和其他几门的复习经验。希望对大家复习有帮助。 我所用的教材是郑君里的《信号与系统》(第三版)和高西全、丁玉美的《数字信号处理》(第四版&#xff…

百面嵌入式专栏(面试题)驱动开发面试题汇总 2.0

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。 1、Linux系统的组成部分? Linux内核、Linux文件系统、Linux shell、Linux应用程序。 2、Linux内核的组成部分? (1)第一种分类方式:内存管理子系统、进程管理子系统、文件管理子系…

政安晨:在Jupyter中【示例演绎】Matplotlib的官方指南(二){Image tutorial}·{Python语言}

咱们接着上一篇,这次咱们讲使用Matplotlib绘制图像的简短尝试。 我的这个系列的上一篇文章在这里: 政安晨:在Jupyter中【示例演绎】Matplotlib的官方指南(一){Pyplot tutorial}https://blog.csdn.net/snowdenkeke/ar…