導航:首頁 > IDC知識 > unity伺服器network

unity伺服器network

發布時間:2020-11-02 19:17:31

1、unity3d 網游伺服器端如何選擇

如果對樓主有幫助,給個採納好不,謝謝啦

Photon和KBEngineunity3d是最適用Unity3d游戲開發的兩個伺服器引擎,但它們還是有區別的,只有清楚地了解區別在哪才能正確使用,下面簡單描述下兩者的共同點和不同點。

語言

對於大部分的程序員語言簡直就是宗教信仰。

Photon使用C#開發,當然使用者也是用C#進行各類游戲功能開發。前後端同種語言,這對使用Unity3d游戲開發也有很大的好處。

KBEngine使用C++開發,邏輯開發是用python,也是很不錯很快速的。

開源與收費情況

Photon是Exit Games公司的產品,不開源,有好多種收費模式,官網上可以看到。開發階段可以用免費的license,後期可以看流量用戶活躍度來選擇付費模式。後續的支持,似乎是免費的,你可以選擇郵件或是到論壇發帖求助,當然是E文。

KBEngine是國人開發,開源免費,但從官網上並沒有看到商業使用的案例。有中文論壇,你可以在論壇上向開發者求助。

雖然兩者的模式不同,但作為一個Unity3d游戲開發者,我們最希望的其實是把游戲引擎當作一個安全穩定的黑箱。

操作系統

之前說了Photon使用C#開發很自然的,配套的工具也是使用C#,比如最重要的PhotonControl。所以開發環境和生產環境最好都是windows。

雖然在跨平台上有mono,在伺服器代碼部分是系統無關的,但是不管你信不信,我是不信它的一套窗體工具也能運行在Linux下。反正,官網說法是,開發和生產環境都是用windows。

KBEngine建議開發環境選擇Windows,生產環境選擇linux。畢竟你總不希望開一組伺服器打開9個Console窗體,一不小心把哪個點X了吧~

協議

Photon有自己的序列化反序列化方式,你也可以使用protobuf這類的來做應用層傳輸協議。

KBEngine在這方面表示不支持自定義協議,它幫你選擇了有效的方法來處理,如果你習慣了他規定的方式,會喜歡上的。

看法

在功能上,我毫無疑問地更喜歡KBEngine,腳本化和自動持久化是極富魅力的功能。而Photon幾乎沒做這方面的功能,可能和老外的觀念有關系。就目前我對兩者功能的理解看來,Photon其實是個和SuperSocket差不多的東西,而SS是作為輕量級伺服器框架存在的,Photon卻是說自己是Unity3d游戲引擎,除去提供的MMO示例代碼(未解讀),沒看到什麼游戲引擎的魅力。

2、unity3d伺服器怎麼給客戶端發數據

說的是什麼情況下的吖?如果是Linux C語言編程的話,可以用read,fread,recv,recvfrom等等函數來讀取伺服器發送的數據吖。

3、unity3d伺服器怎麼給客戶端發數據

u3d自帶的network組件局限性還是太大了...用socket就可以了吧,再簡單一點用tcpclient/tcplistener,數據發送的包使用序列化方式

4、unity游戲開發中資源上傳的伺服器是怎麼創建的

只是負責驗證用戶名和密碼,驗證之後返回token,token是有有效時間的,在有效時間內,並沒有保持連接的必要,所以,這里的RequestResponse可以做成短連接(http請求響應模式),提升並發。
如果超過了有效時間還沒有進入游戲,令牌失效,在登錄驗證時將被踢回重新獲取令牌。
登錄伺服器和網關之間需要有一個固定的連接傳遞新生成的令牌。

5、unity實際項目中有用自帶network做伺服器的嗎?

u3d自帶的network組件局限性還是太大了用socket就可以了吧,再簡單一點用tcpclient/tcplistener,數據發送的包使用序列化方式

6、unity3D 手機和pc通過wifi連接做區域網,手機連接不上ps的伺服器

先說明伺服器是什麼,如果是WEB伺服器或是FTP伺服器的,只需在內網上拉一根網線接入無線路由器,手機通過WIFI訪問內網伺服器。
如果是手機通過外網訪問內網的伺服器的話,則要有固定IP,通過固定IP所設置比如交換機NAT映射到內網伺服器的內網IP。手機只需在瀏覽器上輸入你的外網固定Ip就可以訪問內網伺服器了
希望採納!

7、阿里雲伺服器怎麼部署unity

unity有自己的Networking。具體可以查看官方API(英語不好不用擔心,直接試)
或者直接用C#寫個伺服器,網上關於socket通訊的一坨坨的,慢慢看,一點點試

8、我用Unity自己的Network類寫了一個伺服器,想用公網連接

這個可以考慮socket編程

9、在unity3d中伺服器確定唯一一個客戶端?

你的理解是對的,一個ip只能一個player,而networkview你加了幾個就是幾個

10、怎樣用unity unet做伺服器

Networking是一種軟體研發在跨平台路上更近一步的體現,真正做到了:anytime,anywhere,one code for all platform!
Networking出現之前,Unity仍然是一個客戶端游戲開發引擎。Networking出現之後,Unity甚至成為了跨客戶端服務端的游戲開發引擎。
同樣的組件在Unreal中早有產生,但追溯到最早的話,那可能就是國外各大游戲公司的私有引擎了。但Unity的威力在於其廣泛的普及程度,所以它是首次將該組件推廣至光羅大眾的商業引擎。
Networking本質上是對傳統C-S架構軟體下的網路層的高度抽象。
伺服器邏輯和客戶端邏輯在一個類裡面編寫(這里會帶來一些代碼整潔度上的麻煩~~)
伺服器和客戶端要做數據同步,不用發包了,在屬性前面加上[SyncVar]標簽就自動同步了。
客戶端調用伺服器,不用發包了,函數調用即可。
伺服器調用客戶端,不用發包了,函數調用即可。
帶來的好處太多都不用說了。
帶來的壞處,安全性上堪憂,設想一下,如果客戶端和伺服器邏輯都在一起,一旦客戶端被反編譯了,那麼是不是伺服器邏輯都泄漏了。
帶來的壞處2,伺服器程序員可能不需要寫游戲邏輯了。。

與unity伺服器network相關的知識