游戲服務(wù)器是什么怎么租用

游戲服務(wù)器是什么怎么租用
我是艾西,作為一個(gè)常年與游戲行業(yè)保持著高頻率的服務(wù)器供應(yīng)商,今天我以個(gè)人的專業(yè)知識(shí)以及經(jīng)驗(yàn)和大家聊聊游戲服務(wù)器什么,它的工作原理是怎么與你的pc做交互的?。?!
游戲服務(wù)器架構(gòu)通識(shí)
前言
我們將從游戲服務(wù)器發(fā)展的簡單歷程出發(fā),大概了解一下目前大多數(shù)的游戲服務(wù)器架構(gòu)。
這里盡可能的避免談?wù)摷?xì)節(jié)的技術(shù)問題,而是從技術(shù)更新的狀態(tài),反推原始問題是什么。希望能通過這個(gè)過程,解釋清楚游戲服務(wù)器是在解決什么問題,痛點(diǎn)到底在哪里。
?一、早期網(wǎng)游服務(wù)器
?

?
?
蠻荒時(shí)期的游戲服務(wù)器框架我們一筆帶過,那時(shí)的游戲服務(wù)器和一個(gè)小Web服務(wù)沒有區(qū)別。
蠻荒時(shí)代的服務(wù)器只負(fù)責(zé)存儲(chǔ)玩家賬號(hào)、數(shù)據(jù)、轉(zhuǎn)發(fā)場(chǎng)景內(nèi)其他玩家的行為。很多移動(dòng)、使用技能等關(guān)鍵邏輯在服務(wù)器上根本沒有。隨意就能用變速齒輪改變游戲速度。
從傳奇的時(shí)代開始,游戲服務(wù)器就不再是簡單的上傳存檔、下載存檔、訪問頁面而已。游戲服務(wù)器內(nèi)部出現(xiàn)了游戲邏輯,既能用于同步每個(gè)玩家看到的世界,又能讓邏輯與客戶端分離,避免早期的網(wǎng)絡(luò)游戲那種毫無防范的邏輯體系(對(duì)外掛防御能力為0)。
這種架構(gòu)奇怪的地方是處理網(wǎng)絡(luò)連接數(shù)據(jù)傳輸?shù)膲毫瓦壿嬏幚淼膲毫υ谕粋€(gè)服務(wù)器上(存儲(chǔ)模塊可能也在同一個(gè)進(jìn)程),就算邏輯處理壓力為0,承載人數(shù)也高不到哪去。
二、早期游戲服務(wù)器的改進(jìn)版本
?當(dāng)開發(fā)者們有了初步經(jīng)驗(yàn)以后,新作品的開發(fā),自然而然的過渡到了如下的形式:
?

?
?
?
?游戲邏輯服務(wù)依然是在一臺(tái)服務(wù)器上,單進(jìn)程(邏輯處理本身肯定是在一個(gè)線程中,可以有子線程負(fù)責(zé)內(nèi)網(wǎng)通信)。但是我們自然的想到,存儲(chǔ)負(fù)載和網(wǎng)絡(luò)連接負(fù)載可以從邏輯服上拆分出來。
由于連接服務(wù)器本身沒有時(shí)序性,很容易做分布式的(其實(shí)大部分游戲還是只用一個(gè)連接服),存儲(chǔ)服務(wù)不要求高實(shí)時(shí)性,高峰期存盤間隔可以稍長一些,不會(huì)對(duì)游戲服造成影響。
三、成熟形態(tài)的服務(wù)器框架
邏輯服務(wù)器的負(fù)載均攤方法一:按照功能劃分多個(gè)服務(wù)器進(jìn)程
?
?

?
?
邏輯服務(wù)器的負(fù)載均攤方法二:按照?qǐng)鼍皠澐侄鄠€(gè)服務(wù)器進(jìn)程
?

?
?
?
?難點(diǎn)在邏輯的設(shè)計(jì)上,要像做手術(shù)一樣把本來是一體的功能切開,并抽象出若干個(gè)API來保持聯(lián)系(服務(wù)器之間是TCP連接)。
在分解時(shí),要找聯(lián)系相對(duì)最薄弱的環(huán)節(jié)入手,比如場(chǎng)景和場(chǎng)景之間分開、單獨(dú)抽出聊天服務(wù)、組隊(duì)服務(wù)、好友服務(wù)。
無論如何分解,最終結(jié)果只能是有限個(gè)服務(wù)。而且分解的越細(xì),開發(fā)難度就越大。因?yàn)榭绶?wù)器邏輯是把簡單的同步邏輯變成了異步Callback邏輯,而且容易出現(xiàn)時(shí)序問題等不易測(cè)試的問題。
這種成熟形態(tài)的游戲服務(wù)器已經(jīng)能滿足現(xiàn)實(shí)中99%的頻繁交互類網(wǎng)游需求,是大型MMO端游、頁游的主流形式。
對(duì)比Web服務(wù)器
大致只說一點(diǎn):由于數(shù)據(jù)庫的存在以及HTTP請(qǐng)求的特性,Web服務(wù)器天生就是并發(fā)的,也一直在高并發(fā)的路上越走越遠(yuǎn)。
?
?

?
例:開房間式的網(wǎng)絡(luò)游戲
?
開房間式的網(wǎng)絡(luò)游戲也是游戲的一個(gè)重要分支,英雄聯(lián)盟、DOTA、很多手游例如皇室戰(zhàn)爭、王者榮耀等等。
?這種游戲房間之間幾乎沒有交互,只有大廳內(nèi)有交互,可以理解為原始形態(tài)的游戲服務(wù)器的平行擴(kuò)展。
房間式游戲擴(kuò)展難度較小,只是需要根據(jù)玩家數(shù)量動(dòng)態(tài)擴(kuò)展游戲房間的數(shù)量、服務(wù)器數(shù)量。很像網(wǎng)站的架構(gòu)。
這種游戲架構(gòu)最最適合放在云平臺(tái)上,設(shè)計(jì)合理的話,它可能遇到的問題和大型網(wǎng)站幾乎一模一樣。
小結(jié):游戲服務(wù)器框架特點(diǎn)
單CPU性能比CPU數(shù)量重要的多。
目前有很多游戲,特別是手游,使用Redis讀寫代替內(nèi)存讀寫,甚至也有用Mongo的。
游戲開發(fā)未來的趨勢(shì)是多元化、低門檻化、大眾化。
從游戲玩家之間的交互形態(tài)出發(fā)
單機(jī)游戲:一個(gè)人在機(jī)器上玩。
聯(lián)網(wǎng)游戲:同時(shí)玩的范圍比較小,比如8-10個(gè)人。
網(wǎng)絡(luò)游戲:在遠(yuǎn)端有許多機(jī)器跑一個(gè)很大的系統(tǒng),可以有幾千幾萬幾十萬甚至更多的玩家連進(jìn)來一起玩。
游戲服務(wù)是互聯(lián)網(wǎng)服務(wù)的一種
常見的其他互聯(lián)網(wǎng)服務(wù)有:搜索、電商、即時(shí)通訊、郵件、視頻等
游戲服務(wù)的基本職能有哪些?
網(wǎng)絡(luò)連接和數(shù)據(jù)收發(fā):TCP收包打包分包。
數(shù)據(jù)存取
邏輯計(jì)算
狀態(tài)保持:上下文、內(nèi)部驅(qū)動(dòng)等等。
游戲服務(wù)器:嚴(yán)格說是一個(gè)硬件概念
常見種類:機(jī)架式服務(wù)器,刀片機(jī),小型機(jī)。
會(huì)根據(jù)游戲類型或運(yùn)行程序的不同,在CPU/內(nèi)存/硬盤上有所側(cè)重。
游戲服務(wù)器開發(fā)
從游戲交互形態(tài),看游戲開發(fā)分工
游戲交互形態(tài)???????開發(fā)者分工
單機(jī)游戲???????????圖形程序員+游戲邏輯程序員
聯(lián)網(wǎng)游戲???????????游戲程序員+網(wǎng)絡(luò)程序員
網(wǎng)絡(luò)游戲???????????游戲前臺(tái)開發(fā)+游戲后臺(tái)開發(fā)
游戲服務(wù)器:承載游戲服務(wù)的硬件、提供游戲服務(wù)的軟件、開發(fā)游戲服務(wù)的程序員。
目前我司解決并穩(wěn)定運(yùn)行海量十萬~百萬~千萬級(jí)同時(shí)在線,最高達(dá)億級(jí)注冊(cè)量;
穩(wěn)定 - 相對(duì)于:宕機(jī),網(wǎng)絡(luò)和計(jì)算卡頓;
高質(zhì)量 - 快速:網(wǎng)絡(luò)延遲;邏輯嚴(yán)謹(jǐn);更新頻率和及時(shí)性?這也是游戲服務(wù)器的核心點(diǎn)所在
?
游戲服務(wù)與其互聯(lián)網(wǎng)服務(wù)區(qū)別:
延遲敏感實(shí)時(shí)交互游戲一般需要網(wǎng)絡(luò)延遲在300ms以內(nèi)才能保證游戲體驗(yàn)
實(shí)時(shí)的高強(qiáng)度交互單個(gè)終端高頻發(fā)送請(qǐng)求;單次請(qǐng)求引發(fā)多處數(shù)據(jù)改變
業(yè)務(wù)邏輯復(fù)雜,內(nèi)部耦合度高延遲敏感+高強(qiáng)度交互同時(shí)作用下,狀態(tài)維護(hù)往往成為必需;復(fù)雜游戲服務(wù)的實(shí)現(xiàn)代碼,可達(dá)百萬行量級(jí)
變更頻度高,幅度大:變更幅度,包含內(nèi)容和邏輯。
性能來自于算法選擇與算法優(yōu)化:排序、查找、空間-時(shí)間。
操作系統(tǒng)/應(yīng)用程序運(yùn)行機(jī)制:IO多路復(fù)用;局部性原理;編程語言。
硬件:CPU的充分利用_多線程/多進(jìn)程;存儲(chǔ)層級(jí)的理解和利用;多隊(duì)列網(wǎng)卡。
持續(xù)運(yùn)行,意味著:穩(wěn)定最重要;容錯(cuò);日志和監(jiān)控。
作為游戲玩家,希望在玩多人游戲時(shí)盡可能地控制和自定義自己的游戲環(huán)境。擁有專用的游戲服務(wù)器可以讓您實(shí)現(xiàn)這一目標(biāo)。作為開發(fā)人員,擁有可為您提供有關(guān)玩家的重要數(shù)據(jù)和信息的遠(yuǎn)程游戲服務(wù)器無疑是一個(gè)優(yōu)勢(shì)。
?

?
游戲服務(wù)器如何工作的一種簡單方法是將其視為你作為玩家在通過第三方游戲平臺(tái)進(jìn)行游戲時(shí)與之交互的服務(wù)器。這個(gè)數(shù)據(jù)請(qǐng)求游戲服務(wù)器做交互允許玩家無縫銜接玩游戲并且還可以訪問他們的結(jié)果。你使用的游戲服務(wù)器配置將對(duì)你的游戲體驗(yàn)產(chǎn)生巨大影響。因此,選擇正確的服務(wù)器很重要。
借助服務(wù)器,一次集成設(shè)定好即可讓你訪問功能庫。也可以在手機(jī)、平板設(shè)備或臺(tái)式機(jī)上玩。
服務(wù)器配置、大流量承載、基礎(chǔ)設(shè)施、高防護(hù)安全級(jí)別、7*24運(yùn)維
?

專用游戲服務(wù)器和遠(yuǎn)程游戲服務(wù)器有什么區(qū)別?
專用游戲服務(wù)器和遠(yuǎn)程游戲服務(wù)器都提供了出色的性能,但遠(yuǎn)程服務(wù)器提供了更多的功能和靈活性。單個(gè)服務(wù)器軟件更新支持不同的服務(wù)器。游戲服務(wù)器致力于網(wǎng)絡(luò)中的所有游戲玩家提供最佳體驗(yàn)。
專用服務(wù)器根據(jù)你的需要自定義程序,從而優(yōu)化應(yīng)用程序以改善玩家的游戲體驗(yàn)。游戲服務(wù)器配置更高性能更強(qiáng)以處理更多流量,因此此類服務(wù)器非常適合使用量激增的游戲。
?

我是艾西,今天的分享就到這里啦希望我的經(jīng)驗(yàn)以及專業(yè)能為你帶來幫助
?