久久精品人妻一区国产传媒国产精品|51黑料吃瓜网在线观看色噜噜色偷偷30根|久久久久久久久国产在亚洲中文字幕人妻|91av福利china人妻91九色|国语精品视频自产自拍|色婷婷av一区二区三区久久|国产91丝袜在线|亚洲二区中文字幕|91久久精品中文内射|中文 欧美 日韩,3d色噜噜狠狠一区二区三区,国产精品福利99,国产精品传媒网站

Unity:事實or謠言,,揭秘三種常見網絡代碼誤區(qū)

文章來源: 作者:frank 發(fā)布時間:2021年12月03日 點擊數: 次

創(chuàng)建并運營一個多人游戲并不容易,而且與單人游戲相比,,往往涉及更多的部分,,因為所有的東西都需要與其他玩家同步,以創(chuàng)建一個一致的,、共享的世界,。

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

然而,,“網絡代碼”這個詞常常會為人們帶來不好的印象,,經常被歸咎于延遲和糟糕的多人游戲體驗,。

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

什么是網絡代碼,?

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

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

雖然我們可以通過直接調用傳輸的發(fā)送功能來手動發(fā)送這些數據包,,但這種模式很快會讓沒有多少多人游戲經驗的程序員們難以承受,。

網絡代碼庫利用了網絡變量和遠程步驟調用(RPC)等功能,將發(fā)送的數據包從游戲代碼中抽離出來,。

Unity有兩個網絡代碼包,,游戲對象的網絡代碼(預發(fā)行)和實體的網絡代碼(實驗版)。

三個常見的網絡代碼誤區(qū)與事實

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

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

事實:多人游戲實施起來很有挑戰(zhàn)性。如果你想讓玩家在游戲中體驗多人游戲,,那么你應該在設計和開發(fā)中盡早考慮添加多人游戲,。

為什么呢?多人游戲幾乎觸及了游戲的每一個方面,,所以它也影響了游戲的發(fā)展,。例如,如果在一個游戲中有一個庫存系統,,多人游戲將需要同步庫存物品到服務器,。

在單人游戲體驗中,也有許多相當容易實現的東西,,當你試圖將它們放入多人游戲時便會非常的困難,。

你有沒有想過為什么大多數多人游戲使用運動角色控制器,并且只有非常少的物理交互,?這些游戲之所以這樣做,,是因為實現在多個客戶端之間共享物理模擬和預測物理模擬是一個真正令人頭疼的問題,即使對有經驗的開發(fā)人員來說也是如此,。

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

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

謠言:對于多人游戲來說,,延遲越低越好。因為延遲越低,,游戲體驗越好,。

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

為什么呢,?為所有玩家提供流暢一致的體驗并不總是有利于實現低延遲,。

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

這里提到的緩沖技術不是立即處理來自網絡傳入的數據包,,而是將數據包放入隊列,。在每個波動點期間(游戲模擬的單次更新),客戶端從隊列中取出(理想情況下)一個數據包,,并同時嘗試在隊列中保持一定大小的緩沖元素,。

這確保了當服務器每次發(fā)送一個數據包時,客戶端也總是每次處理一個數據包,。

但是為什么要這樣做呢,?原因很簡單,如果客戶端立即處理傳入的數據包,,它不是也會收到一個數據包嗎,?在完美的網絡條件下,這是完全可能實現的,,但是通過網絡傳輸的數據包可能都有不同的傳輸延遲,。

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

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

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

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

這里有一些不同的技術可以應用于獲得緩沖的平滑性而沒有延遲損失,。通過使用官方客戶端游戲將玩家角色的輸入立即應用到游戲當中,這使得本地玩家的延遲最小化,。其他玩家仍然可以緩沖數據,,讓敵方玩家顯示更流暢。

雖然這種方法對玩家來說感覺很好,,但它會導致其他問題,因為它使作弊變得容易得多,。

對于競技游戲,,可以使用一種稱為客戶端預測的技術。它所做的是立即應用本地玩家的輸入,,但服務器也會通過應用相同的輸入來計算玩家的動作,,并檢查客戶端是否執(zhí)行了有效的移動,并在必要時進行糾正,。

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

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

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

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

這意味著節(jié)省帶寬對于降低運營成本非常重要,。除此之外,擁有一款帶寬使用率較低的游戲將讓網速較慢的玩家更好地享受你的游戲,。

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

打造你的下一個多人游戲

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