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


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



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

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


最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-14 21:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-14 21:56:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-14 21:56:01       82 阅读
  4. Python语言-面向对象

    2024-02-14 21:56:01       91 阅读

热门阅读

  1. 作业2.13

    2024-02-14 21:56:01       48 阅读
  2. 题记(40)--二次方程计算器

    2024-02-14 21:56:01       45 阅读
  3. devc++跑酷游戏2.0.1

    2024-02-14 21:56:01       38 阅读
  4. LeetCode--代码详解 33.搜索旋转排序数组

    2024-02-14 21:56:01       50 阅读
  5. UVA133 - The Dole Queue

    2024-02-14 21:56:01       53 阅读
  6. 【经验】STM32的一些细节

    2024-02-14 21:56:01       47 阅读
  7. 怎么查看python的安装路径

    2024-02-14 21:56:01       55 阅读
  8. 《Docker极简教程》--Docker镜像--Docker镜像的管理

    2024-02-14 21:56:01       41 阅读
  9. re:从0开始的CSS之旅 13. 文档流

    2024-02-14 21:56:01       51 阅读
  10. Linux命令-break命令(结束for,while或until循环。)

    2024-02-14 21:56:01       41 阅读
  11. 【算法】字符串匹配算法

    2024-02-14 21:56:01       58 阅读
  12. 记录 | python pyinstaller相对路径问题

    2024-02-14 21:56:01       39 阅读
  13. linux 生成 ca 证书

    2024-02-14 21:56:01       48 阅读
  14. 【C语言】简易英语词典

    2024-02-14 21:56:01       37 阅读
  15. LLM大模型相关问题汇总---答案(ChatGLM4生成)

    2024-02-14 21:56:01       36 阅读