虚幻中的网络概述一

news2024/9/28 21:22:54

前置:在学习完turbo强大佬的多人fps之后发觉自己在虚幻网络方面还有许多基础知识不太清楚,结合安宁Ken大佬与虚幻官方文档进行补足。

补充:官方文档中的描述挺好的,自己只算是搬运和将两者结合加强理解。

学习虚幻中的网络先从虚幻网络的架构说起:

先放上一张架构总结图

客户端-服务器模型(C/S模式)

网络中的一台计算机作为 服务器 主持多人游戏会话,而所有其他玩家的计算机作为 客户端 连接到该服务器。然后,服务器与连接的客户端分享游戏状态信息,并提供一种客户端之间通信的方法。如下图:

在服务器上才是多人游戏实际发生的地方

客户端会远程控制其在服务器上各自拥有的 Pawn,发送过程调用以使其执行游戏操作,但服务器不会将视觉效果直接流送至客户端显示器。服务器会将游戏状态信息 复制 到各客户端,告知应存在的Actor、此类Actor的行为,以及不同变量应拥有的值。然后各客户端使用此信息,对服务器上正在发生的情况进行高度模拟

以下是官方文档中举的一个网络多人游戏例子,分析了整个过程。此处需要时刻注意知晓的一点在客户端和服务器上都有一个玩家Pawn,客户端会远程控制其在服务器上各自拥有的 Pawn

玩家1在本地机器上按下输入以发射武器。

  • 玩家1的本地Pawn将武器的发射命令传送给服务器上对应的Pawn。
  • 玩家1在服务器上的武器生成发射物。
  • 服务器告知所有的客户端生成玩家1发射物的副本
  • 玩家1在服务器上的武器告知所有客户端播放武器发射音效和视觉效果。

玩家1的发射物从在服务器上的武器中射出并前移。

  • 此时,服务器告知所有客户端复制玩家1发射物发生的移动,因此各客户端上玩家1的发射物便发生相应移动。

玩家1在服务器上的发射物撞击玩家2的Pawn。

  • 碰撞触发摧毁服务器上玩家1发射物的函数。
  • 服务器自动告知所有客户端各自摧毁玩家1发射物副本。

  • 碰撞触发告知所有客户端播放附带碰撞音效和视觉效果的函数。

  • 玩家2在服务器上的Pawn承受发射物碰撞造成的伤害。

  • 玩家2在服务器上的Pawn告知玩家2客户端播放画面效果,作为对伤害的响应。

 总结:在网络游戏中,每台不同机器上的各场景均有各自的Pawn、武器及发射物的副本。服务器是游戏真正运行的地方,但我们要让客户端的场景看似发生了相同事件。因此,需要选择性地向各客户端发送信息,以在服务器上创建场景的视觉代表。


这里穿插一下虚幻中的网络模式

独立(StandAlone):游戏作为服务器运行,不接受远程客户端连接。参与游戏的玩家必须为本地玩家。此模式用于单人游戏和本地多人游戏。其将运行本地玩家适用的服务器逻辑和客户端逻辑。

客户端(As Client):游戏作为网络多人游戏会话中与服务器连接的客户端运行。其不会运行服务器逻辑。

聆听服务器(Listen Server):游戏作为主持网络多人游戏会话的服务器运行。其接受远程客户端中的连接,且直接在服务器上拥有本地玩家。此模式通常用于临时合作和竞技多人游戏。

专属服务器(Dedicated Server):游戏作为主持网络多人游戏会话的服务器运行。其接受远程客户端中的连接,但无本地玩家,因此为了高效运行,其将废弃图形、音效、输入和其他面向玩家的功能。此模式常用于需要更固定、安全和大型多人功能的游戏。

因为独立游戏服务器可同时作为服务器和客户端,为多人游戏创建的逻辑可在无需额外工作的情况下,在单人游戏中运行。

接下来介绍在服务器与客户端中分别存在的东西:

其中,GameMode只在服务器中存在;中间部分(GameState、Pawn、PlayerState)在服务端和客户端中都存在并且都一样,并且也是可以相互获取到的;

PlayerControlle部分,在服务端持有所有的PlayerController,客户端中分别只存在自己的Controller;

Game Instance UI在服务端和每个客户端上都是独立存在的。

这期就先到这啦~下期讲讲复制与RPC

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

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

相关文章

基于标签的协同过滤推荐方法研究

[摘要] 2.2标签相似度矩阵 惩罚jaccard相关热度系数

Q4已来,DAO发新生|CyberDAO子DAO种子会议

Q4已来,DAO发新生|CyberDAO子DAO种子会议,2023年10月25日在成都五星级希顿国际酒店隆重召开,本次会议百名DAO精英成员及CyberDAO大中华区运营团队合伙人JR、漫威、安祈出席!以蓄势和重塑为主题带领大家乘势而上,创新引…

控制系统典型应用车型 —— 牵引式移动机器人

牵引式移动机器人(AGV/AMR),通常由一个牵引车和一个或多个被牵引的车辆组成。牵引车是机器人的核心部分,它具有自主导航和定位功能,可以根据预先设定的路径或地标进行导航,并通过传感器和视觉系统感知周围环…

提高数据研究效率,优化成果分享及复用|ModelWhale 版本更新

秋高气爽、金桂飘香,十月末,我们又迎来了 ModelWhale 新一轮的版本更新。 本次更新中,ModelWhale 主要进行了以下功能迭代: 新增 添加模型服务到知识库(专业版✓ 团队版✓) 新增 自动生成数据引用信息&am…

MES管理系统解决方案实现生产信息全程追溯

生产制造企业在生产过程中,最令人头疼的问题之一就是产品信息的追溯。当产品出现质量问题时,需要在庞大的数据中寻找出问题批次的产品和同批次的物料,并进行召回处理,这样的工作量十分巨大。为了解决这一问题,许多企业…

Yolov5原理详细解析!一文看懂

引言 Yolo(You Only Look Once)是一种one-stage目标检测算法,即仅需要 “看” 一次就可以识别出图片中物体的class类别和边界框。Yolov5是由Alexey Bochkovskiy等人在YOLO系列算法的基础上进行改进和优化而开发的,使其性能与精度都得到了极大的提升。 Yolov5推出了Yolov5s、…

华为OD机考算法题:计算最大乘积

题目部分 题目计算最大乘积难度易题目说明给定一个元素类型为小写字符串的数组&#xff0c;请计算两个没有相同字符的元素长度乘积的最大值。 如果没有符合条件的两个元素&#xff0c;返回 0。输入描述输入为一个半角逗号分隔的小写字符串的数组&#xff0c;2< 数组长度<…

Painter:使用视觉提示来引导网络推理

文章目录 1. 论文2. 示意图3. 主要贡献4. 代码简化 1. 论文 paper:Images Speak in Images: A Generalist Painter for In-Context Visual Learning github:https://github.com/baaivision/Painter 2. 示意图 3. 主要贡献 在 In-context Learning 中&#xff0c;作为自然语言…

【2018统考真题】给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高 效的算法,找出数组中未出现的最小正整数。

