遊戲熱更新雜談

2021-09-22 02:24:24 字數 1082 閱讀 6268

遊戲熱更新的內容一般可以是美術資源,也可以是**,但相對來說,美術資源的更新不會受到約束,而**的更新在實際上是重災區,以下主要介紹的是**的熱更新。

熱更新對於開發者來說是一件麻煩事,特別對於看重效率,便捷性和結構的程式設計師來說,熱更新就是運營人員的不懂技術的表現。

然而,對於上線才是剛剛開始的網路遊戲,特別是手遊來說,熱更新是極為重要的基礎功能。

客戶端適應上線需求

對於手遊客戶端來說,受到蘋果審核的約束, 一次審核提交需要10~20天不等的等待時間。而這段時間,開發進度依然會推進很多。

一旦手遊上線,第乙個版本在玩家瘋狂行為下,出點問題是必然的,所以」上線更」就成了家常便飯。如果你要說,必須大包,無法熱更。那麼10~20多天後,遊戲估計就沒啥人了。 更別說渠道,發行投入巨大資金進行推廣之下讓玩家迎來的一堆bug的版本以及所謂程式設計師的傲慢和清高。

以下是unity3d的幾種熱更新方式:

基於c#, 使用動態載入assembly反射更新**

這種方式在安卓上完全可行,對現有架構無需大的修改,一樣使用c#和unity3d的方式進行開發。但在ios上受到限制,因此對於全平台首發的遊戲,或者雙平台都要上的遊戲,已經慢慢的不使用這種方法進行熱更新了。

基於lua,將lua**視為資源,動態載入並執行

雲風團隊早期研究出的unilua是基於c#編寫的lua虛擬機器來執行, 而且只支援位元組碼解釋,因此無法做動態功能,效率奇低。後期,ulua的出現,徹底將lua作為比較正統的更新方式存在。ulua基於tolua庫進行封裝,新增了一些便捷封裝,**打包和基本的框架。

tolua是乙個基於c版lua上擴充的庫,以靜態鏈結庫方式與unity3d**鏈結。因此可以說tolua是跑在c層上,速度不亞於c++和lua的組合。基於lua的更新方式,無論跨任何平台都可以使用同一套**和工作流進行,從而避免很多麻煩,成為現在主流的開發方式。

當前中國大環境下的玩家和各種氪金理由與純的不能再純的遊戲人的基本願望是衝突的。然而國外遊戲的各種設計和機制,暴雪戰網更新不及時,版本不對沒提示,這些基本錯誤在中國的網遊都不會出現的。

技術上無法趕英超美的我們,在體驗上已經輸出了我們的價值觀,老外們都在學。對於程式設計師來說,只是多貼近玩家,多了解外面的世界而已。

**:

遊戲大版本更新和熱更新

一般來說,不能通過小版本更新解決的問題,才會用到大版本更新,例如,不可熱更的遊戲 而熱更新是建立在每次大版本更新的基礎上進行的更新,因此,這2種更新方式應該互相承接。我們可以通過md5檔案和更新檔案以及版本號來實現大版本更新和熱更新。遊戲的版本號由大版本號 資源版本號構成,每一次大版本更新,大版本號...

war包熱更新 electron 熱更新實現方式

1 electron是乙個外殼 html js css 資料報 按照官方的邏輯,採用electron builder的時候 會直接打包成asar 如果單單是打包html檔案也就算了,關鍵裡面還打包的node module 整整100mb 我只更新個html,不可能對node module重新打包吧。...

war包熱更新 專案優化之熱更新

方案 不加固的apk 1 支援熱更新的手機 2 不支援熱更新的手機 加固的apk web為了保證不支援熱更新的手機,也能公升級修復bug,並保證版本號不變,所以每次熱更新,後台都必選管理所有渠道的apk,也即每次熱更新都必須提供所有渠道的apk。每次更新後台補丁時,都需要提供的檔案 1 通用補丁檔案...