溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

視頻游戲《光環(huán)4》的Actor模型設(shè)計(jì)和實(shí)現(xiàn)是怎樣的

發(fā)布時(shí)間:2021-11-24 17:33:09 來源:億速云 閱讀:262 作者:柒染 欄目:大數(shù)據(jù)

視頻游戲《光環(huán)4》的Actor模型設(shè)計(jì)和實(shí)現(xiàn)是怎樣的,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

在開始設(shè)計(jì)光環(huán)(Halo)系列視頻游戲的下一代——光環(huán)4的時(shí)候,現(xiàn)有的游戲引擎與可用的服務(wù)已經(jīng)無法滿足游戲的需求了,因此開發(fā)者基于Actor模型設(shè)計(jì)了一套全新的解決方案,并使用Orleans框架完成了這套模型的實(shí)現(xiàn)。在QCon倫敦大會(huì)上,Caitie McCaffrey在演講中為聽眾介紹了他們?cè)O(shè)計(jì)與創(chuàng)建這個(gè)新游戲背后的服務(wù)的過程。

McCaffrey原本在微軟游戲工作室就職,目前則在Twitter擔(dān)任分布式系統(tǒng)工程師的職位。他提到了在游戲開發(fā)過程中所遇到的一個(gè)架構(gòu)上的挑戰(zhàn),是如何設(shè)計(jì)該游戲?qū)⒁鎸?duì)的海量訪問的負(fù)載。在光環(huán)4上線當(dāng)天,共有100萬獨(dú)立在線用戶參與了游戲,這個(gè)數(shù)字在一周之內(nèi)就上升到了400位,游戲時(shí)間總和超過了3000萬小時(shí)。為了應(yīng)對(duì)如此龐大的負(fù)載,該項(xiàng)目選擇了在云端進(jìn)行托管,更具體地說是托管在Azure上,畢竟光環(huán)4是微軟所推出的游戲。其它的挑戰(zhàn)還包括如何保證游戲能夠始終在線運(yùn)行,這就要求服務(wù)器永遠(yuǎn)保持可用狀態(tài),還要盡量降低延遲,并且提高并發(fā)能力。

在尋找能夠滿足該項(xiàng)目需求的解決方案過程中,項(xiàng)目組的目光投向了Actor模型。從本質(zhì)上說,Actor(角色)是并發(fā)的基礎(chǔ),該模型的核心概念在于:作為并發(fā)計(jì)算的基元,每個(gè)Actor將通過異步消息發(fā)送的方式與另一個(gè)Actor進(jìn)行通信。當(dāng)某個(gè)Actor收到一條消息之后,它可以選擇將消息發(fā)送給其它Actor,或是創(chuàng)建一個(gè)新的Actor,也可以修改它的內(nèi)部狀態(tài)。這樣一來,就能夠高效地將某個(gè)Actor的所有數(shù)據(jù)保存在同一個(gè)地方,因此McCaffrey和他的團(tuán)隊(duì)通過實(shí)現(xiàn)這些保持狀態(tài)的服務(wù),創(chuàng)建了一套能夠保持狀態(tài)的中間層,它一方面具有緩存的高性能優(yōu)點(diǎn),另一方面也不會(huì)產(chǎn)生由于并發(fā)造成的問題。

項(xiàng)目組在微軟內(nèi)部四處尋找可行的方案,他們最終發(fā)現(xiàn)了Orleans框架,這是一個(gè)用于創(chuàng)建基于Actor模型的分布式系統(tǒng)的運(yùn)行時(shí)與編程模型。Orleans框架與其它Actor模型框架最重要的不同之處在于它所獨(dú)有的概念:虛擬Actor。這個(gè)虛擬Actor永遠(yuǎn)不會(huì)被創(chuàng)建或是銷毀,從邏輯上來說它是永遠(yuǎn)存在的。虛擬Actor所具有的關(guān)鍵思想,一是地址的透明性,即發(fā)送給某個(gè)Actor的消息會(huì)被自動(dòng)路由至該Actor,無論該Actor的地址在哪里;二是能夠在不重新進(jìn)行部署的情況下進(jìn)行自動(dòng)橫向擴(kuò)展。

McCaffrey聲稱,在使用了新技術(shù)的全新架構(gòu)中,服務(wù)器的CPU利用率能夠持續(xù)穩(wěn)定在90%的水平上,并且能夠?qū)崿F(xiàn)接近線性增長(zhǎng)的可擴(kuò)展性,能夠輕易地應(yīng)對(duì)負(fù)載的變量,這一點(diǎn)在訪問量突發(fā)性增長(zhǎng)的時(shí)刻相當(dāng)實(shí)用,例如當(dāng)游戲剛剛上線的時(shí)候。

McCaffrey相信,如果沒有Orleans這個(gè)框架,光環(huán)4的項(xiàng)目就不可能獲得成功。由于Orleans能夠?yàn)殚_發(fā)者編寫在分布式環(huán)境中運(yùn)行的代碼提供極大的幫助,因此尋找合適的開發(fā)者也變得簡(jiǎn)單了許多。并且由于它提高了開發(fā)者的生產(chǎn)力,因此開發(fā)者能夠?qū)W⒂谔岣哂螒虻挠脩趔w驗(yàn),讓它的表現(xiàn)更加出色。

McCaffrey在一篇較早的博客帖子中,曾經(jīng)介紹了使用Orleans創(chuàng)建RESTful服務(wù)的過程。

對(duì)于實(shí)現(xiàn)Actor模型的不同途徑,InfoQ之前曾經(jīng)專門進(jìn)行過討論和報(bào)告。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI