建議答主不要把指令同步和幀同步混為一談

最新提问 3月 17 分类:吐槽 | 用户: 王旭初

本文主旨: 暴雪娱乐, 刀塔, dota

建議答主不要把指令同步和幀同步混為一談。
幀同步,應該是指每個固定時間周期(如100ms),客戶端和服務端同步一次數據。這其實和同步的內容是指令還是狀態沒有關系,理論上來說,幀同步也可以做到服務端計算並同步狀態數據。
采用指令同步還是狀態同步,完全取決於遊戲類型。譬如星際,War3這種RTS類遊戲,同時更新的單位上百個,如果采用狀態同步,勢必造成很大的通信數據量
至於是采用按幀同步還是狀態變更同步,則取決於對戰雙方對即時反饋的依賴性,如格鬥遊戲,每一個指令決策都高度依賴對方的當前狀態,要求狀態的強一致性,則必然采用幀同步。而如賽車類遊戲,MMORPG遊戲,只要保證狀態的最終一致性即可。
在我看來,同步應該從兩個維度來看。
1、同步方式分:按固定周期同步和一有狀態變更就同步。
2、同步數據分:指令同步和狀態同步。
至於說到的操作卡頓,完全可以通過客戶端預表現來解決。
发表于 3月 17 用户: Floated
兄弟,你真沒搞懂什麽叫幀同步。
不管幀同步還是CS,輸入包必須走Server轉,區別在於CS需要在服務器校驗,所以幀同步防不了全圖,但是CS可以防,就是因為CS會對視野裏的目標信息做裁剪下發。
幀同步客戶端最後的邏輯計算都是依賴於服務器的下行,如果你輸入指令自己直接在本地計算了,那麽如果這個包的上行丟失了,你和所有人的狀態全都不一致了,就會產生不同步,這是為什麽War3之前經常有的錄像是錯誤的,就是產生了不同步。
至於你說的客戶端直接表現動作,這更大可能是客戶端在渲染幀上先做了提前動作展示,這樣會更加平滑友好,最終傷害還是依賴於服務器下行計算。

1个回答

最新回答 3月 17 用户: 旅途
孟大大又亂點贊了。
答主你也是很敢說。
幀同步的含義是每一幀內容都需要同步。
本質上也可以做cs結構的。
星際1和街頭霸王都是用幀同步,特點是一人卡全都卡。
不管卡不卡,客戶端預播放表現,服務器校驗,這個的確是守望先鋒的模式,真正決定你是否打中的依然是服務器,所以守望先鋒沒有加速,十倍傷害掛,所有的掛都是透視和自動瞄準。
而fps好做外掛是因為外掛只需要處理把槍口指向目標這一個簡單的行為。
難封的原因是服務器確實給出了對局中所有人的數據,而外掛其實是模擬超高手鼠標粘人的操作。
單純從服務器而言,一個外掛透視能看見所有人並且槍槍爆頭似乎只是說明這個玩家超級的強。

相关问题

0 回答
最新提问 4月 27 分类:吐槽 | 用户: 余亦仗剑走天涯