-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
ecs提供的兩大主流計(jì)算框架(ecs架構(gòu)是未來(lái)主流)
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于ecs提供的兩大主流計(jì)算框架的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫(xiě)出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、云服務(wù)器ECS是什么?
云服務(wù)器ECS(ElasticComputeService)是阿里云提供的性能卓越、穩(wěn)定可靠、彈性擴(kuò)展的IaaS(InfrastructureasaService)級(jí)別云計(jì)算服務(wù)。
云服務(wù)器ECS免去了您采購(gòu)IT硬件的前期準(zhǔn)備,讓您像使用水、電、天然氣等公共資源一樣便捷、高效地使用服務(wù)器,實(shí)現(xiàn)計(jì)算資源的即開(kāi)即用和彈性伸縮。
阿里云ECS持續(xù)提供創(chuàng)新型服務(wù)器,解決多種業(yè)務(wù)需求,助力您的業(yè)務(wù)發(fā)展。
云服務(wù)器(ECS)是一種基礎(chǔ)云計(jì)算服務(wù)。它能幫助您快速的構(gòu)建更穩(wěn)定、安全的應(yīng)用,提高運(yùn)維效率,降低IT成本,使您更專注于核心業(yè)務(wù)創(chuàng)新。
二、阿里云云服務(wù)器ecs的優(yōu)勢(shì)
彈性靈活。
阿里云支持全球多地域部署以及多中心架構(gòu)選擇,有充足的資源保障,可以隨時(shí)隨地彈性創(chuàng)建資源。在阿里云的平臺(tái)上可以實(shí)現(xiàn)分鐘級(jí)擴(kuò)容上千臺(tái)實(shí)例,快速滿足業(yè)務(wù)高峰時(shí)的資源需求,同時(shí)當(dāng)業(yè)務(wù)高峰消失時(shí),您可以將多余的資源釋放掉,以減少業(yè)務(wù)成本。
操作便捷。
提供基于Web的用戶界面,頁(yè)面簡(jiǎn)單清晰,內(nèi)置各種功能模塊,您可以像操作實(shí)體機(jī)器一樣,對(duì)云服務(wù)器ECS實(shí)例進(jìn)行啟停、配置變更等操作。
靈活的計(jì)費(fèi)方式。
云服務(wù)器ECS提供包年包月、按量付費(fèi)、搶占式實(shí)例三種計(jì)費(fèi)方式,滿足不同應(yīng)用場(chǎng)景需求。
三、基于ECS模型的卡牌戰(zhàn)斗框架4
卡牌類游戲如果僅僅是單人游戲,那便也沒(méi)什么技術(shù)含量了。從拉用戶的角度,如果沒(méi)有實(shí)時(shí)多人游戲玩法便也失去了游戲一大塊吸引力。
通過(guò)這些年對(duì)卡牌類游戲的積淀,幀同步是這類游戲最常用的多人游戲同步方案。如果是回合類型游戲,那么狀態(tài)同步便大概率是首選項(xiàng)了,但它的實(shí)現(xiàn)復(fù)雜度在這類游戲中卻又不及幀同步技術(shù)了。所以這一章,就記錄我所開(kāi)發(fā)的幾個(gè)項(xiàng)目所設(shè)計(jì)的幀同步方案與細(xì)節(jié)。
我們將項(xiàng)目中所有的浮點(diǎn)數(shù)類型全都統(tǒng)一成了定點(diǎn)數(shù),這樣就確保我們的邏輯運(yùn)算不會(huì)因平臺(tái)的不同而導(dǎo)致計(jì)算結(jié)果的差異。之所以不同平臺(tái)對(duì)浮點(diǎn)數(shù)的運(yùn)算有差異,則是因?yàn)楦鲝S商底層硬件對(duì)浮點(diǎn)數(shù)的運(yùn)算不一致導(dǎo)致。雖然大家計(jì)算結(jié)果都差不多,但是到了小數(shù)點(diǎn)最后幾位總會(huì)有所不同。如果采用double進(jìn)行計(jì)算,雖然double精度更高,但依舊免不了會(huì)在最后幾位出現(xiàn)不一致的情況,只是這時(shí)已經(jīng)是小數(shù)點(diǎn)后二三十位的事情了。
正是基于這個(gè)原因,我們最開(kāi)始先使用double作為浮點(diǎn)數(shù)據(jù)類型,后又使用定點(diǎn)數(shù)進(jìn)行替換。因?yàn)槲业亩c(diǎn)數(shù)實(shí)現(xiàn)的有效精度只能到小數(shù)點(diǎn)后5位,所以即便底層硬件會(huì)對(duì)浮點(diǎn)數(shù)運(yùn)算產(chǎn)生誤差,卻依舊會(huì)被定點(diǎn)數(shù)強(qiáng)制統(tǒng)一而不必?fù)?dān)心更小精度運(yùn)算不一致所導(dǎo)致的問(wèn)題。
定點(diǎn)數(shù)方案在網(wǎng)上可以找到一大堆,而且也對(duì)定點(diǎn)數(shù)方案的利弊進(jìn)行過(guò)多方分析,此處不作贅述,只是網(wǎng)上多用10000作為定點(diǎn)數(shù)的放大倍數(shù),這是我的定點(diǎn)數(shù)實(shí)現(xiàn)與網(wǎng)上所不同的地方。
在我實(shí)現(xiàn)的定點(diǎn)數(shù)中,采取了一個(gè)特殊的放大倍數(shù),即 2^16 。這樣一個(gè)放大倍數(shù),最大的好處就是定點(diǎn)數(shù)之間的大多數(shù)運(yùn)算,都可以采用位運(yùn)算的形式進(jìn)行放大縮小,于性能上更合適一些。此外,2的16次方作為放大倍數(shù),可以使小數(shù)的有效位保持到小數(shù)點(diǎn)后5位,從計(jì)算精度的角度考慮,這樣一個(gè)范圍也是滿足我們項(xiàng)目開(kāi)發(fā)需求的。至于不同項(xiàng)目的放大倍數(shù),可以根據(jù)需要可以調(diào)整為其他的2的n此冪均可。
采用2的整數(shù)次冪,會(huì)在定點(diǎn)數(shù)的乘、除、開(kāi)方、比較大小運(yùn)算中提高計(jì)算性能,遠(yuǎn)比乘除10000效率來(lái)得高。特別說(shuō)明的是,這里我們的開(kāi)方直接調(diào)用了C#數(shù)學(xué)庫(kù)中的開(kāi)方操作,不同的是在開(kāi)方前我們就需要對(duì)待開(kāi)方的數(shù)左移16位,這樣開(kāi)方得到的結(jié)果才是滿足定點(diǎn)數(shù)放大倍數(shù)的值。
基于以上幾點(diǎn),我們才會(huì)使用long作為定點(diǎn)數(shù)內(nèi)部的數(shù)據(jù)存儲(chǔ)類型,而定點(diǎn)數(shù)所表示數(shù)字的范圍,與int類型一致。如果使用定點(diǎn)數(shù)存儲(chǔ)了一個(gè)大于int最大值的數(shù),那么很可能就會(huì)在后續(xù)的計(jì)算中因移位而產(chǎn)生計(jì)算錯(cuò)誤。
當(dāng)實(shí)現(xiàn)了自己的定點(diǎn)數(shù)方案之后,就需要根據(jù)它的精度去生成 三角函數(shù)查詢表 。這里我僅生成了sin查詢表,而計(jì)算其他三角函數(shù)時(shí)根據(jù)sin值就可求得具體值。
在實(shí)現(xiàn)定點(diǎn)數(shù)的過(guò)程中,還有很多值得參考的內(nèi)容:
采用幀同步方案后,網(wǎng)絡(luò)方案就是一個(gè)需要關(guān)注的議題。
幀同步方案下,客戶端和服務(wù)器之間無(wú)論每幀都同步信息,還是有數(shù)據(jù)變動(dòng)時(shí)再同步信息,都需要頻繁地使用網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互。傳統(tǒng)TCP方案下,TCP本身發(fā)送機(jī)制有延時(shí),所以就需要使用KCP來(lái)實(shí)現(xiàn)高實(shí)時(shí)性,但是代價(jià)(按照官方說(shuō)法)就是額外消耗10%-20%的帶寬。
但是需要說(shuō)明的是,在丟包率上升的情況下,KCP因其底層數(shù)據(jù)包的組織與發(fā)送形式,會(huì)導(dǎo)致流量變大,這種情形下反而不如使用TCP的綜合效率。這是選用KCP方案的一個(gè)缺陷。
我的項(xiàng)目中,最終設(shè)計(jì)了兩套網(wǎng)絡(luò)結(jié)構(gòu),KCP與TCP。這里就需要客戶端采集與服務(wù)器的網(wǎng)絡(luò)狀態(tài)數(shù)據(jù)(ping值)。當(dāng)丟包率與延遲不嚴(yán)重時(shí)(可根據(jù)項(xiàng)目實(shí)際情況設(shè)定閾值),網(wǎng)絡(luò)采用KCP;一旦網(wǎng)絡(luò)狀態(tài)超過(guò)閾值,則將底層網(wǎng)絡(luò)方案切換為TCP。這種方案的設(shè)計(jì)目的,主要就是為了解決丟包率上升時(shí)KCP流量過(guò)大的問(wèn)題,但是具體情況需要根據(jù)項(xiàng)目類型與具體需求而定。
戰(zhàn)斗邏輯處,我們已經(jīng)講過(guò)定幀的概念了,但是那里的定幀主要針對(duì)的是邏輯的定幀執(zhí)行。
幀同步也需要定幀的概念。只有當(dāng)所有客戶端與服務(wù)器幀率統(tǒng)一時(shí),大家的行為才能被約束一致。因此,我們就需要將幀同步的定幀與邏輯的定幀加以區(qū)分,下面我就用“邏輯幀”指代邏輯的幀,而使用”服務(wù)幀“指代幀同步的幀。
最簡(jiǎn)易的方案,就是設(shè)計(jì)之初就令邏輯幀與服務(wù)幀的幀率統(tǒng)一。這樣做的好處,就是免去了兩個(gè)幀速率不一所導(dǎo)致的匹配問(wèn)題,服務(wù)器每驅(qū)動(dòng)一幀,邏輯幀就運(yùn)行一幀,實(shí)現(xiàn)起來(lái)簡(jiǎn)單方便。
但是,服務(wù)幀的設(shè)計(jì)一般是要從通訊性能出發(fā)的,天生幀率會(huì)比較低,而邏輯幀因項(xiàng)目需求不同而不穩(wěn)定,大概率是比較高的幀率。所以,服務(wù)幀與邏輯幀的幀率不匹配是常態(tài),這就需要用到一些轉(zhuǎn)接件來(lái)實(shí)現(xiàn)我們的需求了。
還記得 第一章 我曾提到的接口 ILogicMgr 嗎,它的派生類的作用之一,就是提供一個(gè)“幀率差速器”,以使得游戲邏輯能夠在服務(wù)幀與邏輯幀不同的幀率下平穩(wěn)運(yùn)行。幀率差速器以幀率最快的一方的速率為基礎(chǔ)速率進(jìn)行心跳,每次心跳時(shí)返回本次心跳結(jié)果。幀率差速器的心跳結(jié)果分為三種:
因?yàn)槲覀兊捻?xiàng)目是鎖幀方案,服務(wù)幀先行,所以差速器心跳流程圖如下:
差速器是鎖幀模式下的一個(gè)重點(diǎn),因?yàn)樗拇嬖?,才能夠讓邏輯幀與服務(wù)幀按照順序執(zhí)行。也因?yàn)椴钏倨鲀?nèi)部有時(shí)間管理,所以才能夠?qū)崿F(xiàn)服務(wù)幀的鎖幀功能。這部分內(nèi)容依靠的就是服務(wù)器同步的 當(dāng)前最大幀號(hào) 數(shù)據(jù),以最大幀號(hào)作為限制。如果網(wǎng)絡(luò)出現(xiàn)波動(dòng),那么客戶端邏輯就會(huì)卡在最大幀號(hào)對(duì)應(yīng)的時(shí)間點(diǎn),直到收到了服務(wù)器最新的最大幀號(hào)數(shù)據(jù)。
追幀 也是在此處完成,即如果客戶端發(fā)現(xiàn)落后服務(wù)器幀數(shù)比較多,就需要在此處設(shè)計(jì)算法加速邏輯的運(yùn)行,使得一次心跳執(zhí)行更多的邏輯幀。但是需要注意不要一次把所有邏輯幀都跑完,這樣會(huì)造成客戶端顯示效果上的撕裂感。
上文在講 幀率差速器 時(shí),已說(shuō)明了服務(wù)幀與邏輯幀的概念,而且我們也明確了差速器是需要用在接口 ILogicMgr 的派生類中的,所以邏輯部分自然也是集成在這里的。
當(dāng)差速器每次心跳結(jié)果是邏輯幀時(shí),就是我們調(diào)用邏輯的心跳的時(shí)機(jī)。以此便完成了幀同步方案下邏輯的集成。也因?yàn)檫壿嫷男奶窃?ILogicMgr 中被驅(qū)動(dòng)的,所以無(wú)論追幀或是心跳時(shí)間控制,都可以在此處根據(jù)需求進(jìn)行開(kāi)發(fā)。
我在項(xiàng)目中采用的幀同步方案已在上文進(jìn)行了較為詳細(xì)的說(shuō)明。
需要指出的是,在服務(wù)幀概念下,我們的方案是以 服務(wù)器領(lǐng)先客戶端 實(shí)現(xiàn)鎖幀效果的。這種實(shí)現(xiàn)方案最為簡(jiǎn)單也最為有效。當(dāng)我們面對(duì)的項(xiàng)目是一個(gè)對(duì)實(shí)時(shí)性要求不高的項(xiàng)目時(shí),這種鎖幀方案可以簡(jiǎn)單有效地實(shí)現(xiàn)我們的需求,也不會(huì)對(duì)玩家造成太多的感受上的負(fù)面影響。
如果項(xiàng)目實(shí)時(shí)性要求高怎么辦?
類似ACT或MOBA類游戲,玩家需要能夠及時(shí)獲得技能釋放的反饋,否則延遲的技能釋放會(huì)撕裂快節(jié)奏的游戲體驗(yàn)。這種情況下就需要我們?cè)O(shè)計(jì)全新的思路。而在此之前,我們需要明確快照的概念。
快照,即當(dāng)前數(shù)據(jù)的拷貝。我們之所以需要快照,是因?yàn)槲覀兒罄m(xù)會(huì)需要在某個(gè)時(shí)間點(diǎn)保存所有的數(shù)據(jù),然后在另一個(gè)時(shí)間點(diǎn)通過(guò)保存的數(shù)據(jù)還原戰(zhàn)場(chǎng)的數(shù)據(jù)。
基于戰(zhàn)斗框架,快照我們其實(shí)只需要邏輯的數(shù)據(jù)快照即可,這樣即便邏輯通過(guò)快照進(jìn)行了數(shù)據(jù)回滾,也可以將數(shù)據(jù)同步給顯示層進(jìn)行還原。ECS架構(gòu)本身因?yàn)閷?duì)數(shù)據(jù)與邏輯進(jìn)行了完整的分離,所以快照與數(shù)據(jù)回滾的實(shí)現(xiàn)方案可以參考 第二章 內(nèi)容,此處不作贅述。
下文我們將介紹一個(gè)可以改進(jìn)的幀同步策略,就需要用到數(shù)據(jù)快照與回滾。
還有一種幀同步策略,即在服務(wù)幀概念下,客戶端時(shí)間領(lǐng)先于服務(wù)器時(shí)間。這種情況下,客戶端所有的邏輯可以看做是一種預(yù)演,而服務(wù)器下發(fā)的則是過(guò)去某幀的信息。
假設(shè)客戶端是第 n+2 幀,服務(wù)器下發(fā)的是第 n 幀。
以上就是客戶端優(yōu)先的幀同步策略,但是這里也需要考慮幾個(gè)實(shí)現(xiàn)的問(wèn)題:
以上就是我對(duì)幀同步相關(guān)的記錄與思考, 下一篇 便聚焦開(kāi)發(fā)工具進(jìn)行說(shuō)明。
四、什么是ecs bms
ECS是易邁云提供的一種基礎(chǔ)云計(jì)算服務(wù),BMS是電動(dòng)汽車電池的精準(zhǔn)“調(diào)音師”電池管理系統(tǒng)(BatteryManagementSystem,即BMS)是針對(duì)電動(dòng)汽車鋰電池的管理系統(tǒng)。
以上就是關(guān)于ecs提供的兩大主流計(jì)算框架相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
putative翻譯(put into perspective翻譯)
廣西某產(chǎn)品營(yíng)銷策劃書(shū)(產(chǎn)品營(yíng)銷策劃書(shū)案例)
湖南現(xiàn)代景觀設(shè)計(jì)風(fēng)格(湖南現(xiàn)代景觀設(shè)計(jì)風(fēng)格分析)