【2018统考真题】给定一个含n(n≥1&#xff09;个整数的数组&#xff0c;请设计一个在时间上尽可能高 效的算法,找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}中未出现的最小正 整数是1;数组{1,2,3}中未出现的最小正整数是4。 代码思路&#xff1a; 题目让你找未出现的最…

2024年北京/上海/广州/深圳PMP®项目管理认证精品班招生简章

PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。国内众多企业已把PMP认证定为项目经理人必须取得的重要资质。 【PMP认证收益】 1、能力的提升&#xff08;领导力&#xff0c;执行力&#xff0c;创新能力&#xff0c…

国产 2443A 峰值功率分析仪

2443A 峰值功率分析仪 频率范围覆盖&#xff1a;9kHz至67GHz 产品综述 2443A峰值功率分析仪由峰值功率分析仪主机和系列化峰值功率探头组成&#xff0c;可用于测量和分析微波毫米波脉冲调制信号的多种幅度和时间参数&#xff0c;是表征脉冲调制信号特性的综合性测量与分析仪器。…

【2024秋招】2023-9-16 贝壳后端开发二面

1 自我介绍 2 秒杀系统 2.1 超卖怎么解决 3 redis 3.1 过期策略 3.2 过期算法 4 kafka 4.1 说一说你对kafka的了解 4.2 如何保证事务性消息 4.3 如何保证消息不丢失 4.4 消息队列的两种通信方式 点对点模式 如上图所示&#xff0c;点对点模式通常是基于拉取或者轮询…

Docker实战之一

一、前言 前两天看到一篇文章 再见了 Docker&#xff01;K8S 已成气候&#xff01;&#xff0c;K8S这么高端我们是还没有玩过的&#xff0c;Docker倒是实践过一把&#xff0c;这个系列会简单介绍一下实战的过程&#xff0c;具体背景是因为我们有时需要给门店提供一个相对稳定…

如何在IDEA中配置指定JDK版本?轻松解决!!!

有时候我们在导入项目&#xff0c;如果手动在IDEA中指定jdk版本&#xff0c;往往启动项目会报错误。 因此当我们新引入项目启动不了时可以检查一下自己IDEA中的jdk版本是否正确。 下面以配置jdk版本为11显示步骤&#xff1a; 1、配置 Project Structure 1.1、通过快捷键&qu…

阶乘与双阶乘的相关性质

阶乘与双阶乘的相关性质 双阶乘 基本性质 积分恒等式 极限近似 级数展开 阶乘 斯特林(Stirling)公式 gamma函数

信必优收到中国首批成立的期货公司之一表扬信

近日&#xff0c;信必优收到中国首批成立的期货公司之一的表扬信&#xff0c;客户极力表扬了我司员工卓越的职业操守&#xff0c;充满热情、勤奋努力&#xff1b;在工作中成长迅速&#xff0c;不仅对公司整体开发框架熟练掌握&#xff0c;对公司相关业务也理解深刻&#xff0c;…

进程控制(一):进程终止

文章目录 进程控制&#xff08;一&#xff09;进程终止运行正常退出码 运行异常进程正常/异常总结 进程控制&#xff08;一&#xff09; 在前文中&#xff0c;我们初步了解了进程的概念&#xff0c;以及通过fork函数来创建子进程&#xff0c;并对于为什么运行一个程序&#xf…

虹科分享 | 买车无忧?AR带来全新体验!

文章来源&#xff1a;虹科数字化与AR 阅读原文&#xff1a;https://mp.weixin.qq.com/s/XsUFCTsiI4bkEMBHcGUT7w 新能源汽车的蓬勃发展&#xff0c;推动着汽车行业加速进行数字化变革。据数据显示&#xff0c;全球新能源汽车销售额持续上升&#xff0c;预计到2025年&#xff0…

Banana Pi BPI-W3(ArmSoM-W3) RK3588编解码之MPP环境配置

1. 简介 瑞芯微提供的媒体处理软件平台&#xff08;Media Process Platform&#xff0c;简称 MPP&#xff09;是适用于瑞芯微芯片系列的 通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理&#xff0c;其目的是为了屏蔽不 同芯片的差异&#xff0c;为使用者…

提取存档提取操作没有完成出现意外错误,导致无法提取存档。错误Ox8007000E:内存资源不足,无法完成此操作。若要关闭此向导,请单击“完成“”。完成(F)

提取存档 提取操作没有完成 出现意外错误&#xff0c;导致无法提取存档。 错误Ox8007000E:内存资源不足&#xff0c;无法完成此操作。 若要关闭此向导&#xff0c;请单击"完成"”。完成(F) 取消 当我们解压一个普普通通的压缩包时&…