之前查資料時逛到很多不少很棒的 Github 套件分享,
我都馬上 Fork 一份,
大大們的技術分享文我也都 Fork 一份。
這幾天看一下列表,
那個量已經成長的令人無法忽視了,
待研究的項目越來越多,只會讓人越來越懶得看。
只好開始一個一個消化它們。
這是一個提供了相當穩定的 UDP 連線架構的 Library。
總共有 136 個人在關注、17,000 多人給予評價、317 個人也 Fork 一份,
最近的一次更新是在 25 天前,
講這些數據不是要說它有多厲害,
而是這麼多的人當中,如果剛好也有人看到我這篇文章的話,
可以交流一下喔,我正在學習中。
概念
使用這個套件,你的 Unity 版本要求在 2018.1.9f1 以上。
版本低不代表完全不能用,是因為他們沒有測試,不保證沒問題。
功能介紹,在同樣的一個遊戲專案,
可以讓玩家選擇是否要擔任主機,
並可讓其他人連線到你的遊戲,
不需要準備額外的 server,
在我的定義叫做開房型的伺服器架構。
主要就是使用已經包好的 LiteNetLib 這個 DLL。
當然,所有程式碼都
開源,你可以直接看怎麼寫的,甚至客製化修改。
主要功能在處理客製化事件跟分散式的物件,
可以控制物件的生命週期跟狀態同步。
那麼,來講講缺點。
像這種 Peer to Peer 的連線方式,
總共四人一起遊戲,一人擔任房主,其他三人是客人。
某個客人撿到一個寶箱了,他高興的手舞足蹈,
但是另外兩個客人並無法知道這件事,
一定得透過這個撿到寶箱的客人,先跟房主說,再由房主將這個資訊各別同步另外兩位。
=> 是三條各自獨立的線
你的所有程式碼功能都要想好,兩端的寫法。
另外較為人所知的大問題就是,
這種開房型的,如果是做成競賽類型的遊戲,
很容易被惡意攻擊,例如某個玩家很想贏,他就去攻擊對方連線,
想辦法讓對手延遲、斷線......等,也就是公平性跟作弊的問題。
範例的部分很少,看完跑一次就大約可以知道要做啥。
我是想嘗試一個開 server,一個扮演 client 亂玩,
但是!開兩個 Unity 是不行的,會跳出這個問題。
我將一個打包成 server,另一個繼續用 Editor 感覺是有看到成功......(?)
但,客戶端還是跳那個我用了同一個 ip,好麻煩阿~~
假設我之後想把他應用在遊戲裡,
我是打算開成兩個遊戲端,兩邊一起玩兩邊互動,
測試也方便,有沒有大大有在同一台電腦,執行兩個遊戲然後一起玩的技巧嗎?
目前我這邊是比較麻煩變出第二台電腦,
再弄一個環境出來是有點困難的,所以......卡關了XD"
嘛,本來就不可能這麼順利啦,
一下仔就弄出一個簡易型遊戲用伺服器架構也太誇張ˊˋ
後面就來閒聊收個尾,
我之前在網路這塊的經驗,所使用的架構是世界一服,
額外租借伺服器、放上相關腳本、也準備好資料庫的部分,
這樣的規模如果拿來做 Game Jam,
是滿瘋狂的XD"
這種時候就會需要不同的戰術,
用不同的角度去看你想要的專案需求。
今天的插件或許就有派上用場的一天。
以上:)