ETH官方钱包

創作內容

5 GP

拳線交鋒-開發日記4

作者:KK│2021-04-23 02:10:34│巴幣:10│人氣:175

搞笑的事情,認真去做,我覺得這就是 Kuso 的精神。

連線部分小有進展,先來報報喜。

自從上次看了趴趴鼠大大的這篇,就把它筆記起來了;

心動不如馬上來實作,所以這次選用的連線插件是 Photon

連結是官網,但好好去逛一下,其實應該還是一頭霧水,

網路上的教學也不少,我找到一篇還不錯,基本上也是照著上面做的。

=> 是 PDF 檔。

所以看完官網後,若想體驗,其實真正有用的連結應該是~~~

Unity asset store 上的這個 Pun2!!

看過官網介紹應該就知道,它其實因應遊戲的規模的玩法,

有不同的連線服務可以使用,而 Pun 這個是有所限制的免費服務。

限制在哪呢?我照著步驟去申請了一個 photon cloud

並新增一個自己的專案名稱,就能得到一個 App id

下面是後臺統計資料。



這個 CCU,即是 Concurrent User 的縮寫,亦指同時在線玩家數;

因為我有在自己測,所以會有 2 個,這是正常的。

而免費服務的限制就是,最高只能允許 20 人在線,

另外傳遞的資料大小也有限制,若是同步的資料很複雜又龐大,可能就會超出免費提供的大小,

當達到限制時,服務就會暫停,遊戲內的玩家就會斷線。

=> 在這個情況下,應該還是綽綽有餘讓我拿這個專案練習啦XD




它的連線模式是,房間制的,每一個遊戲本體都能擔任主機或者客戶端,

真的實際接觸了才發現,比我之前存的幾個插件跟 3、4 年前的技術都還方便,

由於平常的刷新,就是交由主機那邊處理大部分的邏輯,

所以我稍微針對我原本的單例,加了很多判斷去做分工,

做完這些前置作業後,就可以來使用它神奇的地方。

Photon 是怎麼去做到兩端的溝通的??




我的認知跟自己實驗的結果如圖顯示。

它會需要一個 Photon View 當媒介,去監聽場景中所有繼承 IPunObservable 的物件,

並將需要同步的資訊,利用 OnPhotonSerializeView 去同步給 Client

但光靠這樣並不足以讓所有玩家的資訊都一致,也是會有需求是客戶端自己操作的指令,

需要上達給主機知道的,或者想同步給其他客戶端,這時候就要靠 RPC

使用方式就是在那個方法用標籤就可以了。




接著在同步的那個時機點呼叫,寫法有點像 invoke,是丟方法字串作參數。

相關寫法可參考這邊,官方的範例




RPC 對象有很多種,可以只發主機、除了自己外的其他人、或全部都收得到......等。

我在測試的時候還是有幾個有點奇怪,可能是我自己的遊戲邏輯有問題,

但至少如圖顯示,RPC 應是雙向的無誤。

如此一來,就能先實作連線選角的部分,來測試看看。




先新增一個連線對戰模式,並有兩種方案:當主機的還是要當挑戰者。

當然選挑戰者也有防呆,就是目前 cloud 上沒有房間的情況下,那就交給你創建一個房間。

為了要截自己畫面,有開兩個遊戲測試的感覺,

用了另外一套錄影軟體,加上 Gif 想要壓得很小......結果解析度就慘不忍睹,請多見諒。

我之後會再改善,效果差不多如動圖所示。

真的跟趴趴鼠說的一樣,一臺電腦同個 ip 也能測,非常方便!

但是就是要補上很多防呆,跟連線異常返回地方的介面處理,

原本的流程瞬間複雜了一大塊,所以一直在修改跟微調。

下一部分就是實作角色的移動同步跟攻擊指令同步。

最後這篇寫得是稍微有點雜亂無章,請多包涵@@

另外有錯之處歡迎跟我說,我會馬上修改。

希望可以把這個插件也吸收成為一個新的武器,

加油>Q</
引用網址:http://www.jamesdambrosio.com/TrackBack.php?sn=5129759
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:Photon

留言共 3 篇留言

殘月C.moon
遊戲可以連線囉w KK好厲害( ′▽` )?

04-23 03:36

KK
騙吃騙喝而已,人數限制下,不知道能做出什麼有創意的東西,16 個人一起玩的恐怖遊戲不知道還會不會恐怖[e12][e12]04-23 10:59
矮鵝
我有用過photon,他的在itch的網頁版和手機和pc遊戲也可以連線,但是有人數限制還有要錢,如果要突破人數限制又不用錢的話就用mirror,但mirror只能用pc下載版,網頁版和手機版連線不能,關於photon和mirror我最多就知道這些了,你的心得更詳細豐富

04-23 15:30

KK
酷耶!不會唷,這些意見也非常有幫助,非常感謝。Mirror 我都直接聯想到 MMO,不知道會不會有一天需要到這種規模,不過也是很多東西摸了之後才有所體悟的,矮鵝也一直在精進阿,一起加油吧 [e19]04-23 16:11
千羽
加油(*?▽?)?一直搞不懂RPC到底要怎麼使用,看來我得加油了( ′▽`)

04-23 20:53

KK
能自己一邊開 Editor 加 Build 一個版本一邊測,就方便很多,我有時候為了看個 log 就重新打包XDDD,多試幾次你就會知道 RPC 跟自己想像的差異在哪,並非所有插件都是符合開發者邏輯的,有些也滿反人性的。千羽加油 [e22]04-23 22:41
我要留言提醒:您尚未登入,請先登入再留言

5喜歡★nigel0813 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:拳線交鋒-開發日記3... 後一篇:Unity Input ...


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情? 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】