久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

返回列表 發(fā)帖
查看: 275|回復(fù): 0

游戲服務(wù)器架構(gòu)通識(shí)

1

主題

0

回帖

7

積分

初學(xué)乍練

貢獻(xiàn)
0 點(diǎn)
金幣
5 個(gè)
樓主
發(fā)表于 2025-7-31 11:39:13 | 只看樓主 |只看大圖 |倒序?yàn)g覽 |閱讀模式
前言

這節(jié)講座里,我們將從游戲服務(wù)器發(fā)展的簡(jiǎn)單歷程出發(fā),鳥(niǎo)瞰一下目前大多數(shù)的游戲服務(wù)器架構(gòu)。

這里盡可能的避免陷入細(xì)節(jié)的技術(shù)問(wèn)題,而是從技術(shù)進(jìn)化的結(jié)果狀態(tài),反推原始問(wèn)題是什么。希望能通過(guò)這個(gè)過(guò)程,解釋清楚游戲服務(wù)器是在解決什么問(wèn)題,痛點(diǎn)到底在哪里。

一、早期網(wǎng)游服務(wù)器

蠻荒時(shí)期的游戲服務(wù)器框架我們一筆帶過(guò),那時(shí)的游戲服務(wù)器和一個(gè)小Web服務(wù)沒(méi)有區(qū)別。

蠻荒時(shí)代的服務(wù)器只負(fù)責(zé)存儲(chǔ)玩家賬號(hào)、數(shù)據(jù)、轉(zhuǎn)發(fā)場(chǎng)景內(nèi)其他玩家的行為。很多移動(dòng)、使用技能等關(guān)鍵邏輯在服務(wù)器上根本沒(méi)有。隨意就能用變速齒輪改變游戲速度。

從《傳奇》的時(shí)代開(kāi)始,游戲服務(wù)器就不再是簡(jiǎn)單的上傳存檔、下載存檔、訪(fǎng)問(wèn)頁(yè)面而已。游戲服務(wù)器內(nèi)部出現(xiàn)了游戲邏輯,既能用于同步每個(gè)玩家看到的世界,又能讓邏輯與客戶(hù)端分離,避免早期的網(wǎng)絡(luò)游戲那種毫無(wú)防范的邏輯體系(對(duì)外掛防御能力為0)。



如圖,客戶(hù)端通過(guò)某種形式驗(yàn)證登陸以后,就和服務(wù)器通過(guò)TCP直接相連了。這種服務(wù)器的承載能力不高,但那時(shí)在游戲邏輯上也務(wù)求簡(jiǎn)化,把負(fù)載減少到極致。

· 例如:1、玩家看不到怪物的血量,或者只能看到正在打的怪物的血量。2、地圖有格子的概念,每個(gè)格子只能有一個(gè)單位,極大限制了同屏人數(shù)。

由于邏輯盡量簡(jiǎn)化,雖然這時(shí)的服務(wù)器邏輯服務(wù)都是單進(jìn)程單線(xiàn)程的,但是也足夠表現(xiàn)交互的感受。

這種架構(gòu)奇怪的地方是處理網(wǎng)絡(luò)連接數(shù)據(jù)傳輸?shù)膲毫瓦壿嬏幚淼膲毫υ谕粋€(gè)服務(wù)器上(存儲(chǔ)模塊可能也在同一個(gè)進(jìn)程),就算邏輯處理壓力為0,承載人數(shù)也高不到哪去。

雖然這時(shí)的游戲服務(wù)器設(shè)計(jì)很簡(jiǎn)陋,但是網(wǎng)游第一次給了玩家真實(shí)世界的感受。單服人數(shù)不足的問(wèn)題可以靠開(kāi)多組服務(wù)器實(shí)現(xiàn),所以曾經(jīng)出現(xiàn)了幾百上千組服務(wù)器的輝煌時(shí)代。

二、早期游戲服務(wù)器的改進(jìn)版本

當(dāng)開(kāi)發(fā)者們有了初步經(jīng)驗(yàn)以后,新作品的開(kāi)發(fā),自然而然的過(guò)渡到了如下的形式:



游戲邏輯服務(wù)依然是在一臺(tái)服務(wù)器上,單進(jìn)程(邏輯處理本身肯定是在一個(gè)線(xiàn)程中,可以有子線(xiàn)程負(fù)責(zé)內(nèi)網(wǎng)通信)。但是我們自然的想到,存儲(chǔ)負(fù)載和網(wǎng)絡(luò)連接負(fù)載可以從邏輯服上拆出來(lái)。

連接服務(wù)器負(fù)責(zé)把客戶(hù)端和服務(wù)器之間的消息轉(zhuǎn)化為服務(wù)器之間的消息,可以順便做一些加解密的工作。

這一點(diǎn)小改動(dòng)極大提高了單服連接人數(shù)的上限。但是玩家要求提高了,空出來(lái)的性能很快被豐富的游戲系統(tǒng)吃掉了。

由于連接服務(wù)器本身沒(méi)有時(shí)序性,很容易做分布式的(其實(shí)大部分游戲還是只用一個(gè)連接服),存儲(chǔ)服務(wù)不要求高實(shí)時(shí)性,高峰期存盤(pán)間隔可以稍長(zhǎng)一些,不會(huì)對(duì)游戲服造成影響。

三、成熟形態(tài)的服務(wù)器框架

邏輯服務(wù)器的負(fù)載均攤方法一:按照功能劃分多個(gè)服務(wù)器進(jìn)程



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


對(duì)游戲服務(wù)器歷史有了基本了解后,成熟形態(tài)的游戲服務(wù)器很容易理解。簡(jiǎn)單來(lái)說(shuō),就是把邏輯服務(wù)器單個(gè)進(jìn)程的壓力分?jǐn)偟蕉鄠€(gè)服務(wù)器。

難點(diǎn)在邏輯的設(shè)計(jì)上,要像做手術(shù)一樣把本來(lái)是一體的功能切開(kāi),并抽象出若干個(gè)API來(lái)保持聯(lián)系(服務(wù)器之間是TCP連接)。

在分解時(shí),要找聯(lián)系相對(duì)最薄弱的環(huán)節(jié)入手,比如場(chǎng)景和場(chǎng)景之間分開(kāi)、單獨(dú)抽出聊天服務(wù)、組隊(duì)服務(wù)、好友服務(wù)。

無(wú)論如何分解,最終結(jié)果只能是有限個(gè)服務(wù)。而且分解的越細(xì),開(kāi)發(fā)難度就越大。因?yàn)榭绶?wù)器邏輯是把簡(jiǎn)單的同步邏輯變成了異步Callback邏輯,而且容易出現(xiàn)時(shí)序問(wèn)題等不易測(cè)試的問(wèn)題。

單個(gè)場(chǎng)景服務(wù)幾乎是無(wú)法分解的。分解單個(gè)場(chǎng)景難度巨大以至于出現(xiàn)了BigWorld引擎來(lái)專(zhuān)門(mén)的解決場(chǎng)景分割問(wèn)題,后面會(huì)談到。



這種成熟形態(tài)的游戲服務(wù)器已經(jīng)能滿(mǎn)足現(xiàn)實(shí)中99%的頻繁交互類(lèi)網(wǎng)游需求,是大型MMO端游、頁(yè)游的主流形式。

當(dāng)然有實(shí)力的公司在這個(gè)基礎(chǔ)上會(huì)做很多改動(dòng),實(shí)現(xiàn)動(dòng)態(tài)開(kāi)辟副本、相位技術(shù)等等,但是萬(wàn)變不離其宗,其本質(zhì)和上圖沒(méi)有什么區(qū)別。



附:開(kāi)房間式的網(wǎng)絡(luò)游戲

開(kāi)房間式的網(wǎng)絡(luò)游戲也是游戲的一個(gè)重要分支,英雄聯(lián)盟、DOTA、很多手游例如皇室戰(zhàn)爭(zhēng)、王者榮耀等等。

這種游戲房間之間幾乎沒(méi)有交互,只有大廳內(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ì)合理的話(huà),它可能遇到的問(wèn)題和大型網(wǎng)站幾乎一模一樣。不需要特別的討論它們。

只是,畢竟游戲不都是開(kāi)房間的玩法。



小結(jié):游戲服務(wù)器框架特點(diǎn)

1、真正的數(shù)據(jù)都在內(nèi)存中,數(shù)據(jù)庫(kù)性能不那么重要

· 注:很多大型游戲采用了共享內(nèi)存,避免宕機(jī)時(shí)損失過(guò)大。

2、單CPU性能比CPU數(shù)量重要的多。

3、目前有很多游戲,特別是手游,使用Redis讀寫(xiě)代替內(nèi)存讀寫(xiě),甚至也有用Mongo的。

4、開(kāi)新服、舊區(qū)合服的情況,非常適合云平臺(tái)。

五、先進(jìn)服務(wù)器框架

