久久99精品久久久水蜜桃_日韩欧美一区二区视频在线播放V_久久久久久国产精品久久 _亚洲国产精品女人

Unity:事實(shí)or謠言,揭秘三種常見網(wǎng)絡(luò)代碼誤區(qū)

文章來(lái)源: 作者:frank 發(fā)布時(shí)間:2021年12月03日 點(diǎn)擊數(shù):

創(chuàng)建并運(yùn)營(yíng)一個(gè)多人游戲并不容易,而且與單人游戲相比,往往涉及更多的部分,因?yàn)樗械臇|西都需要與其他玩家同步,以創(chuàng)建一個(gè)一致的、共享的世界。

多人游戲開發(fā)難題的一個(gè)核心部分是網(wǎng)絡(luò)代碼——處理游戲玩家和服務(wù)器之間“how”和“what”通信的代碼部分。

然而,“網(wǎng)絡(luò)代碼”這個(gè)詞常常會(huì)為人們帶來(lái)不好的印象,經(jīng)常被歸咎于延遲和糟糕的多人游戲體驗(yàn)。

在本文中我們將帶領(lǐng)大家深入探討這些常見的誤解,并一一證實(shí)關(guān)于網(wǎng)絡(luò)代碼的誤解,這有助于推動(dòng)更多的創(chuàng)作者使用網(wǎng)絡(luò)代碼創(chuàng)建多人游戲。

什么是網(wǎng)絡(luò)代碼?

Netcode指的是多人游戲開發(fā)中的“創(chuàng)建”部分,是一個(gè)總括術(shù)語(yǔ),指的是游戲中處理客戶端和服務(wù)器之間聯(lián)網(wǎng)和同步的部分。

在多人游戲中,服務(wù)器和客戶端通過(guò)網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)包相互通信。為了在遠(yuǎn)距離連接的游戲玩家之間創(chuàng)造一個(gè)可以共享的平臺(tái),如移動(dòng)角色或生成對(duì)象等游戲事件可以以發(fā)送數(shù)據(jù)包的形式同步到其他客戶端。負(fù)責(zé)通過(guò)網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)包的部分我們稱之為“Transport(即傳輸)”。

雖然我們可以通過(guò)直接調(diào)用傳輸?shù)陌l(fā)送功能來(lái)手動(dòng)發(fā)送這些數(shù)據(jù)包,但這種模式很快會(huì)讓沒有多少多人游戲經(jīng)驗(yàn)的程序員們難以承受。

網(wǎng)絡(luò)代碼庫(kù)利用了網(wǎng)絡(luò)變量和遠(yuǎn)程步驟調(diào)用(RPC)等功能,將發(fā)送的數(shù)據(jù)包從游戲代碼中抽離出來(lái)。

Unity有兩個(gè)網(wǎng)絡(luò)代碼包,游戲?qū)ο蟮木W(wǎng)絡(luò)代碼(預(yù)發(fā)行)和實(shí)體的網(wǎng)絡(luò)代碼(實(shí)驗(yàn)版)。

三個(gè)常見的網(wǎng)絡(luò)代碼誤區(qū)與事實(shí)

誤區(qū)1:“在游戲開發(fā)中可以隨時(shí)轉(zhuǎn)換到多人模式”

謠言:在游戲的開發(fā)周期中,多人游戲可以在開發(fā)的后期添加到頂部。

事實(shí):多人游戲?qū)嵤┢饋?lái)很有挑戰(zhàn)性。如果你想讓玩家在游戲中體驗(yàn)多人游戲,那么你應(yīng)該在設(shè)計(jì)和開發(fā)中盡早考慮添加多人游戲。

為什么呢?多人游戲幾乎觸及了游戲的每一個(gè)方面,所以它也影響了游戲的發(fā)展。例如,如果在一個(gè)游戲中有一個(gè)庫(kù)存系統(tǒng),多人游戲?qū)⑿枰綆?kù)存物品到服務(wù)器。

在單人游戲體驗(yàn)中,也有許多相當(dāng)容易實(shí)現(xiàn)的東西,當(dāng)你試圖將它們放入多人游戲時(shí)便會(huì)非常的困難。

你有沒有想過(guò)為什么大多數(shù)多人游戲使用運(yùn)動(dòng)角色控制器,并且只有非常少的物理交互?這些游戲之所以這樣做,是因?yàn)閷?shí)現(xiàn)在多個(gè)客戶端之間共享物理模擬和預(yù)測(cè)物理模擬是一個(gè)真正令人頭疼的問題,即使對(duì)有經(jīng)驗(yàn)的開發(fā)人員來(lái)說(shuō)也是如此。

這里給出的建議是盡早檢查你的游戲功能是否適合多人游戲——尤其是如果你的游戲有一個(gè)其他游戲中不常用的獨(dú)特機(jī)制。

誤區(qū)2:“延遲越低越好”

謠言:對(duì)于多人游戲來(lái)說(shuō),延遲越低越好。因?yàn)檠舆t越低,游戲體驗(yàn)越好。

事實(shí):雖然保持低延遲對(duì)于向玩家提供流暢的體驗(yàn)很重要,但提供一致的體驗(yàn)也同樣重要。以同步狀態(tài)來(lái)創(chuàng)建一個(gè)共享的空間可能需要很少的時(shí)間,而這對(duì)于游戲中的玩家來(lái)說(shuō)影響可以說(shuō)是微乎其微。

為什么呢?為所有玩家提供流暢一致的體驗(yàn)并不總是有利于實(shí)現(xiàn)低延遲。

提高游戲流暢度和一致性最常用的技術(shù)是緩沖。

這里提到的緩沖技術(shù)不是立即處理來(lái)自網(wǎng)絡(luò)傳入的數(shù)據(jù)包,而是將數(shù)據(jù)包放入隊(duì)列。在每個(gè)波動(dòng)點(diǎn)期間(游戲模擬的單次更新),客戶端從隊(duì)列中取出(理想情況下)一個(gè)數(shù)據(jù)包,并同時(shí)嘗試在隊(duì)列中保持一定大小的緩沖元素。

這確保了當(dāng)服務(wù)器每次發(fā)送一個(gè)數(shù)據(jù)包時(shí),客戶端也總是每次處理一個(gè)數(shù)據(jù)包。

但是為什么要這樣做呢?原因很簡(jiǎn)單,如果客戶端立即處理傳入的數(shù)據(jù)包,它不是也會(huì)收到一個(gè)數(shù)據(jù)包嗎?在完美的網(wǎng)絡(luò)條件下,這是完全可能實(shí)現(xiàn)的,但是通過(guò)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包可能都有不同的傳輸延遲。

每個(gè)數(shù)據(jù)包的往返時(shí)間(RTT)的波動(dòng)我們稱為“抖動(dòng)”。緩沖便是一種增加延遲但減少抖動(dòng)的技術(shù),我們最終會(huì)通過(guò)緩沖(增加延遲)以為多人游戲提供更多的一致性從而改善玩家體驗(yàn)。

示例:格斗游戲通常需要玩家以正確的節(jié)奏快速按下一系列按鈕。玩家通過(guò)肌肉記憶一遍又一遍地練習(xí)來(lái)學(xué)習(xí)這些動(dòng)作。為了讓格斗游戲更加公平,玩家角色的最終動(dòng)作與給出的輸入保持一致是非常重要的。

那么很多格斗游戲是怎么做到這種一致性的呢?他們以固定的速率輪詢輸入,然后適當(dāng)緩沖這些輸入。通過(guò)這樣做,他們將玩家輸入一致地映射到游戲框架上。這樣會(huì)讓平均輸入延遲增加,但延遲會(huì)變得更加一致。

雖然增加更多的緩沖會(huì)使游戲更流暢,但在許多情況下,這會(huì)導(dǎo)致太多的延遲,玩家最終會(huì)感受到他們的輸入與屏幕上的游戲動(dòng)作產(chǎn)生不一致。

這里有一些不同的技術(shù)可以應(yīng)用于獲得緩沖的平滑性而沒有延遲損失。通過(guò)使用官方客戶端游戲?qū)⑼婕医巧妮斎肓⒓磻?yīng)用到游戲當(dāng)中,這使得本地玩家的延遲最小化。其他玩家仍然可以緩沖數(shù)據(jù),讓敵方玩家顯示更流暢。

雖然這種方法對(duì)玩家來(lái)說(shuō)感覺很好,但它會(huì)導(dǎo)致其他問題,因?yàn)樗棺鞅鬃兊萌菀椎枚唷?/p>

對(duì)于競(jìng)技游戲,可以使用一種稱為客戶端預(yù)測(cè)的技術(shù)。它所做的是立即應(yīng)用本地玩家的輸入,但服務(wù)器也會(huì)通過(guò)應(yīng)用相同的輸入來(lái)計(jì)算玩家的動(dòng)作,并檢查客戶端是否執(zhí)行了有效的移動(dòng),并在必要時(shí)進(jìn)行糾正。

誤區(qū)3:“帶寬是免費(fèi)的”

謠言:寬帶合同太便宜了,這一定意味著帶寬是免費(fèi)的。

事實(shí):帶寬不是免費(fèi)的,不同地區(qū)的成本可能不同,有些地區(qū)對(duì)使用的帶寬收費(fèi)明顯高于其他地區(qū)。

這是為什么呢?與商業(yè)服務(wù)器的價(jià)格相比,私人寬帶合同通常相當(dāng)便宜。寬帶合同非常便宜的原因是因?yàn)榇蠖鄶?shù)人會(huì)使用一小部分帶寬,而且很少使用。商用服務(wù)器則非常不同。它們通常大部分時(shí)間都在運(yùn)行,游戲服務(wù)器通常支持?jǐn)?shù)百名玩家的流量。因此,托管公司按每千兆字節(jié)使用量收費(fèi)是很常見的。

這意味著節(jié)省帶寬對(duì)于降低運(yùn)營(yíng)成本非常重要。除此之外,擁有一款帶寬使用率較低的游戲?qū)⒆尵W(wǎng)速較慢的玩家更好地享受你的游戲。

多人游戲中最常見的延遲原因之一是用戶家庭網(wǎng)絡(luò)的擁塞。雖然這種情況經(jīng)常發(fā)生,因?yàn)榫W(wǎng)絡(luò)上有其他繁重的流量,如視頻流,但降低游戲的帶寬成本仍有助于改善玩家體驗(yàn)。

打造你的下一個(gè)多人游戲

建立一個(gè)多人游戲雖然富有挑戰(zhàn)性,但在游戲完成的同時(shí)也非常有成就感。無(wú)論你是在打造下一部《皇家保衛(wèi)戰(zhàn)》,還是一部擁有舒適性的在線合作游戲,了解這些網(wǎng)絡(luò)代碼的細(xì)微差別都是非常有幫助的。

主站蜘蛛池模板: 国产精品久久久久久免费观看| 亚洲午夜精品国产| 日本免费高清一区| 欧美人成在线视频| 91精品视频免费看| 欧美一区二区视频在线| 国产va免费精品高清在线观看| 久久久精品影院| 青青青国产在线观看| www欧美日韩| 国产精品欧美久久久| 美女亚洲精品| 日本久久久网站| av观看久久| 国产欧美日韩高清| 久无码久无码av无码| 国产精品69久久久| 国产精品爽爽爽| 精品久久久久久无码中文野结衣 | 91国产精品视频在线| 国产一区香蕉久久| 久久久999成人| 久久婷婷开心| 欧美乱人伦中文字幕在线| 日韩欧美在线免费观看视频| 亚洲精品第一区二区三区| 99在线热播| 97精品一区二区视频在线观看| 国产精品黄色av| 国产精品久久久久久久久久 | 国产精品美女黄网| 久久久999国产精品| 精品日韩在线播放| 国产精品亚洲二区在线观看| 国产精品免费久久久| 国产精品久久久av| 91精品国产91久久久久久久久 | 国产精品视频不卡| 国产激情视频一区| 午夜久久资源| 日韩欧美亚洲日产国产|