HOME 首页
SERVICE 服务产品
XINMEITI 新媒体代运营
CASE 服务案例
NEWS 热点资讯
ABOUT 关于我们
CONTACT 联系我们
创意岭
让品牌有温度、有情感
专注品牌策划15年

    ecs提供的两大主流计算框架(ecs架构是未来主流)

    发布时间:2023-04-13 16:35:46     稿源: 创意岭    阅读: 100        

    大家好!今天让创意岭的小编来大家介绍下关于ecs提供的两大主流计算框架的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

    开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等

    只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端

    官网:https://ai.de1919.com

    创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008

    本文目录:

    ecs提供的两大主流计算框架(ecs架构是未来主流)

    一、云服务器ECS是什么?

    云服务器ECS(ElasticComputeService)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(InfrastructureasaService)级别云计算服务。

    云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。

    阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。

    云服务器(ECS)是一种基础云计算服务。它能帮助您快速的构建更稳定、安全的应用,提高运维效率,降低IT成本,使您更专注于核心业务创新。

    二、阿里云云服务器ecs的优势

    弹性灵活。

    阿里云支持全球多地域部署以及多中心架构选择,有充足的资源保障,可以随时随地弹性创建资源。在阿里云的平台上可以实现分钟级扩容上千台实例,快速满足业务高峰时的资源需求,同时当业务高峰消失时,您可以将多余的资源释放掉,以减少业务成本。

    操作便捷。

    提供基于Web的用户界面,页面简单清晰,内置各种功能模块,您可以像操作实体机器一样,对云服务器ECS实例进行启停、配置变更等操作。

    灵活的计费方式。

    云服务器ECS提供包年包月、按量付费、抢占式实例三种计费方式,满足不同应用场景需求。

    三、基于ECS模型的卡牌战斗框架4

    卡牌类游戏如果仅仅是单人游戏,那便也没什么技术含量了。从拉用户的角度,如果没有实时多人游戏玩法便也失去了游戏一大块吸引力。

    通过这些年对卡牌类游戏的积淀,帧同步是这类游戏最常用的多人游戏同步方案。如果是回合类型游戏,那么状态同步便大概率是首选项了,但它的实现复杂度在这类游戏中却又不及帧同步技术了。所以这一章,就记录我所开发的几个项目所设计的帧同步方案与细节。

    我们将项目中所有的浮点数类型全都统一成了定点数,这样就确保我们的逻辑运算不会因平台的不同而导致计算结果的差异。之所以不同平台对浮点数的运算有差异,则是因为各厂商底层硬件对浮点数的运算不一致导致。虽然大家计算结果都差不多,但是到了小数点最后几位总会有所不同。如果采用double进行计算,虽然double精度更高,但依旧免不了会在最后几位出现不一致的情况,只是这时已经是小数点后二三十位的事情了。

    正是基于这个原因,我们最开始先使用double作为浮点数据类型,后又使用定点数进行替换。因为我的定点数实现的有效精度只能到小数点后5位,所以即便底层硬件会对浮点数运算产生误差,却依旧会被定点数强制统一而不必担心更小精度运算不一致所导致的问题。

    定点数方案在网上可以找到一大堆,而且也对定点数方案的利弊进行过多方分析,此处不作赘述,只是网上多用10000作为定点数的放大倍数,这是我的定点数实现与网上所不同的地方。

    在我实现的定点数中,采取了一个特殊的放大倍数,即 2^16 。这样一个放大倍数,最大的好处就是定点数之间的大多数运算,都可以采用位运算的形式进行放大缩小,于性能上更合适一些。此外,2的16次方作为放大倍数,可以使小数的有效位保持到小数点后5位,从计算精度的角度考虑,这样一个范围也是满足我们项目开发需求的。至于不同项目的放大倍数,可以根据需要可以调整为其他的2的n此幂均可。

    采用2的整数次幂,会在定点数的乘、除、开方、比较大小运算中提高计算性能,远比乘除10000效率来得高。特别说明的是,这里我们的开方直接调用了C#数学库中的开方操作,不同的是在开方前我们就需要对待开方的数左移16位,这样开方得到的结果才是满足定点数放大倍数的值。

    基于以上几点,我们才会使用long作为定点数内部的数据存储类型,而定点数所表示数字的范围,与int类型一致。如果使用定点数存储了一个大于int最大值的数,那么很可能就会在后续的计算中因移位而产生计算错误。

    当实现了自己的定点数方案之后,就需要根据它的精度去生成 三角函数查询表 。这里我仅生成了sin查询表,而计算其他三角函数时根据sin值就可求得具体值。

    在实现定点数的过程中,还有很多值得参考的内容:

    采用帧同步方案后,网络方案就是一个需要关注的议题。

    帧同步方案下,客户端和服务器之间无论每帧都同步信息,还是有数据变动时再同步信息,都需要频繁地使用网络进行数据交互。传统TCP方案下,TCP本身发送机制有延时,所以就需要使用KCP来实现高实时性,但是代价(按照官方说法)就是额外消耗10%-20%的带宽。

    但是需要说明的是,在丢包率上升的情况下,KCP因其底层数据包的组织与发送形式,会导致流量变大,这种情形下反而不如使用TCP的综合效率。这是选用KCP方案的一个缺陷。

    我的项目中,最终设计了两套网络结构,KCP与TCP。这里就需要客户端采集与服务器的网络状态数据(ping值)。当丢包率与延迟不严重时(可根据项目实际情况设定阈值),网络采用KCP;一旦网络状态超过阈值,则将底层网络方案切换为TCP。这种方案的设计目的,主要就是为了解决丢包率上升时KCP流量过大的问题,但是具体情况需要根据项目类型与具体需求而定。

    战斗逻辑处,我们已经讲过定帧的概念了,但是那里的定帧主要针对的是逻辑的定帧执行。

    帧同步也需要定帧的概念。只有当所有客户端与服务器帧率统一时,大家的行为才能被约束一致。因此,我们就需要将帧同步的定帧与逻辑的定帧加以区分,下面我就用“逻辑帧”指代逻辑的帧,而使用”服务帧“指代帧同步的帧。

    最简易的方案,就是设计之初就令逻辑帧与服务帧的帧率统一。这样做的好处,就是免去了两个帧速率不一所导致的匹配问题,服务器每驱动一帧,逻辑帧就运行一帧,实现起来简单方便。

    但是,服务帧的设计一般是要从通讯性能出发的,天生帧率会比较低,而逻辑帧因项目需求不同而不稳定,大概率是比较高的帧率。所以,服务帧与逻辑帧的帧率不匹配是常态,这就需要用到一些转接件来实现我们的需求了。

    还记得 第一章 我曾提到的接口 ILogicMgr 吗,它的派生类的作用之一,就是提供一个“帧率差速器”,以使得游戏逻辑能够在服务帧与逻辑帧不同的帧率下平稳运行。帧率差速器以帧率最快的一方的速率为基础速率进行心跳,每次心跳时返回本次心跳结果。帧率差速器的心跳结果分为三种:

    因为我们的项目是锁帧方案,服务帧先行,所以差速器心跳流程图如下:

    差速器是锁帧模式下的一个重点,因为它的存在,才能够让逻辑帧与服务帧按照顺序执行。也因为差速器内部有时间管理,所以才能够实现服务帧的锁帧功能。这部分内容依靠的就是服务器同步的 当前最大帧号 数据,以最大帧号作为限制。如果网络出现波动,那么客户端逻辑就会卡在最大帧号对应的时间点,直到收到了服务器最新的最大帧号数据。

    追帧 也是在此处完成,即如果客户端发现落后服务器帧数比较多,就需要在此处设计算法加速逻辑的运行,使得一次心跳执行更多的逻辑帧。但是需要注意不要一次把所有逻辑帧都跑完,这样会造成客户端显示效果上的撕裂感。

    上文在讲 帧率差速器 时,已说明了服务帧与逻辑帧的概念,而且我们也明确了差速器是需要用在接口 ILogicMgr 的派生类中的,所以逻辑部分自然也是集成在这里的。

    当差速器每次心跳结果是逻辑帧时,就是我们调用逻辑的心跳的时机。以此便完成了帧同步方案下逻辑的集成。也因为逻辑的心跳是在 ILogicMgr 中被驱动的,所以无论追帧或是心跳时间控制,都可以在此处根据需求进行开发。

    我在项目中采用的帧同步方案已在上文进行了较为详细的说明。

    需要指出的是,在服务帧概念下,我们的方案是以 服务器领先客户端 实现锁帧效果的。这种实现方案最为简单也最为有效。当我们面对的项目是一个对实时性要求不高的项目时,这种锁帧方案可以简单有效地实现我们的需求,也不会对玩家造成太多的感受上的负面影响。

    如果项目实时性要求高怎么办?

    类似ACT或MOBA类游戏,玩家需要能够及时获得技能释放的反馈,否则延迟的技能释放会撕裂快节奏的游戏体验。这种情况下就需要我们设计全新的思路。而在此之前,我们需要明确快照的概念。

    快照,即当前数据的拷贝。我们之所以需要快照,是因为我们后续会需要在某个时间点保存所有的数据,然后在另一个时间点通过保存的数据还原战场的数据。

    基于战斗框架,快照我们其实只需要逻辑的数据快照即可,这样即便逻辑通过快照进行了数据回滚,也可以将数据同步给显示层进行还原。ECS架构本身因为对数据与逻辑进行了完整的分离,所以快照与数据回滚的实现方案可以参考 第二章 内容,此处不作赘述。

    下文我们将介绍一个可以改进的帧同步策略,就需要用到数据快照与回滚。

    还有一种帧同步策略,即在服务帧概念下,客户端时间领先于服务器时间。这种情况下,客户端所有的逻辑可以看做是一种预演,而服务器下发的则是过去某帧的信息。

    假设客户端是第 n+2 帧,服务器下发的是第 n 帧。

    以上就是客户端优先的帧同步策略,但是这里也需要考虑几个实现的问题:

    以上就是我对帧同步相关的记录与思考, 下一篇 便聚焦开发工具进行说明。

    四、什么是ecs bms

    ECS是易迈云提供的一种基础云计算服务,BMS是电动汽车电池的精准“调音师”电池管理系统(BatteryManagementSystem,即BMS)是针对电动汽车锂电池的管理系统。

    以上就是关于ecs提供的两大主流计算框架相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。


    推荐阅读:

    putative翻译(put into perspective翻译)

    project谐音记忆

    微信wechat版怎么弄

    广西某产品营销策划书(产品营销策划书案例)

    湖南现代景观设计风格(湖南现代景观设计风格分析)