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游戏引擎的网络游戏架构基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_41286360/article/details/127096815
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/354151

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.