好的,所以我意識到這已經被反覆討論了,因爲我已經閱讀了無數堆棧溢出線程以及網絡上的文章。我目前在VPS上運行TCP異步C#.NET服務器。TCP實時多人遊戲
我已經得到了這個適合多人遊戲大廳,如連接玩家遊戲和什麼不是。我的主要問題是遊戲開始時,因爲它變得非常塊。所以在我的研究
我發現了一些非常有幫助的插值線程,他們引導我走向基本(差異(Serverpos - Localpos)* Deltatime(服務器更新之間的時間?)*插值常量)。這在某種意義上是有效的,它平滑了幀速率,但我仍然在服務器更新時間上存在一時的滯後。
但是,我的主要問題是,我正在使用加速度計來更新每個播放器的位置,但是我的服務器無法收到該數據,並且像加速度計更新一樣快地處理它,導致它開始混亂。
所以今天我試着簡單地發送數據到服務器,但是我的最大傳輸時間大約是350MS,這使它無法將事故中的消息合併起來。
然後我遇到了「Dead Reckoning」,這在理論上是可行的,但是因爲你不會跟蹤理論上最新的槳位置。當球擊中你的對手槳時會發生什麼?你是否會自動將槳衝入位置並顛倒球的位置?
基本上,我認爲我只是通過理論化不同的方式來做一個大圈子。我也知道UDP,但我無法想象一個龐多人會要求我運行一個UDP連接,必須有一種方法來使用TCP。
無論如何,謝謝你們給我的任何幫助。我對此很陌生,我認爲在網絡網絡中已經迷失了方向。
這非常含糊。你有關於你正在談論的這些算法或技術之一的問題嗎?否則,這裏就不存在問題,因此,它確實沒有「答案」。我有點在「推測」一段中看到一個問題,也許你可以專注於這個問題? –
對不起,我想我的問題是關於人們如何通過TCP實現流暢的遊戲。我會在客戶端模擬球時每隔350MS發送一次Paddle位置嗎?那麼在更新期間只需使用航位推算法就可以了?抱歉含糊不清。 – peytoncas