Unity5.1 新的网络引擎UNET(一) 概括1
Unity新的網(wǎng)絡(luò)引擎UNET(一) 概括?? 孫廣東??? 2015. 7.12
Unity5.1?? ?為開(kāi)發(fā)者發(fā)布全新的多玩家在線工具、技術(shù)和服務(wù)。該技術(shù)的內(nèi)部項(xiàng)目名稱(chēng)為 UNET,全稱(chēng)為 Unity Networking。然而,我們的愿景卻不僅僅只是簡(jiǎn)單的聯(lián)網(wǎng)。眾所周知,Unity 公司的愿景是實(shí)現(xiàn)游戲開(kāi)發(fā)民主化。Unity Networking 團(tuán)隊(duì)尤其想實(shí)現(xiàn)多玩家在線游戲開(kāi)發(fā)的民主化。我們希望所有游戲開(kāi)發(fā)人員都能夠創(chuàng)建支持任意玩家數(shù)量的不同類(lèi)型游戲。
加盟 Unity 公司之前,Networking 團(tuán)隊(duì)成員主要從事大型多人網(wǎng)游,比如網(wǎng)絡(luò)創(chuàng)世紀(jì)、指環(huán)王 Online、龍與地下城網(wǎng)絡(luò)版、漫威英雄、極品飛車(chē) Online 和魔獸世界。他們熱衷于開(kāi)發(fā)多玩家在線游戲、技術(shù)和基礎(chǔ)架構(gòu)并擁有豐富的開(kāi)發(fā)經(jīng)驗(yàn)。
正如他們所說(shuō):”我們被Unity 公司的愿景所吸引,通過(guò)開(kāi)發(fā)多玩家在線技術(shù)來(lái)實(shí)現(xiàn) Unity 愿景,對(duì)我們而言是一個(gè)施展身手的機(jī)會(huì),我們沒(méi)有理由拒絕。因此,我們都辭掉原有的工作加入了 Unity 團(tuán)隊(duì),以便為實(shí)現(xiàn) Unity 愿景做出貢獻(xiàn)。現(xiàn)在,我們正努力開(kāi)發(fā)相關(guān)工具、技術(shù)和服務(wù),以幫助所有人都能實(shí)現(xiàn)多玩家在線游戲的夢(mèng)想?!?/p>
這當(dāng)然是一項(xiàng)偉大的事業(yè),但是,正如剛剛所說(shuō),這些事情我們過(guò)去都做過(guò),現(xiàn)在,我們都非常想去再次參與這樣的事業(yè),因?yàn)檫@真的很酷!。我們采用分階段實(shí)現(xiàn)目標(biāo)的方法去開(kāi)發(fā)技術(shù),Unity 開(kāi)發(fā)人員對(duì)此應(yīng)該非常熟悉。我們先發(fā)布第一階段的技術(shù),從用戶手上得到反饋,然后將所反饋的不足之處在第二階段的工作中得到解決,反復(fù)如此。
對(duì) UNET 而言,第一階段是多玩家在線技術(shù)基礎(chǔ)(稍后進(jìn)一步解釋)。第二階段基于第一階段,借助模擬服務(wù)器引入服務(wù)器權(quán)威游戲 (server authoritative gaming) 概念,之后有博文對(duì)此進(jìn)行詳述。第三階段是最后階段,我們想通過(guò)主模擬服務(wù)器賦予協(xié)調(diào)多個(gè)模擬服務(wù)器的能力。與通常情況一樣,這一技術(shù)具體的最終發(fā)布日期尚不可知,因?yàn)槲覀兂3E龅阶兓?#xff0c;尤其是收到用戶反饋之后。但是,我們可以肯定第一階段將成為 5.x 發(fā)布周期的一部分,而第二階段正處于研發(fā)階段。
那么,為什么我們說(shuō)第一階段是多玩家在線技術(shù)基礎(chǔ)?主要特征如下:
1. 基于 UDP 的高性能傳輸層支持所有的游戲類(lèi)型
2. 底層 API (LLAPI) 通過(guò)類(lèi)似套接字的接口提供全面控制
3. 高層 API (HLAPI) 提供簡(jiǎn)單、安全的客戶端/服務(wù)器網(wǎng)絡(luò)模型
4. 匹配服務(wù)提供基本功能,讓一個(gè)用戶創(chuàng)建多人模式并允許他人加入
5. 中繼服務(wù)器解決連接問(wèn)題,以便玩家在使用防火墻的情況下能相互連接
我們的舊有系統(tǒng)中存在一些需要我們?nèi)ソ鉀Q的固有缺陷,而隨著我們的目標(biāo)變得更為遠(yuǎn)大,我們明白我們必須一切從頭開(kāi)始。既然我們的目標(biāo)是支持一切游戲類(lèi)型和任意數(shù)量的連接,我們首先開(kāi)發(fā)基于 UDP 的新型高性能傳輸層。盡管使用 TCP 可以很好地開(kāi)發(fā)出很多游戲,快速動(dòng)作游戲需要使用 UDP,因?yàn)槿绻麛?shù)據(jù)包不按次序到達(dá)的話,TCP 會(huì)截留最近收到的數(shù)據(jù)包。
在這個(gè)新的傳輸層的基礎(chǔ)上,我們建立了兩個(gè)新的 API。高層 API (HLAPI) 提供簡(jiǎn)單、安全的客戶端/服務(wù)器網(wǎng)絡(luò)模型。如果您不是網(wǎng)絡(luò)工程師,但想要輕松開(kāi)發(fā)一款多玩家游戲,HLAPI 可能會(huì)符合您的興趣。
我們也希望解決用戶反饋的有關(guān)舊有系統(tǒng)的問(wèn)題。有些用戶需要較底層的訪問(wèn)權(quán)限,以便實(shí)現(xiàn)更大的控制權(quán)限。于是,我們采用底層 API (LLAPI) 為傳輸層提供一個(gè)更加類(lèi)似于套接字的接口。如果您是網(wǎng)絡(luò)工程師,需要定義自定義網(wǎng)絡(luò)模型或需要微調(diào)網(wǎng)絡(luò)性能,LLAPI 將會(huì)符合您的興趣。
匹配服務(wù)用于配置多人在線游戲空間,以便玩家相互尋找。最后,中繼服務(wù)器確保玩家始終可以相互連接。
根據(jù)過(guò)去的經(jīng)驗(yàn),我們知道開(kāi)發(fā)多玩家在線游戲需要付出很多心血。而多玩家在線技術(shù)基礎(chǔ)是一套全新的、易于使用的專(zhuān)業(yè)聯(lián)網(wǎng)技術(shù)、工具和基礎(chǔ)架構(gòu),方便開(kāi)發(fā)人員輕松開(kāi)發(fā)多玩家在線游戲。首先,可以這么說(shuō),開(kāi)發(fā)多玩家在線游戲需要比較豐富的網(wǎng)絡(luò)和協(xié)議知識(shí)。您可以比較痛苦地去親自學(xué)習(xí)這些知識(shí),也可以請(qǐng)網(wǎng)絡(luò)工程師幫忙。一旦越過(guò)這道障礙,您需要解決的問(wèn)題是讓玩家能相互找到。而解決這個(gè)問(wèn)題之后,您需要做的便是讓玩家能夠相互連接,如果玩家使用了帶有 NAT 的防火墻,這可能會(huì)有些麻煩。然而,解決了所有這些問(wèn)題之后,意味著您創(chuàng)建了一系列相關(guān)的基礎(chǔ)架構(gòu),創(chuàng)建這些基礎(chǔ)架構(gòu)的過(guò)程本身并不屬于游戲開(kāi)發(fā)過(guò)程,也并不好玩。到了這一步,您不得不費(fèi)心思考如何動(dòng)態(tài)地?cái)U(kuò)展您的基礎(chǔ)架構(gòu),要做好這個(gè)工作需要事先擁有較豐富的相關(guān)經(jīng)驗(yàn)。
我們的第一階段解決了所有這些難題。有了 HLAPI,就不再需要有豐富的網(wǎng)絡(luò)知識(shí)。而如果您是網(wǎng)絡(luò)工程師,想以自己的方式解決問(wèn)題,則 LLAPI 可以幫得上忙。匹配服務(wù)可以解決玩家相互尋找的問(wèn)題。中繼服務(wù)器可以解決玩家相互連接的問(wèn)題。而且,我們也幫您解決了建立相關(guān)基礎(chǔ)架構(gòu)和動(dòng)態(tài)擴(kuò)展基礎(chǔ)架構(gòu)的問(wèn)題。匹配服務(wù)和中繼服務(wù)器駐留在 Unity 的多玩家云 (Multiplayer Cloud) 中。因此,不只是物理服務(wù)器根據(jù)需求擴(kuò)展或收縮,相關(guān)進(jìn)程也會(huì)擴(kuò)展或收縮。
總結(jié)
以上是生活随笔為你收集整理的Unity5.1 新的网络引擎UNET(一) 概括1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: LM小型可编程控制器软件(基于CoDeS
- 下一篇: 近3万个斗图头像图片大全ACCESS\E