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,伺服器程序員可能不需要寫游戲邏輯了。。