· 先進(jìn)服務(wù)器框架1 BigWorld

BigWorld引擎的代表作:

· 中國(guó):《天下貳 》《天下叁》等等數(shù)十款,網(wǎng)易對(duì)BigWorld的實(shí)用化貢獻(xiàn)很大。

· 國(guó)際:《魔獸世界》早期版本,《坦克世界》,《戰(zhàn)爭(zhēng)雷霆》

BigWorld的核心理念,要回到上面講過(guò)的場(chǎng)景分割問(wèn)題。

BigWorld利用平面切分的原理,將場(chǎng)景劃分為小塊,不同的塊可以運(yùn)行在不同的服務(wù)器上。而且塊的劃分是動(dòng)態(tài)的,根據(jù)玩家密集程度、數(shù)量動(dòng)態(tài)調(diào)整塊的大小。。

具體技術(shù)上,使用了Actor模型,要求每個(gè)對(duì)象都是獨(dú)立的Entity,對(duì)象之間只能通過(guò)消息協(xié)作,嚴(yán)格限制對(duì)象之間的直接交互。

后來(lái)隨著手游的崛起、端游的衰落、網(wǎng)游玩法向多元化發(fā)展,這一系列的變化,導(dǎo)致BigWorld引擎很快就衰落了。

BigWorld引擎從曾經(jīng)的大紅大紫,到現(xiàn)在的無(wú)人問(wèn)津,反映出游戲服務(wù)器技術(shù)的發(fā)展趨勢(shì)。BigWorld的強(qiáng)制Actor模型,實(shí)際上是犧牲了開(kāi)發(fā)效率,換取了服務(wù)器可擴(kuò)展性。

理論上單服承載人數(shù)可以達(dá)到百萬(wàn)級(jí)別。但是游戲的業(yè)務(wù)邏輯的修改很頻繁,開(kāi)發(fā)效率低下是游戲設(shè)計(jì)師不能承受之重。

這種架構(gòu)天生就是為云計(jì)算準(zhǔn)備的,而且單個(gè)物理機(jī)承載量十分有限,每個(gè)游戲大區(qū)都需要大量實(shí)體機(jī)。

如果BigWorld成功…… 可惜的是,它和實(shí)際市場(chǎng)的發(fā)展趨勢(shì)背道而馳了。

游戲開(kāi)發(fā)相比電商系統(tǒng),項(xiàng)目規(guī)模小幾個(gè)數(shù)量級(jí),但是相對(duì)的,迭代速度要快幾倍。項(xiàng)目之間如果類(lèi)型不同或是玩法有差異,能復(fù)用的代碼并不多。

聊聊十萬(wàn)行代碼。游戲服務(wù)器開(kāi)發(fā)速度受美術(shù)資源制作速度、客戶(hù)端開(kāi)發(fā)速度制約。近幾年我猜測(cè)服務(wù)器方面并不會(huì)有大的技術(shù)革新。

游戲開(kāi)發(fā)未來(lái)的趨勢(shì)是多元化、低門(mén)檻化、大眾化。很長(zhǎng)一段時(shí)間內(nèi)BigWorld這種大怪獸級(jí)別的引擎不會(huì)再崛起。

分布式框架的崛起時(shí)間點(diǎn),無(wú)論如何,也在VR技術(shù)成熟之后了。



· 先進(jìn)服務(wù)器框架2、Skynet

Skynet是新興的一種通用型服務(wù)器框架(完全開(kāi)源),它游走在傳統(tǒng)不易分布服務(wù)器和分布式服務(wù)器之間。

它是一種泛用型框架,不僅能很好的作為游戲服務(wù)器框架使用,而且用來(lái)搭建HTTP服務(wù)也具有驚人的性能(幾百行代碼的簡(jiǎn)單HTTP實(shí)現(xiàn),能達(dá)到nginx 60%的性能)。

矛盾的是,由于它對(duì)腳本虛擬機(jī)做了一些重要的Hack,導(dǎo)致它完全綁定在了Lua這一種語(yǔ)言上。

Skynet原理闡述:

把服務(wù)抽象為微服務(wù),一個(gè)系統(tǒng)內(nèi)可以建立成千上萬(wàn)個(gè)微服務(wù),Skynet調(diào)度m個(gè)線(xiàn)程(m=CPU核心數(shù))、處理n個(gè)微服務(wù)各自的事件。

由于n個(gè)微服務(wù)在同一個(gè)進(jìn)程內(nèi),可以達(dá)到0延遲的內(nèi)部通信(極端情況下無(wú)拷貝)

