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

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念