贪吃小怪兽介绍之客户端帧同步框架

2023-10-18 09:10

本文主要是介绍贪吃小怪兽介绍之客户端帧同步框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如图所示

VKey是虚拟按键,用户每一帧的输入通过事件发送到PVPGame,FixedUpdate是Unity的不是自己写的,由Unity来驱动PVPGame,每一次驱动包括发送一次数据包和从帧同步管理器获取播放的帧数:

1、如果是0,说明没有多余的数据了,就是网络卡了,没收到数据。。Unity的框架还是正常运行,但是我不驱动任何物体运动,看起来跟游戏卡了一样。

2、如果是大于0的数,说明要播放这么多帧,从帧同步管理器获取指定数量的数据包。

注意:因为服务器一帧是66ms,客户端是33ms,所以客户端要插帧。小怪移动则播放上一帧的数据,攻击和技能就忽略了,其实也可以不忽略,因为普通攻击是依赖动画帧事件计算伤害的,连按两次Attack出去的只有一次,至于技能,因为只有一个技能栏,有技能的话上一帧就扔出去了,连续两次点击技能其实也时候打出一个技能,不过为了严谨就只播放移动数据,忽略其他。

为什么要获取播放多少帧,因为实际上收到一个数据不是立刻播放完,而是有一定策略的,像播视频一样,播放的时候会缓存,因为不缓存怕网络卡了,视频立刻就会卡,如果有缓存即使网络卡一下,还可以播放缓存的数据,等到缓存数据快播完的时候网络可能又恢复了,所以看视频可以全程不卡。游戏也是这样,有时候收到3个包,我还是一个一个播放,而不是播放3个,虽然有小小延迟,但是游戏一直是流畅的。如果卡了一下突然网络好了,可能一次收到100个包,这时候可能一帧就要播放10个包来快速缩小延迟,可以在UnityEditor上点击暂停来模拟网络延迟。

 

这篇关于贪吃小怪兽介绍之客户端帧同步框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe