2017-10-10 67 views
-1

我使用Unity與Lidgren網絡庫(服務器 - 客戶端架構)來開發具有透視性的遊戲並且看起來類似於Diep.io.但是,如果客戶端在拍攝時移動,客戶端可以看到子彈創建的位置距離播放器(服務器從客戶端接收到的最後一個位置)稍遠一點,但是由於延遲,我試圖使拍攝順利。處理類似於Diep.io的自上而下多人遊戲拍攝的最佳方法?

當前要拍攝,客戶端發送數據包到服務器,並且服務器在客戶端位置創建子彈。

像Diep.io這樣的遊戲如何在沒有任何明顯延遲的情況下處理拍攝?
你會如何處理類似於Diep.io的遊戲拍攝?

任何幫助表示讚賞。

回答

0

在多人遊戲開發方面沒有多過初學者水平,但這裏是我的2美分。

您可以按照本教程中的建議在一定程度上處理子彈延遲。

https://unity3d.com/learn/tutorials/topics/multiplayer-networking/adding-multiplayer-shooting

如果你看劇本有點下跌的一頁,他們有說的一部分。

// This [Command] code is called on the Client … 
// … but it is run on the Server! 
[Command] 
void CmdFire() 

使用可能有類似的方法,其中它可以在客戶端上調用,但在服務器上運行的庫。

除此之外,我有點好奇你爲什麼不使用內置的統一多人遊戲功能?它具有低級別和高級別的API。

+0

該技術仍然需要處理延遲,命令必須從客戶端發送到服務器。另外我使用Lidgren而不是Unity內置網絡,因爲Unet看起來對我來說更加複雜(可能不是),並不是所有的東西都按我的預期工作,也許以後我會嘗試移動到Unet,但是現在Lidgren已經足夠了。 – Alex

+0

它必須處理延遲是,不能完全避免。但正如你現在似乎也建議的那樣,試驗把責任放在客戶端或服務器上,可能會幫助你發現最佳的延遲方式。我相信Unity內置的解決方案是圍繞Unitys組件系統製作的,使其儘可能簡單易用。但是可能需要教程來緩解學習曲線。 – Doh09

相關問題