如何優化移動遊戲中的流量
1)為什麼要優化流量
較少延遲→會議更穩定,保留時間更高。
節省的數據→低於用戶的成本和「削減關稅」的風險。
快速啟動→更多的大炮/廣告遊戲發布。
弱網絡(3G/cafe-Wi-Fi/漫遊)上的可靠性。
2)真正值得關註的度量
First Contentful Paint (FCP)/Largest Contentful Paint (LCP):當玩家「看到」和「可以玩」時。
INP/TBT:接口響應。
流量/會話(MB)和峰值比特率。
RTT/jitter/損失(尤其是現場遊戲/流媒體)。
快取熱門:從應用程序/CDN的kesh請求的份額。
3)網絡堆棧: 基本衛生
啟用HTTP/2/HTTP/3 (QUIC)以進行多路復用,並在數據包丟失時更持久地工作。
TLS會議恢復和0-RTT(對於H3)-手頭聊天較少。
DNS-prefetch/Preconnect到CDN和遊戲提供商。
熟練的緩存策略:「緩存控制」,「ETag」,轉儲。
4) CDN和地理
將靜態和媒體放在CDN上,PoP更靠近用戶。
在CDN (WebP/AVIF)上啟用映像恢復/「接受」-based negotation。
對於實時視頻-邊緣上的多比特率配置文件(HLS/DASH)。
5)壓縮和格式(實際節省數十%)
圖片:WebP/AVIF+「srcset/sizes」,精靈和SVG圖標。
字體:WOFF2,根據所需的字形,「字體顯示:交換」。
視頻:H.264/HEVC/AV1(可用的),海報代替自動飛機。
文本/JSON: Brotli (br)> Gzip,在CDN/服務器上啟用。
JS/CSS:微型,刪除「死」代碼(樹搖擺),代碼分割。
6)遊戲畫布: 插槽,迷你遊戲,canvas/WebGL
渲染自適應DPR:'devicePixelRatio'限制為1。5-2在mobile-銳度保持,流量/CPU下降。
紋理和紋理壓縮(支持的ASTC/ETC/BC)→少下載。
在關卡/屏幕上懶惰地播客,而不是「一切同時」。
刪除「沈重的」陰影/過濾器,將動畫頻率限制在弱小的Devys上30-45 fps。
對於iframe插槽:與提供商協商輕量級預裝和批量預裝僅關鍵資源。
7)實時遊戲和流媒體: 節省巨字節沒有痛苦
具有360p/480p/720p閾值的自適應比特率(ABR);按寬度/RTT選擇配置文件。
Low-Latency HLS/DASH僅在需要時;不要向所有人啟用LLLC。
音頻比特率64-96 kbps用於語音-通常足夠。
離開。大堂中的自動軌道:顯示海報/動畫GIF/webm預覽。
8)實時通信
WebSocket:每秒25-30秒的二進制協議、消息包、心跳。
WebRTC數據-僅適用於狹窄案例;如果不是關於媒體,請避免「多余」的NAT旁路。
壓縮有效載荷(協議buffers/MessagePack),不要駕駛「粗體」JSON。
9) PWA/Service Worker: mobile上的屏蔽流量
App Shell:緩存帽子/導航和skeleton-即時第一屏幕。
Runtime caching:「Stale-While-Revalidate」用於圖片,「Network First」用於帶有TTL的API。
Background sync:延遲遙測/成像,不阻止交互。
離線後退:可理解的屏幕而不是空白(節省retrais和額外查詢)。
10)智能下載和優先級
Critical CSS inline,其余應要求。
腳本的「defer/async」,後期屏幕的import()。
Lazy-load遊戲列表(每包20-30張卡),「IntersectionObserver」。
Prefetch的意圖:當用戶在卡片上徘徊時→ 拉起遊戲的assets。
11)賬單和票房: 交通也很重要
使用系統支付對話(Apple/Google Pay)-它們更經濟、更可持續。
將重新排序和額外的分析像素降至最低。
在加密模型中,請勿安裝所有網絡/圖標-僅選定的網絡/硬幣。
12)遙測和A/B沒有「泛光燈」
僅收集所需的事件,進行戰鬥,然後按尺寸N秒發送一次。
關閉銷售中的debag-logs,截斷事件中的字段。
A/B標誌-通過輕型遠程配置,不要拉動大型字節電路。
13)玩家的練習(快速交通收益)
在iOS/Android上,啟用Data Saver/節約流量。
如果可能的話,在Wi-Fi 5/6上播放;在移動網絡中避免「1-2棒」-高於損失。
在設置中禁用自動視頻/預覽。
在Telegram和瀏覽器中,每隔幾周清除一次緩存-但在頻繁播放之前不進行緩存(緩存有幫助)。
關註應用程序/PWA的更新-新版本通常更經濟。
14)開發人員/產品支票清單(一頁)
1.HTTP/2/3, TLS 1.3、preconnect到CDN/遊戲域。
2.CDN與圖片緩解,AVIF/WebP,Brotli到文本。
3.App Shell + SW: offline-fallback, runtime-кеш, background-sync.
4.懶惰的引信加載,代碼拆分,關鍵的CSS inline。
5.動態DPR (≤2),壓縮紋理,30-45 fps在弱點。
6.ABR 寬度視頻/RTT,關閉。在大廳裏開車。
7.具有批處理功能的WebSocket;數據的壓縮協議。
8.Batchami遙測;禁用prod debag。
9.沒有額外重新定向的售票處;系統支付對話。
10.監視:LCP/INP/流量/會話,高速緩存,RTT/損失。
15)頻繁的錯誤以及如何糾正它們
列表中的視頻/流自動播放→替換為海報/預覽。
在所有設備上拉動3 × asset →使用「srcset」/DPR配置文件。
巨型JS樂隊在路線上→分離,拆除未切割的倉庫。
零緩存控制→配置TTL/ETag和轉換。
聊天/遙測垃圾郵件→戰鬥,增加心跳間隔。
單個WebSocket頻道(遊戲+聊天+分析)中的所有內容→按關鍵性進行劃分。
16)「制造天氣」的迷你模式"
在網絡較差的情況下,在直播桌上使用「降低視頻質量」按鈕。
在下載視網膜之前,用於遊戲的Placeholder封面。
保存最後一個會話(狀態鍵)-減少重復查詢。
最後一個正在運行的桌子/插槽的Deeplink-減去兩個屏幕和一個捆綁包。
17) FAQ
優化流量會損害質量嗎?
如果做的是自適應的(DPR/ABR/'srcset')-不:給設備和網絡更好的質量/速度平衡。
是否所有用戶都需要啟用Low-Latency模式?
沒有。它的流量更高,並且對損失敏感。留給錦標賽/live案例。
PWA代替本地客戶-流量較低?
通常是:減少SDK和後臺線程,加上SW緩存。但取決於實施。
AVIF/WebP節省了多少錢?
JPEG/PNG平均為25-45%,沒有明顯的質量損失。
總是應該降低DPR嗎?
在弱小的Devays/Low網絡上動態降低;帶有Wi-Fi 6的旗艦店可容納2人。0.
流量優化不是「連續削減一切」,而是將質量和體積調整為設備,網絡和腳本。結合快速網絡堆棧(HTTP/3、CDN、緩存)、智能助推器(WebP/AVIF,紋理、ABR)、整潔的繩索和PWA緩存,減少遙測噪音-並獲得快速下載、穩定遊戲玩法和可實現的數據節省。玩家不太可能因為網絡而掉落,更有可能返回,產品在保留和基礎設施支出中都獲勝。