Games104现代游戏引擎入门-lecture18游戏引擎的网络游戏架构基础

本文主要是介绍Games104现代游戏引擎入门-lecture18游戏引擎的网络游戏架构基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Games104现代游戏引擎入门-lecture18游戏引擎的网络游戏架构基础

  • 1 challenge
    • 1 一致
    • 2 可靠性
    • 3 安全性
    • 4 多样性
    • 5 多样性
  • 2 基础
    • 1 Network Protocols
      • 1 OSI Model
      • 2 Socket
      • 3 TCP
      • 4 UDP
      • 5 game network protocols
      • 6 Reliable UDP
        • ARQ
        • FEC
        • Reed-Solomon codes
    • 2 Clock Synchroniation
      • 1 RTT
      • 2 NTP
      • 3 ntp+简单策略
    • 3 Remote Procedure call(RPC)
    • 3 P2P
    • 4 Network Topology
    • 5 Game Synchronization
      • 1 同步的方法
        • 1 帧同步
        • 2 锁同步
      • 2 确定性:
        • 1 浮点数
        • 2 随机数
      • 3
      • 3 状态同步
      • 4 总结
  • 3 视频

1 challenge

1 一致

在这里插入图片描述

2 可靠性

在这里插入图片描述

3 安全性

在这里插入图片描述

4 多样性

在这里插入图片描述

5 多样性

在这里插入图片描述

2 基础

在这里插入图片描述

1 Network Protocols

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1 OSI Model

在这里插入图片描述

2 Socket

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 TCP

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 UDP

在这里插入图片描述
在这里插入图片描述

5 game network protocols

大部分是组合协议。
在这里插入图片描述

6 Reliable UDP

网络游戏:基于UDP的可靠网络连接。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ARQ

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
丢包少的时候5%,没有必要再传

在这里插入图片描述

FEC

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Reed-Solomon codes

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

定制自己的UDP。基于APQ和FEC.很多传输协议也需要自己写。
在这里插入图片描述

2 Clock Synchroniation

1 RTT

在这里插入图片描述

2 NTP

对时间,
在这里插入图片描述
在这里插入图片描述
NTP算法:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3 ntp+简单策略

在这里插入图片描述
在这里插入图片描述

3 Remote Procedure call(RPC)

程序员只需要重点关注逻辑,不需要关注那么多的网络方面的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3 P2P

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

4 Network Topology

5 Game Synchronization

在这里插入图片描述

1 同步的方法

帧同步,锁同步,状态同步
在这里插入图片描述

1 帧同步

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
坏处:
客户端算力浪费了
带宽要求高

在这里插入图片描述

2 锁同步

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最慢的那个人会拖慢所有人的进程
在这里插入图片描述
bucket 同步是非常好的,网络不好了服务器不管你了。
在这里插入图片描述
在这里插入图片描述

2 确定性:

在这里插入图片描述

1 浮点数

所有的数学运算都要符合原理。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
定点数据:

在这里插入图片描述

2 随机数

要求严格同步,
在这里插入图片描述
同步随机数的种子,伪随机,
在这里插入图片描述

在这里插入图片描述

3

在这里插入图片描述

使用buffer来解决延时的问题,
在这里插入图片描述

渲染帧和逻辑帧:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Quick Catch UP
在这里插入图片描述
在这里插入图片描述

关照模式:
在这里插入图片描述
回放模式:
在这里插入图片描述
LockStep:

在这里插入图片描述
在这里插入图片描述
所有的状态客户端都有:
在这里插入图片描述

帧同步

在这里插入图片描述
在这里插入图片描述

3 状态同步

在这里插入图片描述
提交玩家部分的信息,server端会模拟整个。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
存在的问题入下:
在这里插入图片描述

在这里插入图片描述
server
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对网速不好的不利,别人会比你快一步做出反应。
在这里插入图片描述
丢包的问题:
在这里插入图片描述

4 总结

在这里插入图片描述

3 视频

https://www.bilibili.com/video/BV1HN4y157Zq/?spm_id_from=333.788&vd_source=5c9c50b5a07b211beafdf65d7cc7f8c8

这篇关于Games104现代游戏引擎入门-lecture18游戏引擎的网络游戏架构基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354151

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP