魔獸爭霸3技術分析資源匯總

jopen 9年前發布 | 11K 次閱讀 技術

原文  http://jjyy.guru/war3-tech/


玩了多年的魔獸、Dota,帶來了很多快樂,想八卦一下實現。本來打算自己分析的,由于網上已經有很多資料了,這里把相關的資料做個匯總。

歡迎同學補充,可以在聯系中給我留言,或者在評論中回復,我會陸續加上。

項目開發

講的是第一代,也很有參考價值。

中文版:

資源打包技術

MPQ是暴雪公司用于游戲數據打包的工具,能夠把資源放在一個包里,然后對其進行壓縮和加密。網上已經有很多的詳解:

網絡同步

Warcraft 3使用的是 lock-step 技術,就是多個玩家的計算結果必須一樣的,誰落后了就要大家等他同步上來。

lock-step的特點,這里有個 回答 講得很清楚。lock-step是不關心游戲邏輯的,只關心用戶輸入。 核心思想就是如果大家每幀計算結果一樣,那么只要保證大家的輸入和初始條件一樣,那么就能夠完成同步。 在手游中經常用偽隨機數做同步,比如《捕魚達人》。lock-step最麻煩的事情是容易產生蝴蝶效應,中間某個步驟計算結果不一樣,那么后面很容易放大,得到完全不同的結果。lock-step中,延遲的處理主要通過時間戳。

網絡同步常見的技術還有 狀態同步 ,這種技術在MMORPG中很常見。具體來講就是同步與玩家同一個區域的所有角色,這些角色身上的所有狀態都有自己同步的邏輯。比如角色行走,那么就會廣 播到同一個區域的玩家上,那么大家都會播放行走的動畫。而行走還有另一個結果,那就是發生位移,為了不影響玩家的手感,玩家的機器先執行,等服務器驗證后 再拉到“正確”的位置。由于網絡存在延遲,位移的同步都要做位置預測,常見的位置同步算法是 “Dead Reckoning - 航位推測法” ,充分考慮了延遲的情況。

更多的網絡同步知識可以看這篇 《每個程序員都該知道的網絡同步知識》

編輯器

在Warcraft 3中還誕生了現在大火的Dota,這是因為隨游戲附帶的編輯器有強大的編輯功能。暴雪開發了多款戰略游戲,才有對這種類型游戲的深刻理解。在我看來,最核 心的機制為Event-Condition-Action這個邏輯。暴雪程序員為這套觸發器開發了大量預定義功能。比如Dota里面的發兵:定義定時器 Event,然后就觸發創建某某Unit的Action。

</div>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!