2024-03-26 分類(lèi): 網(wǎng)站建設(shè)
你是一個(gè)喜歡玩游戲的人嗎?尤其是多人聯(lián)機(jī)?你有沒(méi)有想過(guò)多人游戲如何在游戲服務(wù)器的幫助下工作?讓我們從一些見(jiàn)解開(kāi)始。在大多數(shù)情況下,現(xiàn)代在線(xiàn)游戲使用客戶(hù)端-服務(wù)器模型。在簡(jiǎn)單的客戶(hù)端-服務(wù)器范例中,玩家傳輸輸入,例如,點(diǎn)擊服務(wù)器、鼠標(biāo)移動(dòng)和按鍵。該服務(wù)器更新在游戲世界中你的性格和與合計(jì)攜帶你的性格和其他玩家作為響應(yīng)的更新?tīng)顟B(tài)恢復(fù)的狀態(tài)。
多人游戲簡(jiǎn)史
在游戲歷史的開(kāi)始,游戲是點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò),多臺(tái)計(jì)算機(jī)在一個(gè)完全組合的網(wǎng)狀拓?fù)浣Y(jié)構(gòu)中相互交易信息。這些類(lèi)型的游戲模型仍然存在于 RTS 游戲中,并且出于某種目的很有趣。因?yàn)檫@是第一種方式——這可能是大多數(shù)人認(rèn)為游戲網(wǎng)絡(luò)運(yùn)作的方式。在下一階段的動(dòng)作游戲中,點(diǎn)對(duì)點(diǎn)鎖步的限制在《毀滅戰(zhàn)士》中越來(lái)越明顯,盡管在局域網(wǎng)上玩得很好,但對(duì)于普通用戶(hù)來(lái)說(shuō),互聯(lián)網(wǎng)上的表現(xiàn)卻很糟糕。
后來(lái),為了領(lǐng)先于 LAN,例如連接良好的大學(xué)網(wǎng)絡(luò)或大型組織,開(kāi)發(fā)模型是必不可少的。這就是客戶(hù)端-服務(wù)器模型發(fā)布并取代了一些現(xiàn)有的點(diǎn)對(duì)點(diǎn)游戲系統(tǒng)的時(shí)候。1996 年,這正是 John Carmack 和他的合作伙伴在發(fā)布采用客戶(hù)端/服務(wù)器而不是點(diǎn)對(duì)點(diǎn)的 Quake 時(shí)所做的。
現(xiàn)在代替每個(gè)玩家運(yùn)行相同的游戲代碼并直接相互交互,每個(gè)玩家現(xiàn)在都是一個(gè)“客戶(hù)端”,他們都只與一個(gè)稱(chēng)為“服務(wù)器”的網(wǎng)絡(luò)進(jìn)行通信。游戲不再需要在所有設(shè)備上都具有確定性,因?yàn)橛螒驅(qū)嶋H上是在服務(wù)器上。每個(gè)客戶(hù)端都作為一個(gè)啞終端有效地工作,顯示游戲在服務(wù)器上進(jìn)行時(shí)的估計(jì)。這是一個(gè)很好的行動(dòng)。游戲?qū)嵺`的本質(zhì)現(xiàn)在取決于客戶(hù)端和服務(wù)器之間的相關(guān)性,而不是游戲中的延遲對(duì)等點(diǎn)。玩家在游戲中途暫停和恢復(fù)也變得可以容忍,并且隨著客戶(hù)端/服務(wù)器降低每個(gè)玩家平均所需的帶寬,玩家數(shù)量增加。接下來(lái)發(fā)生的事情將永遠(yuǎn)改變這個(gè)行業(yè)。以前,問(wèn)題當(dāng)然是延遲。后來(lái),開(kāi)發(fā)人員清除并繼續(xù)使一切正常工作。
客戶(hù)端預(yù)測(cè)
在最初的 Quake 中,您經(jīng)歷了計(jì)算機(jī)和服務(wù)器之間的延遲。例如,按向前,您將等待數(shù)據(jù)包傳輸?shù)椒?wù)器并返回給您所需的時(shí)間,然后才能真正開(kāi)始;在另一種情況下,按開(kāi)火并等待相同的延遲,然后再進(jìn)行射擊。如果您嘗試過(guò)任何現(xiàn)代 FPS,例如“使命召喚”、“現(xiàn)代戰(zhàn)爭(zhēng)”,您會(huì)覺(jué)得體驗(yàn)更好,沒(méi)有延遲。因此,為了消除延遲,客戶(hù)端很快就會(huì)處理比以前更多的代碼。它不是向服務(wù)器提供輸入并在發(fā)回的狀態(tài)之間插入的啞終端。相反,它能夠根據(jù)您的輸入,在客戶(hù)端機(jī)器上為您的玩家角色操作游戲代碼的子集,從而部分地和快速地預(yù)測(cè)您的角色的演變。現(xiàn)在,只要您向前推進(jìn),客戶(hù)端和服務(wù)器之間的往返就沒(méi)有停頓——您的角色立即開(kāi)始向前移動(dòng)。
多人游戲服務(wù)器架構(gòu)
服務(wù)器將具有“垂直掃描速率”,即它頻繁更新玩家信息的速率。最好是匆忙,因?yàn)樵谟螒蛑忻恳豢潭己苤匾?。通常,需要多次滴答才能為用?hù)提供實(shí)時(shí)體驗(yàn)。打勾表示信息每秒更新的次數(shù)。在每個(gè)刻度上,客戶(hù)端可能會(huì)向游戲世界發(fā)送玩家的動(dòng)作、攻擊或任何變化。服務(wù)器上運(yùn)行著一個(gè)權(quán)威版本的世界。但是使用了各種方法來(lái)確保消費(fèi)者在采取行動(dòng)之前不會(huì)期待另一端。
可能存在確定性動(dòng)作和非確定性動(dòng)作。在確定性動(dòng)作中,服務(wù)器可以根據(jù)原始數(shù)據(jù)預(yù)測(cè)對(duì)象的未來(lái)狀態(tài)。例如,要給出槍聲事件,服務(wù)器只需要了解一些主要信息,例如方向和力量。根據(jù)此信息,服務(wù)器可以指導(dǎo)客戶(hù)端如何完成播放。在非確定性回復(fù)中,服務(wù)器無(wú)法預(yù)測(cè)未來(lái)的事件。因此,客戶(hù)端希望向服務(wù)器發(fā)送一致的數(shù)據(jù)流。獲得輸入數(shù)據(jù),執(zhí)行模擬后,服務(wù)器傳輸包含所有客戶(hù)端點(diǎn)的正式版本的容器。
模擬代碼使用這些數(shù)據(jù)流,影響運(yùn)動(dòng)并將它們固定到特定的圖形位置。這種模擬可以在服務(wù)器和消費(fèi)者上運(yùn)行。從編程方面來(lái)說(shuō),我們想要處理延遲問(wèn)題。同時(shí)需要消息來(lái)報(bào)告,事情也就過(guò)去了。服務(wù)器和消費(fèi)者都必須玩弄時(shí)間來(lái)處理延遲。
為了在按鍵后為玩家提供即時(shí)反饋,客戶(hù)端可以預(yù)測(cè)服務(wù)器在獲得玩家輸入后的工作情況并很快執(zhí)行此操作。然后客戶(hù)端將其新位置報(bào)告給服務(wù)器。為了預(yù)測(cè)精確的狀態(tài)變化,客戶(hù)端還必須影響游戲環(huán)境。但是,由于延遲,客戶(hù)端和服務(wù)器可能會(huì)變得不合適。服務(wù)端可能會(huì)頻繁的通知客戶(hù)端此時(shí)需要進(jìn)行改進(jìn),這會(huì)出現(xiàn)在玩家無(wú)法操作的動(dòng)作中。
為了補(bǔ)償同步問(wèn)題,一個(gè)計(jì)劃是讓服務(wù)器允許在它認(rèn)為玩家的狀態(tài)應(yīng)該是什么和玩家報(bào)告的狀態(tài)之間有一定數(shù)量的變化。一旦附加上,管理本地玩家的位置變化會(huì)很快導(dǎo)致游戲更加穩(wěn)定。 每個(gè)客戶(hù)端機(jī)器都會(huì)向服務(wù)器傳輸一個(gè)恒定的數(shù)據(jù)包流,其中每個(gè)數(shù)據(jù)包都包含對(duì)玩家輸入的簡(jiǎn)單更新。每個(gè)刻度,客戶(hù)端可能會(huì)指定鼠標(biāo)位置或按下的鍵。這是帶寬不足的流。
模擬代碼使用這些輸入流,模擬運(yùn)動(dòng)并將它們固定到角色位置。這種模擬可以在服務(wù)器和客戶(hù)端上運(yùn)行。服務(wù)器在接收到相關(guān)輸入時(shí)授予數(shù)據(jù)包,將使用傳輸模擬游戲位置。在大多數(shù)情況下,這將與客戶(hù)的假設(shè)準(zhǔn)確匹配。這些客戶(hù)位置僅與移動(dòng)對(duì)象進(jìn)行比較。所有不變的對(duì)象永遠(yuǎn)不會(huì)更新。
名稱(chēng)欄目:美國(guó)網(wǎng)站服務(wù)器-游戲服務(wù)器是如何處理萬(wàn)人在線(xiàn)的?
本文鏈接:http://aaarwkj.com/news42/321892.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、響應(yīng)式網(wǎng)站、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容