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

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

相关文章

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

Linux线程同步/互斥过程详解

《Linux线程同步/互斥过程详解》文章讲解多线程并发访问导致竞态条件,需通过互斥锁、原子操作和条件变量实现线程安全与同步,分析死锁条件及避免方法,并介绍RAII封装技术提升资源管理效率... 目录01. 资源共享问题1.1 多线程并发访问1.2 临界区与临界资源1.3 锁的引入02. 多线程案例2.1 为

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连