当前位置: 首页 > wzjs >正文

大型网站建设的主要问题网站上传文件不大于5M定么做

大型网站建设的主要问题,网站上传文件不大于5M定么做,建设网站有哪些,网站的建设与维护工资课程里的版本好像是1.9,目前使用版本为3.8.3 开始~ 目录 状态同步帧同步帧同步客户端帧同步服务端ECS框架概念ECS的解释ECS的特点EntityComponentSystemWorld ECS实现逻辑帧&渲染帧 ECS框架使用帧同步&ECS 状态同步 一般游戏的同步策略有两种:…

课程里的版本好像是1.9,目前使用版本为3.8.3
开始~

目录

  • 状态同步
  • 帧同步
  • 帧同步客户端
  • 帧同步服务端
  • ECS框架概念
    • ECS的解释
    • ECS的特点
    • Entity
    • Component
    • System
    • World
  • ECS实现
    • 逻辑帧&渲染帧
  • ECS框架使用
  • 帧同步&ECS

状态同步

一般游戏的同步策略有两种:状态同步帧同步
如下时序图为状态同步
在这里插入图片描述

  • c1操作从a走到b再走到c,因为不必关注细节所以c1将a走到c这个信息告诉给服务端
  • 服务端验证这个操作是否合规,将验证结果告诉回c1
  • 同时服务端还将这个信息转发给了c2和c3
  • c2网络比较快,立刻收到了这条数据,根据插值模拟,模拟出c1从a走到c的动作(当然如果请求频率够快将a到b和b到c都告诉了c2,那就模拟的更精细)
  • c3因为网络较慢,过了很久才收到服务端的数据,此时c1已经做下一个动作了,那c3就会采取一个瞬移或加速的方式模拟c1的移动

优点:

  1. 容易断线重连(因为数据都在服务端)
  2. 容易防外挂(因为逻辑都在服务端)
  3. 简单粗暴(客户端只需获取服务端数据并展示)

缺点:

  1. 服务器压力大(需要承担很大的计算量)
  2. 流量大(数据均由服务端传送过来)
  3. 不同玩家屏幕表现不一样

帧同步

帧同步的计算全部在客户端,服务端只负责做每帧收集操作,合并操作并且转发
那么问题来了,怎么保证所有客户端结果相同?
相同输入 + 相同逻辑 = 相同结果
逻辑层和显示层的分离
在这里插入图片描述

  • 同一帧,c1想要移动,c2想要进行攻击,他们将数据都发送给了服务端
  • 服务端只进行合并转发,给两个客户端
  • c1收到了c1想要移动,c2想要攻击的数据,并进行模拟
  • c2同样收到了c1想要移动,c2想要攻击的数据,并进行模拟
  • 下一帧中客户端都没有操作,没有数据传给服务端,服务器同样进行发送操作

注意:

  • 现代网游用这种模式,当c2掉线了,服务端仍然逐帧执行,c1并没有受到影响
  • 而老代网游模式,每一帧客户端都需要给服务端传送数据(没操作也要传),当c2掉线后,服务端发现收不到c2的数据就会锁帧,所有客户端都需要等待,直到再次所有客户端的数据
  • 再老代网游,如果有一个客户端网速很慢,客户端就会拉长帧时间去保证每个客户端的帧更新是同步的,会导致网速快的客户端也很慢

优点:

  1. 流量低(所有逻辑都在客户端)
  2. 方便做录像功能(直接客户端再次执行运算逻辑即可)
  3. 服务器逻辑简化
    缺点:
  4. 有可能作弊
  5. 需要保证各端运算结果一致性(比如随机数,无限小数等)
  6. 实时性要求比较高(帧同步的特点就是每秒同步很多次)
  7. 断线重连需要重新跑所有逻辑(可优化)

状态同步和帧同步比较
在这里插入图片描述

帧同步客户端

客户端职责:

  1. 玩家操作不直接处理,而是发送给服务器
  2. 收到服务器一帧数据,模拟一帧
    (?帧同步但是逻辑在服务端)

[代码实现]在下面👇

帧同步服务端

具体步骤可以看之前的文章
还是再总结一下:

快速开始NodeJs项目 npm init -y
安装TS npm install typescript --save-dev
安装WS npm install ws --save-dev
安装提示 npm install @types/ws --save-dev
生成tsconfig.json tsc --init
安装即时编译 npm install ts-node --save-dev
添加nodemon npm install nodemon --save-dev

服务端职责:

  1. 把玩家加入到一局游戏中,下发初始消息
  2. 每一帧收集操作,合包转发

代码实现(客户端+服务端)

ECS框架概念

ECS的解释

  • E - Entity 实体
  • C - Component 组件
  • S - System 系统

ECS的特点

  • 网络-数据-逻辑-显示层相互独立
  • C/S端可以运行同一份逻辑代码,方便验证作弊
    服务端没有creator内api,逻辑显示放在一起的话,服务端跑不了
  • 可以方便的进行预测和回退

Entity

  • 每个Entity对象都有不同的EntityId
  • Component挂在的对象,同种类型的Component只能拥有一个
  • 提供Component的增删查和备份

Component

  • Component只包含数据,不能拥有逻辑函数
  • Component挂载在Entity上
  • ComponentId使用不同的位来区分(因为Component操作比较频繁,所以需要使用位运算效率优化)
    位运算

System

  • System只拥有逻辑,不能包含数据
  • System拥有不同Type,比如逻辑帧System,渲染帧System
  • 依靠SystemType来确定执行顺序和每帧执行次数
  • onUpdate函数由系统自动触发,不能手动调用

World

  • ECS世界的入口,单例
  • 驱动System和Update
  • 提供Entity的增删查功能
  • 使用forEach根据ComponentId组合来遍历Entity

ECS实现

实现代码

逻辑帧&渲染帧

如下图,为一帧执行的内容和不同机器的运行速度

  • 我们期望1s内能执行60帧,每一帧执行一个逻辑帧和一个渲染帧,那就需要每一帧耗时不超过16.6ms
  • 高性能机器每一帧耗时16ms(8+8),可以满足1s执行60帧
  • 低性能机器每一帧耗时24ms(12+12),无法满足1s执行60帧,那就会优先执行逻辑帧,不执行渲染帧,去满足1s执行60次逻辑帧,保证高低性能机的逻辑次数一致,以确保执行结果相同

在这里插入图片描述

ECS框架使用

实现和使用放在一起了
使用ECS实现一个简单的demo(箭头旋转前进)
实现代码

帧同步&ECS

代码实现


文章转载自:

http://xdibZvr1.qtcpk.cn
http://6dLV89cY.qtcpk.cn
http://pHzl8eNp.qtcpk.cn
http://bgTfE49x.qtcpk.cn
http://HO52fhxb.qtcpk.cn
http://16pBkc2v.qtcpk.cn
http://iF4D3zm4.qtcpk.cn
http://Fv7t4Rxp.qtcpk.cn
http://h8hagCBC.qtcpk.cn
http://uBtBZO8Q.qtcpk.cn
http://NVADV0DC.qtcpk.cn
http://bgs4QmdS.qtcpk.cn
http://vje2Tp23.qtcpk.cn
http://wnShaEdk.qtcpk.cn
http://6MZZkjtv.qtcpk.cn
http://93fr9bvq.qtcpk.cn
http://8yinY2nN.qtcpk.cn
http://P0EzP9ce.qtcpk.cn
http://nulgazyH.qtcpk.cn
http://oIWwtV79.qtcpk.cn
http://YB7XRsba.qtcpk.cn
http://IGCavVIS.qtcpk.cn
http://oAEiMM56.qtcpk.cn
http://I5gc4MBC.qtcpk.cn
http://XNTM6XE6.qtcpk.cn
http://z0NslGab.qtcpk.cn
http://J1ZjqkZv.qtcpk.cn
http://Kw0q1ERQ.qtcpk.cn
http://qJqt65HO.qtcpk.cn
http://jIWzZstF.qtcpk.cn
http://www.dtcms.com/wzjs/708919.html

相关文章:

  • 网站后期的维护国外以紫色为背景的网站
  • 网站网页设计是什么商业网站的域名代码
  • 网站开发基础语言关键词优化需要从哪些方面开展?
  • 网站安全建设 应用开发建设一个自己的网站首页
  • 中英语双语网站咋做网站建设就是学淘宝吗
  • 北京网站建设怎么样天宁波江北建设局网站
  • 电商购物网站建设临沂网站建站专业公司
  • 如何修改网站关键词wordpress 发布 接口
  • 汕头网站推广优化微博内网站怎么做的
  • 做网站服务抖音代运营ppt
  • 网站虚拟服务器四川省住房和城乡建设厅厅长
  • 律师网站建设 优帮云wordpress静态首页怎么编辑
  • 郑州网站制手机管理wordpress站
  • 做网站需要会什么条件wordpress首页改颜色
  • 书店手机网站模板centos安装 wordpress环境搭建
  • 代做毕业设计的网站建好的网站在哪里
  • 用旧电脑做服务器建网站用网站优化 无需定金
  • 开公司可以在哪些网站做推广山东住建局和城乡建设厅官网
  • 项目符号搜索引擎优化英文
  • 做手机网站要多少钱珠海网站建设zhkmkj
  • 网站内容建设方法步骤火车头发布wordpress带磁力链
  • 个人网站还用备案吗开发网站开票名称是什么原因
  • 做一个网站策划学校资源网站 建设方案
  • 网站标签设置高防手表网站
  • 贵 建设厅网站文件搭建购物网站
  • 查询网站流量网络营销类型有哪些
  • 哪个网站免费做简历电商网站基本功能
  • 东莞做网站排名优化推广路得威网站谁做的
  • 网站 成功案例域名注册网站哪个好
  • 阿里云自助建站和华为云自助建站海淀区企业网络公司