Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构

  • 1 三大架构
  • 2 Character movement repication
    • 1 插值
      • 1 内插值
      • 2 外插值
  • 3 Hit registration
    • 1 问题如下:
    • 2 由客户端来决定
    • 3 由服务器来决定
  • 4 MMOG NETWork 架构
    • 1 子系统
    • 2 MMO架构
      • 1 Link layer
      • 2 交易系统
      • 3 社交系统
      • 4 匹配系统
      • 5 数据存储系统
    • 3 分布式
      • 1 Challenges
      • 2 负载均衡
      • 3 一致哈希算法来解决分布式存在的问题
    • 4 服务管理
  • 5 Bandwidth Optimization
    • 1 计算带宽
    • 2 数据压缩
    • 3 物体相关性
      • 1 静态zones
      • 2 AOI
        • 1 Direct Range-Query
        • 2 Grid
        • 3 十字链表法
        • 4 PVS
    • 4 降低频率
  • 6 anti-Cheat
    • 1 查内存
    • 2 packers
    • 3 修改本地的资源
    • 4 网络包的截获
      • 1 加密
      • 2 软件包
    • 5 AI cheat
  • 7 Build a scalable world
    • 1 zoning
    • 2 复制
    • 3 两个要结合
  • 8 视频

1 三大架构

unity向这个方向靠

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第1张图片
虚幻引擎用的架构:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第2张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第3张图片

课程结构:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第4张图片

2 Character movement repication

角色位移的同步

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第5张图片

1 插值

内插值和外插值

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第6张图片
外插值:本质是预测,

1 内插值

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第7张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第8张图片
把server来的状态搞到buffer中去,
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第9张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第10张图片
内插的问题:两个客户端不一样,差个250ms
红车觉的撞行了,灰色车觉的没有,有这样的问题
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第11张图片

2 外插值

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第12张图片

如何预判下一步;
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第13张图片
PVB算法,就是一个简单的插值,会看到一个蓝色的曲线一直在追绿色的线,绿色的线是真实的位置,看两条曲线的重合度,这里面有很多小tracker,很有的意思,可以解决一些边界条件。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第14张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第15张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第16张图片Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第17张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第18张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第19张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第20张图片
有可能对方的游戏用了内插的方法,物理系统给了一个很大的反弹力。

通过以下的方法来解决:

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第21张图片

FPS里很多都是反物理的,要不然很唐突。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第22张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第23张图片

有时候用内插,有时候用外插
每个方法都是好方法,能解决问题就是好方法。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第24张图片

3 Hit registration

如何打中别人。网络游戏中 的命中判定是很难的问题
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第25张图片

1 问题如下:

目前没有很完美的解决方案。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第26张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第27张图片
击中别人并不存在一个正式的解。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第28张图片

2 由客户端来决定

非常符合人的感觉
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第29张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第30张图片
服务器会做一个验证:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第31张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第32张图片
其实也会在本地做一些防作弊手段,
但是非常不安全,需要做很多特殊的处理。

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第33张图片

3 由服务器来决定

最基本的问题:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第34张图片

解决方法:延时补偿

我把我这边的时钟回拨,根据算法猜测来补偿,
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第35张图片

server收到开枪的时间的时候,已经差的很远了
当前的时间减去一系列那些时间,然后就可以了。如果网络是稳定的。

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第36张图片
掩体:虽然你躲避了,但是你还是被打死了。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第37张图片

躲在掩体的人,冲出来的人有优势的。产生了不同的优势方和劣势方。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第38张图片

其他方法:
能帮玩家争取一些时间。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第39张图片
本地加特效,
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第40张图片

4 MMOG NETWork 架构


最早的网络游戏:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第41张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第42张图片

1 子系统

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第43张图片

2 MMO架构

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第44张图片

1 Link layer

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第45张图片
大厅:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第46张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第47张图片

2 交易系统

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第48张图片

3 社交系统

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第49张图片

4 匹配系统

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第50张图片

5 数据存储系统

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第51张图片

关系数据库
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第52张图片
非关系数据库更快
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第53张图片
内存数据库:
用的越来越多,

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第54张图片

3 分布式

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第55张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第56张图片

1 Challenges

对代码的安全性,鲁棒性要求就高了。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第57张图片

2 负载均衡

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第58张图片

3 一致哈希算法来解决分布式存在的问题

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第59张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第60张图片
删掉一个server
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第61张图片

服务器少的时候,需要用以下的方法:
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第62张图片

4 服务管理

是个非常重要的东西

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第63张图片Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第64张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第65张图片

5 Bandwidth Optimization

带宽非常重要,可以降低运营成本
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第66张图片

1 计算带宽

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第67张图片

2 数据压缩

把浮点数改成定点数:实战效果很好。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第68张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第69张图片

3 物体相关性

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第70张图片

1 静态zones

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第71张图片

2 AOI

很宽泛的概念,网络游戏降低带宽必须要做,节约了服务器的算力!
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第72张图片

1 Direct Range-Query

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第73张图片

2 Grid

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第74张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第75张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第76张图片

3 十字链表法

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第77张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第78张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第79张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第80张图片

4 PVS

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第81张图片

4 降低频率

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第82张图片

6 anti-Cheat

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第83张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第84张图片

1 查内存

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第85张图片

2 packers

被别人攻破了
内存混淆,
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第86张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第87张图片

3 修改本地的资源

改变敌人的材质为透明啥的。
本地资源的哈希值
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第88张图片

4 网络包的截获

网络包一定要加密。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第89张图片

1 加密

对称加密和非对称加密!

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第90张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第91张图片

2 软件包

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第92张图片

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第93张图片
扫描内存

5 AI cheat

很难防!
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第94张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第95张图片
数据统计系统来识别。
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第96张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第97张图片

7 Build a scalable world

构建一个开放的世界!

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第98张图片

1 zoning

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第99张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第100张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第101张图片
Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第102张图片

2 复制

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第103张图片

3 两个要结合

Games104现代游戏引擎入门-lecture19 网络游戏的进阶架构_第104张图片

8 视频

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

下:

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

你可能感兴趣的:(游戏引擎,游戏引擎)