狀態(tài)同步核心原理剖析
2022-10-17 17:19 作者:游戲開發(fā)RAIN | 我要投稿
狀態(tài)同步是做網(wǎng)絡游戲必然要掌握的一種服務端/客戶端同步技術。什么是狀態(tài)同步,具體到游戲中是如何實現(xiàn)的,帶著這些問題本文將會從以下3個方面給大家詳細的剖析狀態(tài)同步。
1: 什么樣的游戲可以用狀態(tài)同步來實現(xiàn);
2: 服務器上如何跑游戲邏輯?
3: 服務器與客戶端如何同步?







當創(chuàng)建一個玩家登錄到邏輯服的時候,服務器中的3D世界就會創(chuàng)建一個這樣的數(shù)據(jù)對象。接下來就要嘗試讓這個對象在游戲世界中跑動交互起來,服務端的地圖如何做呢?其實地圖數(shù)據(jù)可以導出為地形高度圖(x, y, z)+道路連通數(shù)據(jù)(哪些是可以行走,哪些不可以行走)。這個對團隊的技術積累是有一點要求的。根據(jù)游戲不同的類型來做地圖編輯器,來采用最合適的技術。同時客戶端+服務端都要使用這套,客戶端有地圖編輯器工具編輯地圖的地形+烘焙地圖連通數(shù)據(jù),能將這些數(shù)據(jù)按照對應的格式導出給服務端用,服務端使用這些數(shù)據(jù)利用上面的Update來進行迭代計算(和客戶端開發(fā)的Update迭代是一樣的)。
地圖技術+尋路導航解決以后,其它的推動游戲計算的也移植到到服務端,比如物理引擎,我們可以在服務器上部署一個物理引擎,然后從服務端的update來做物理引擎模擬迭代,再把物理剛體位置旋轉等同步給服務端上的玩家數(shù)據(jù)對象,這樣讓服務器上也可以跑物理引擎。具體可以參考我們的《內置定點數(shù)物理引擎系列》的文章。


今天的狀態(tài)同步就分享到這里
標簽: