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

lauhonyeung發表於2015-02-15

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

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

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

專案開發 講的是第一代,也很有參考價值。

The Making of Warcraft Part 1 The Making of Warcraft Part 2 The Making of Warcraft Part 3 中文版:

Patrick Wyatt:魔獸爭霸的製作過程 1 Patrick Wyatt:魔獸爭霸的製作過程 2 Patrick Wyatt:魔獸爭霸的製作過程 3 資源打包技術 MPQ是暴雪公司用於遊戲資料打包的工具,能夠把資源放在一個包裡,然後對其進行壓縮和加密。網上已經有很多的詳解:

MPQ Wiki MPQ介紹 MPQ Archives MPQ格式手冊 遊戲資源的壓縮、打包與補丁更新 網易的打包系統設計 MPQ Storm 暴雪MPQ庫的開源實現 MPQ Storm庫 原始碼分析 圖文並茂的原始碼分析 網路同步 Warcraft 3使用的是lock-step技術,就是多個玩家的計算結果必須一樣的,誰落後了就要大家等他同步上來。

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

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

更多的網路同步知識可以看這篇《每個程式設計師都該知道的網路同步知識》。

《魔獸爭霸III》是如何實現野怪同步的? 《魔獸爭霸》的錄影,為什麼長達半小時的錄影大小隻有幾百 KB? 編輯器 在Warcraft 3中還誕生了現在大火的Dota,這是因為隨遊戲附帶的編輯器有強大的編輯功能。暴雪開發了多款戰略遊戲,才有對這種型別遊戲的深刻理解。在我看來,最核心的機制為Event-Condition-Action這個邏輯。暴雪程式設計師為這套觸發器開發了大量預定義功能。比如Dota裡面的發兵:定義定時器Event,然後就觸發建立某某Unit的Action。

War3 World Editor分析系列 手把手開發Dota系列視訊 at Youtube How Dota AI Create 星際爭霸2編輯器的初接觸 尋路&AI 就隨手一點,魔獸爭霸裡的英雄如何找到通往終點的路? 即時戰略遊戲(比如 WAR3)的 AI 是怎樣實現的? 外掛 魔獸爭霸3的maphack製作教程(一)顯示敵對單位 魔獸爭霸3的MapHack製作教程(二)去除戰爭迷霧 地形 魔獸爭霸3的自動拼接地形渲染方式

相關文章