遊戲熱加載、即時加載、熱更新、熱補丁原理流程圖

本文主要描述遊戲及軟件工程中的更新原理及流程,具體代碼會在一週內追加。
看什麼看
你怎麼又複製

一.熱加載實現流程

所謂熱加載,就是將資源放在服務器端,當客戶端運行時,先運行資源加載程序,待所有資源加載完畢再運行主程序

Created with Raphaël 2.2.0運行客戶端資源加載程序向資源服務器發送需求資源id接收服務端返回的資源數據主程序結束運行

看什麼看
你怎麼又複製

二.即時加載實現流程

即時加載分本地和遠程,不過原理都一樣:當客戶端運行時,每當遇到需要下載的資源的對象,用事先定義好的臨時對象佔位,與此同時下載相應資源。當資源下載完畢後,立即替換掉佔位對象。這個圖畫的優

Created with Raphaël 2.2.0運行客戶端主程序需要外部加載資源先使用預置的臨時資源代替向資源服務器發送需求資源id接收服務端返回的資源數據使用新資源替換臨時資源繼續運行yesno

看什麼看
你怎麼又複製

三.熱更新和熱補丁實現流程

檢查版本更新時需要決定如果版本較舊是否運行。如果只允許更新運行,就要設置程序必須聯網,並且版本最新。以unity項目爲例:

Created with Raphaël 2.2.0運行客戶端更新程序檢查更新文件夾:【PersistentDataPath】中是否有效驗文件(fileList.txt與version.txt)存在效驗文件從資源服務器下載驗證文件對比更新文件夾:【PersistentDataPath】與服務器下載的效驗文件有更新根據更新文件列表下載新資源並保存到更新文件夾:【PersistentDataPath】運行更新後處理程序(main.lua.txt)主程序結束運行從預置資源文件夾:【StreamingAssetsPath】複製效驗文件到更新文件夾:【PersistentDataPath】yesnoyesno

熱更新和熱補丁實現流程
老項目熱更新
推薦個博客,處理老項目熱更新是個不錯的方案
https://blog.csdn.net/RinKas/article/details/81020598

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章