同時(shí)Lua虛擬機(jī)又提供了沙盒機(jī)制,微服務(wù)之間的Lua邏輯代碼不會(huì)有任何干擾,必要的時(shí)候又可以在C語(yǔ)言層面、Lua沙盒之外共享數(shù)據(jù)。

由于服務(wù)本身有良好的隔離性,可以較為方便的把服務(wù)部署到多物理機(jī)上(考慮到性能問(wèn)題,不能像BigWorld那樣任意部署)。

Skynet這種架構(gòu)已經(jīng)在Lua體系的游戲公司內(nèi)大量使用(以網(wǎng)易系為代表),悄無(wú)聲息的滲透到其他公司里。(和Lua語(yǔ)言當(dāng)年的情況有點(diǎn)像,是金子總會(huì)發(fā)光的。)



六、先進(jìn)服務(wù)器框架3、以Go語(yǔ)言為主的其他框架

Go語(yǔ)言的goroutine特性,給游戲開(kāi)發(fā)者帶來(lái)巨大的想象空間。

在Go語(yǔ)言的基礎(chǔ)上,很容易出現(xiàn)更好的房間式游戲框架、類(lèi)似Skynet的框架、改進(jìn)型的傳統(tǒng)框架。

但是可以大膽預(yù)測(cè),最終實(shí)現(xiàn)的效果不會(huì)超過(guò)erlang、skynet這類(lèi)框架的范圍。這是因?yàn)橛螒驑I(yè)務(wù)本身的特性決定的。



結(jié)束語(yǔ)

本文簡(jiǎn)要探討了十幾二十年來(lái),主流服務(wù)器框架的發(fā)展脈絡(luò),以MMO-RPG這種最具代表性的網(wǎng)游類(lèi)型為主(同時(shí)MMO對(duì)服務(wù)器架構(gòu)的挑戰(zhàn)也是最大的),兼談到一些其他類(lèi)型的游戲。由于游戲類(lèi)型多種多樣,各個(gè)國(guó)家和地區(qū)的開(kāi)發(fā)商所偏好的架構(gòu)方式也大有不同,文中難免掛一漏萬(wàn),但不太影響整體脈絡(luò),也不影響對(duì)網(wǎng)游服務(wù)器的核心問(wèn)題的總結(jié)——邏輯拆分。


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2025-10-12 08:19 , Processed in 0.054601 second(s), 14 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Copyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表
久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线
国产午夜精品久久久久久免费视| 精品国精品国产| 亚洲黄色av一区| 精品国产在天天线2019| 7777精品伊人久久久大香线蕉| 欧美日本韩国一区二区三区视频| 国产精品久久久久久久久免费丝袜 | 欧美videos大乳护士334| 亚洲私人影院| 99www免费人成精品| 在线免费精品视频| 在线亚洲人成电影网站色www| 亚洲免费在线| 色婷婷综合久久久久中文| 欧美成人bangbros| 国产精品午夜电影| 免费日韩伦理电影| 亚洲视频导航| 欧美区在线观看| 欧美一二三区精品| 五月天婷婷综合| 极品少妇一区二区三区| 欧美日韩国产综合视频在线观看| 中文字幕一区日韩精品欧美| 日韩成人伦理电影在线观看| caoporen国产精品视频| 国产成人在线免费观看| 成人在线视频一区| 国产精品videossex久久发布| 国产精品乱子乱xxxx| ●精品国产综合乱码久久久久| 激情小说欧美图片| 99精品免费视频| 在线中文字幕不卡| 欧美另类videos死尸| 国产精品午夜免费| 欧美a级理论片| 亚洲专区一区二区三区| 在线成人免费观看| 在线综合+亚洲+欧美中文字幕| 一区二区三区四区国产精品| 国产综合网站| 乱人伦精品视频在线观看| 中文字幕字幕中文在线中不卡视频| 久久99久久精品欧美| 国产精品一区三区| 欧美日韩国产在线一区| 一区二区不卡在线视频 午夜欧美不卡'| 色嗨嗨av一区二区三区| 日韩高清欧美激情| 欧美日韩综合网| 国产亚洲精品免费| yourporn久久国产精品| 日本韩国一区二区| 中文无字幕一区二区三区| 丝袜诱惑亚洲看片| 亚洲国产欧洲综合997久久| 精品国产123| 黄页网站大全一区二区| 91精品国产色综合久久不卡蜜臀| 成人av电影免费在线播放| 日韩欧美卡一卡二| 粉嫩一区二区三区性色av| 91精品国产色综合久久ai换脸| 欧美日韩亚洲一区二区三区四区| 91精品欧美久久久久久动漫 | 国产女优一区| 国产精品嫩草影院av蜜臀| 91小视频免费看| 日韩欧美资源站| 在线精品一区| 美女视频黄频大全不卡视频在线播放| 国产三区在线成人av| 国产精品porn| 国产精品99久久久久久宅男| 欧美日韩国产高清一区二区三区 | 成人手机在线视频| 欧美手机在线视频| 国产一区二区三区香蕉| 日韩欧美国产综合一区| 日韩电影在线一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲一区二区在线免费看| 欧美三区免费完整视频在线观看| 国产不卡在线一区| 国产亚洲欧美一级| 日韩免费一区二区| 首页国产丝袜综合| 美美哒免费高清在线观看视频一区二区| 99久久er热在这里只有精品15| 中文字幕一区二区三区在线观看| 一本到不卡精品视频在线观看| 成人小视频在线观看| 一区二区三区四区不卡在线 | 国内一区二区在线| 国产精品网站在线播放| 色诱视频网站一区| 欧美日韩精品一区| 久久99久久精品| 国产精品福利一区| 欧美日韩aaaaa| 日韩亚洲在线| 成人午夜电影久久影院| 亚洲午夜久久久久久久久久久 | 久久久久网址| 午夜国产一区| 日产欧产美韩系列久久99| 久久久久久久综合色一本| 久久综合九色| 国产一区二区三区无遮挡| 黑人巨大精品欧美一区| 中文字幕佐山爱一区二区免费| 91精品国产品国语在线不卡| 亚洲精品美女久久7777777| 国产一二精品视频| 亚洲精品国产第一综合99久久 | a亚洲天堂av| 水野朝阳av一区二区三区| 久久精品视频在线免费观看| 欧美在线一区二区| 国产欧美高清| 91亚洲资源网| 久久99精品视频| 一区二区三区视频在线观看| 国产色一区二区| 欧美一区中文字幕| 久久在线视频| 国内一区二区三区在线视频| 国产伦精品一区二区三区免费| 亚洲国产视频在线| 国产精品的网站| 精品久久久久99| 欧美日韩国产精选| 鲁鲁狠狠狠7777一区二区| 亚洲午夜久久久久久尤物| 成人丝袜高跟foot| 激情六月婷婷久久| 亚洲国产你懂的| 亚洲婷婷国产精品电影人久久| 精品国产污污免费网站入口 | 国产中文一区二区三区| 亚洲国产一二三| 亚洲日本va午夜在线影院| 精品久久国产字幕高潮| 欧美日韩亚洲综合一区二区三区| 国产视频在线观看一区| 亚洲欧美综合国产精品一区| 国产1区2区3区精品美女| 日韩极品在线观看| 一级特黄大欧美久久久| 国产精品激情偷乱一区二区∴| 精品国产91亚洲一区二区三区婷婷| 欧美日韩www| 欧美色欧美亚洲另类二区| 美女国产精品| 国产一区二区高清视频| 在线成人国产| 国产精品va| 午夜精品av| 91丝袜高跟美女视频| 国产精品羞羞答答xxdd| 奇米一区二区三区| 日韩制服丝袜先锋影音| 亚洲成va人在线观看| 亚洲精品国产品国语在线app| 亚洲人成在线观看一区二区| 国产精品九色蝌蚪自拍| 中文字幕亚洲区| 中文字幕佐山爱一区二区免费| 中文字幕一区二区三区四区 | 国产精品视频久久一区| 一区二区三区精品视频在线观看| 欧美日韩1080p| 欧美国产激情| 欧美日韩网站| 欧美亚韩一区| 伊大人香蕉综合8在线视| 国产一区二区无遮挡| 黄色工厂这里只有精品| 亚洲婷婷在线| 亚洲国产精品一区二区第一页| 1024亚洲| 在线一区视频| 亚洲欧美日本国产专区一区| 国产精品免费看| 欧美亚洲网站| 一本大道久久精品懂色aⅴ| 久久久久久国产精品mv| 久久久综合香蕉尹人综合网| 久久人人超碰| 欧美日韩一本到| 91麻豆精品国产91| 欧美草草影院在线视频| 欧美zozozo| 国产午夜精品一区二区三区四区| 久久精品亚洲精品国产欧美kt∨| 久久久久久一级片| 中文字幕亚洲区| 亚洲国产精品自拍| 日韩综合一区二区|