前言
熱更新的內容可以是美術資源,可以是代碼,但相對來說,美術資源的更新不會受到約束,代碼實際上是重災區。本文介紹的主要是客戶端代碼熱更新。
熱更新對于開發者來說是一件麻煩事,特別對于看重效率、便捷性和結構的程序員來說,熱更新就是運營人員的不懂技術的表現。然而,對于上線才是剛剛開始的網絡游戲,特別是手游來說。熱更新是極為重要的基礎功能。
客戶端為什么要熱更新?
適應上線需求
對于手游客戶端來說,受到蘋果審核的約束,一次審核提交需要10~20天不等的等待時間,而這段時間,開發進度依然會推進很多。
一旦手游上線,第一個版本在玩家瘋狂行為下,出點問題是必然的,所以”上線更”就成了家常便飯. 如果你要說,必須大包,無法熱更,那么10~20 多天后,游戲估計就沒啥人了,更別說渠道,發行投入巨大資金進行推廣之下讓玩家迎來的一堆bug的版本以及所謂程序員的傲慢和清高。
熱調試,熱開發,熱發布
除了線上問題之外,由于Unity3D為了適應64位應用需求,將C#編譯出的IL代碼利用il2cpp第三方庫編譯成為c++。效率提升了倒是好,但工程編譯和發布時間變得相當感人,沒個1~2個小時完全搞不定. 即便加裝ssd,為了修改一個bug,也不知道要等多少根煙的時間…
只要核心功能不變化的情況下,完全可以讓熱更新成為開發期間的好工具,lua代碼修改后,馬上可以在手機上看效果,沒有編譯,發布的時間損耗,其實反而提升了開發效率。
對于服務器來說