<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      千萬級產品背后的技術邏輯:同趣科技 CEO 詳解小游戲性能調優策略

      0
      分享至

      小視作為輕量級內容載體,對性能要求非常高。同趣科技 CEO William 博士在今年的 Unite 大會上分享了團隊在框架設計、啟動優化、CPU/GPU 協調、內存與資源管理等方面的優化經驗,并介紹如何借助對小游戲友好的團結引擎,實現性能和效率的突破。


      William:各位開發者朋友們,大家早上好!很榮幸有機會在這里跟大家分享“小游戲平臺性能調優策略”。大家都知道小游戲的用戶對性能要求特別敏感,因為它受性能所限。無論是資源、還是空間,都比較有限。開始之前,先介紹一下我們公司。我們公司目前已經成立超過 10 年,在杭州,早期主要是做“出?!钡?,近兩年有在聚焦做國內的一些小游戲,做過的產品目前也已經超過了 100 多款。

      下圖是近兩年有登陸過各個榜單 TOP1 的部分產品,大部分都是益智休閑類,這些產品全部都是千萬級以上,部分都是“億”級別的一些產品。


      第一款《箭頭消消消》是 2023 年初做的一個產品,那時候整個市場環境都在用別的引擎在做 2D 類的產品。我們其實希望做出差異化的產品,當時 Unity 在適配小游戲上還不是很成熟,比如一款產品、一個游戲加載可能就需要 10 秒、有些甚至超過 20 秒,用戶的體驗非常差。但是我們依然堅信 Unity 的游戲在美術表現上會更細膩一些,其他方面會做得更好,所以當時 Unity,而且無論是微信團隊或者抖音的團隊,也給了我們大力的支持。所以在這里,也特別感謝 Unity 的團隊。

      第二款《打螺絲達人》是大家可能經常在朋友圈看到的。第三款是我們做的一個卡比巴拉元素的一個產品,當時在國內整個引起的一個卡比巴拉的一個熱潮。最后一個是《豬了個豬》,今年上半年爆發的一個產品,目前用戶已經過億。在制作《豬了個豬》的過程中,我們在技術上也踩了很多坑。之前在其他平臺的幾次分享,我都是分享從立項到調優、到買量,都是去聊運營、聊產品,今天是第一次在這個平臺去聊技術。我們也樂意把過程中積累的經驗,今天毫無保留的分享給大家。

      首先,我們得明確小游戲性能的核心痛點:內存受限,加載要求高,多平臺適配難。針對這些痛點,我們總結了 5 大優化方向:

      框架與資源管理優化

      預制體:首先可以提高復用性,通過預制體,比如結算界面、皮膚商店界面,可以批量的生成實例,減少重復創建開銷、提升加載效率;其次預制體可以統一管理,修改預制體參數能自動同步到所有實例,降低維護成本,提升開發效率;第三是性能優化,預制體支持安需加載,減少運行時資源占用,優化性能表現;最后是場景結構清晰,預制體可將復雜場景節點模塊化,提升 Hierarchy 可讀性,為后續優化的提供清晰的基礎。


      對象池:可避免頻繁創建銷毀,對象池可復用頻繁生成與銷毀的對象。以《豬了個豬》為例,角色、拖尾特效等,可以減少內存分配與回收。同時可以降低 GC 壓力,減少垃圾回收觸發的頻率,降低內存的抖動與程序的停頓。從下圖中可以看出來,它提升了游戲的穩定性和流暢度。此外,對象池可以有效降低 CPU 的負擔,特別適用于微信小游戲或者抖音小游戲。這些對性能特別敏感的平臺,也包括鴻蒙或者其他 OV 系統。因為現在的硬核渠道也增長迅猛,或者說像硬核聯盟、小米渠道等等。


      設計模式:合理使用設計模式,減少代碼耦合度,方便閱讀和維護。但過度使用,可能會增加代碼量和影響性能。

      代碼層性能提升策略

      這里面有兩個“避坑指南”和一個“加分項”:

      • 分幀加載/處理機制

      分幀加載/處理核心思想:將原本集中在一幀內完成的密集任務,分攤至連續的多幀中執行。

      • 啟動速度與主包精簡策略

      大家都知道小游戲主包要求越小越好,主包越小首屏展示越快、用戶流失越少。通過資源分包、壓縮紋理與音頻手段,可以精準主包。另外,就是首場景的異步加載,實現用戶點擊即進入游戲就能看到畫面,降低流失率、提高啟動的速度。

      最后就是結合首場景異步加載策略,優化啟動流程。這個也是微信小游戲提升留存的一個關鍵環節,大家都知道對于小游戲來說其實需要跟運營去結合、跟買量結合。我覺得性能應該對留存的幫助是特別大的。


      剛才看到的幾款產品其實基本上都已經調優超過三年,但是一直還在調,這些基本上都是兩三年前的產品。我們為什么一直還在調?我們其實因為是買量結合,也能實時看到這個真正投放到底有沒有效果,這些調優的反饋會比較及時。

      切勿在 Awake 回調函數中執行復雜邏輯

      在 Awake 中避免放置復雜邏輯是 Unity 開發中一條至關重要的性能優化準則,尤其是在微信小游戲中。所以如果 ScpritB 的 Awake 里有一段代碼需要依賴 ScpritA 的初始化,而 ScpritA 的 Awake 還沒執行,你就會得到一個 NullReferenceException。如果在 100 多個對象池的 Awake 做的耗時操作(如查找物體、加載資源、復雜計算),這些操作會疊加起來阻塞主線程,導致場景加載出現一個巨大的卡頓峰值,進度條停滯不前。對于微信小游戲來說,首場景加載時間就是生命線,因為用戶如果卡頓 1 秒鐘可能就丟失一大批。如果在關鍵節點卡頓,基本上這個用戶就流失了,所以必須盡一切可能縮短這段時間。在 Awake 中過早地加載大量資源或實例化對象,會導致內存瞬間飆升,大量資源在場景加載初期就被塞入內存,無論你是否立刻需要它們,無法優雅地管理,就失去了按需加載和分幀初始化的機會。正確的做法就是 Awake 只做簡單的初始化,在 Start/OnEnable 中去做一些邏輯。

      CPU 與 GPU 協同優化

      下圖是小游戲一幀的流程,技術人員應該都比較清楚。比如說我們從一開始執行游戲邏輯、物理,再到 CPU 的準備工作,之后 CPU 再將 DrawCall 的資源提交給 GPU 處理,以及最后到 GPU 的渲染,包括輸出到屏幕上。


      做小游戲,我覺得性能要求特別高,所以可以用一些 Unity 自帶的 Profiler 的性能分析工具。如下圖所示,左側是性能分析器模塊,右側是幀圖表。這些模塊的作用,比如 CPU 可能會顯示各個函數跟模塊的 CPU 耗時,支持展開調用棧、定位耗時函數,以及包括 GPU 耗時的一些需要支持的平臺和驅動、內存分布等等都有。所以我覺得在開發小游戲的過程中,這些工具可以用起來。


      下圖是我們 Profiler 上的一個截圖,大家可以看一下。主流手機一般都是在 60 幀,一幀大概就是 16.66 ms。如果超過 16.66 ms,CPU 處理就過大,可以考慮把 CPU 部分功能分攤給 GPU,降低 CPU 的壓力,比如存在大量動畫節點時可以使用 GPU Skinning。例如:原來給 CPU 處理之前,可能就是基本上要到 20ms,部分工作交給 GPU 以后就能達到 16.6ms,幀率能夠達到 60 幀以上。


      下面介紹 GPU Skinning。對于需要極致性能或有特殊需求(如大規模人群、頂點動畫)的項目,可以使用 Compute Shader 來手動實現 GPU Skinning。工作原理就是在 GPU 上并行計算所有頂點的最終位置,將結果寫入一個 ComputeBuffer 中。然后在渲染時,標準的不含皮膚邏輯的頂點著色器直接從該 ComputeBuffer 中讀取最終的頂點位置。優點是性能最高,靈活性最強,可以處理非常規的動畫效果。缺點就是實現操作比較復雜。

      下方是我們使用前后的對比圖。未使用 GPU Skinning,可能 GPU 耗時就是 30 多 ms,用完后就可能達到 16.6ms,大概 60 幀率。使用過后的一個效果就是提升了幀率,游戲更加流暢,減少 CPU 的處理壓力,有效降低發燙和發熱。特別是對于 iPhone 來說,大家知道 iPhone 手機玩小游戲其實發燙就特別明顯。所以這些對于規模上一定量級的小游戲,我覺得這一點處理特別重要。


      另外一個模塊,講一下內存與資源的優化策略。紋理壓縮可以采用 ASTC 等格式壓縮紋理,貼圖 maxsize 盡量不要超過 1024。音頻處理,音頻資源盡可能勾選強制單聲道。大家都知道聲音文件是很大的,在小游戲這種對內存要求極高的,所以你可能要稍微損失一點這個效果。盡量避免使用 RenderTexture,盡量減少 RenderTexture 的使用;同時要做到主動的釋放資源,及時釋放不使用的資源,比如使用對象池來頻繁創建銷毀的對象。還有就是合理地觸發 GC,比如每局游戲的開始、結束或者場景切換時,主動觸發垃圾回收。針對 iOS 跟平臺,也要采取差異化不一樣的 GC 控制策略。

      高性能與 JIT

      高性能模式下,內存可能要求更加嚴格,比如 iPhone 6s、7、8 等 2G RAM 機型的內存限制為 1G;對于 iPhone 7P/8P/11 等 3G 以上內存機型的內存限制為 1.4G。當內存緊張的時候,這時候需要引入代碼分包。分包的作用在于優化啟動時間。另外對于 iOS 的高性能模式,分包還有兩個作用:一個是減少內存使用,以支持更多 iOS 低端機上運行高性能模式,另一個是減少編譯時間,降低了游戲前期的發燙情況。大家都知道由于 iOS 平臺系統限制的原因默認無法 JIT 解釋執行,所以結果就會導致 JS 執行性能受限。那么高性能模式使用 Apple Web kit,間接獲得了 JIT 的能力,就顯著提升了 iOS 的性能。同時我覺得開發者的優化核心還應該是精簡 JS 代碼、減少循環和遞歸的使用,并精細內存管理、對象池的引用,避免泄漏。


      最后我們聊一下團結引擎。給大家推薦一個利器就是團結引擎,它對于小游戲平臺特別友好,支持微信、快手等平臺的 MiniGame 構建,就不需要到處去查找插件。另外一個就是性能上,我們也做了一下對比,就是性能上也有較大的提升。下圖是《豬了個豬》的內存對比。大家可以看到 Shader、粒子系統、字體等方面都有特別明顯的提升。比如第一項,用 Unity 占用空間 40 多 MB,用了團結以后可能只有 4MB。


      小游戲的性能調優不是一錘子買賣,而是細節堆出來的流暢。比如一個預制體的使用,一次二維邏輯的調整,一次 GPU 的協同,看似小事,卻能決定用戶是否留下來。希望今天的分享對大家有所幫助,也期待未來和大家一起探索出更多優化的方案。謝謝大家!

      Unity 官方微信

      第一時間了解Unity引擎動向,學習進階開發技能

      每一個“點贊”、“在看”,都是我們前進的動力


      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      人狂自有天收

      人狂自有天收

      李老逵亂擺龍門陣
      2025-09-11 09:01:28
      家電三巨頭差距斷崖:美的凈利潤385億,海爾187億,格力令人意外

      家電三巨頭差距斷崖:美的凈利潤385億,海爾187億,格力令人意外

      有范又有料
      2026-03-24 10:59:07
      20人老頭樂公司起訴小米汽車,把網友們CPU干冒煙了……

      20人老頭樂公司起訴小米汽車,把網友們CPU干冒煙了……

      柴狗夫斯基
      2026-03-26 11:44:33
      一名重大經濟犯罪嫌疑人被押解回國

      一名重大經濟犯罪嫌疑人被押解回國

      新華社
      2026-03-26 15:00:03
      70萬韓國青年,選擇“消失”

      70萬韓國青年,選擇“消失”

      中國新聞周刊
      2026-03-26 09:30:07
      iPhone4回收價暴漲80倍?借著二手手機漲價熱點的又一波瘋狂收割

      iPhone4回收價暴漲80倍?借著二手手機漲價熱點的又一波瘋狂收割

      柴狗夫斯基
      2026-03-26 21:15:05
      9.9元戰火未熄,庫迪用“不限量”掀了桌子!給瑞幸整不會了

      9.9元戰火未熄,庫迪用“不限量”掀了桌子!給瑞幸整不會了

      品牌觀察官
      2026-03-26 17:17:59
      西安某建筑公司全方位崩塌!

      西安某建筑公司全方位崩塌!

      黯泉
      2026-03-26 18:49:04
      “雞蛋界的LV”,安全了嗎

      “雞蛋界的LV”,安全了嗎

      中國新聞周刊
      2026-03-26 13:01:31
      追悼會前,張雪峰婚姻狀況被扒,現任身份不一般,恐影響遺產分配

      追悼會前,張雪峰婚姻狀況被扒,現任身份不一般,恐影響遺產分配

      喜歡歷史的阿繁
      2026-03-26 14:40:54
      26號收評:滬指失守3900點,所有人都注意了,大盤后市開始這樣看

      26號收評:滬指失守3900點,所有人都注意了,大盤后市開始這樣看

      春江財富
      2026-03-26 15:26:22
      男人的生理需求能有多難忍?網友:我對我老公只有動物本能

      男人的生理需求能有多難忍?網友:我對我老公只有動物本能

      帶你感受人間冷暖
      2026-02-07 03:58:56
      日媒:日本高中生起訴市政府和日本政府,指控市政府擅自將個人信息提交給防衛省用于招募

      日媒:日本高中生起訴市政府和日本政府,指控市政府擅自將個人信息提交給防衛省用于招募

      環球網資訊
      2026-03-26 20:44:05
      “中園石化”被立案調查

      “中園石化”被立案調查

      每日經濟新聞
      2026-03-25 11:13:18
      狂賺18億!比愛馬仕還狠的運動奢侈品,正在掏空中產的錢包

      狂賺18億!比愛馬仕還狠的運動奢侈品,正在掏空中產的錢包

      青眼財經
      2026-03-17 16:03:09
      2022年,江蘇一老師路邊花30元買1條上交,專家:很多年沒見過了

      2022年,江蘇一老師路邊花30元買1條上交,專家:很多年沒見過了

      萬象硬核本尊
      2026-03-26 22:23:37
      上海宛平南路一套房子爆火!月租7000元,回家像玩密室逃脫...

      上海宛平南路一套房子爆火!月租7000元,回家像玩密室逃脫...

      黃河新聞網呂梁
      2026-03-26 15:14:06
      “住宅禁放骨灰盒”新規出爐,引爭議!網友:可以去化房地產庫存

      “住宅禁放骨灰盒”新規出爐,引爭議!網友:可以去化房地產庫存

      火山詩話
      2026-03-26 11:11:22
      保姆偷拿我兩瓶茅臺,我辭退未揭穿,臨走她指我舊鞋,剪開后我懵了...

      保姆偷拿我兩瓶茅臺,我辭退未揭穿,臨走她指我舊鞋,剪開后我懵了...

      感覺會火
      2026-03-26 12:06:22
      快提醒家里長輩:廣州老年人優待卡滿兩年記得續期!手機就能辦

      快提醒家里長輩:廣州老年人優待卡滿兩年記得續期!手機就能辦

      城事特搜
      2026-03-26 19:13:51
      2026-03-27 00:48:49
      Unity incentive-icons
      Unity
      Unity中國官方帳戶
      2450文章數 6730關注度
      往期回顧 全部

      游戲要聞

      外媒對比《紅沙》和《大表哥2》誰更強!答案很明顯了

      頭條要聞

      張雪峰留巨額遺產:二婚妻子或拿50% 剩下的女兒占1/3

      頭條要聞

      張雪峰留巨額遺產:二婚妻子或拿50% 剩下的女兒占1/3

      體育要聞

      申京努力了,然而杜蘭特啊

      娛樂要聞

      劉曉慶妹妹發聲!稱姐姐受身邊人挑撥

      財經要聞

      油價"馴服"特朗普?一到100美元就TACO

      科技要聞

      美團發布外賣大戰后成績單:虧損超200億

      汽車要聞

      一汽奧迪A6L e-tron開啟預售 CLTC最大續航815km

      態度原創

      藝術
      旅游
      游戲
      公開課
      軍事航空

      藝術要聞

      都說烏克蘭美女多,看完攝影師貝格瑪 的作品我信了!

      旅游要聞

      老外為羊拿鐵扎堆魔都街頭 法國游客花式夸上海

      PS1大IP游戲藏私貨!成人手繪與盜版馬里奧ROM塞滿

      公開課

      李玫瑾:為什么性格比能力更重要?

      軍事要聞

      擔心特朗普突然停戰 以總理下令48小時盡力摧毀伊設施

      無障礙瀏覽 進入關懷版