tft每日頭條

 > 生活

 > 騰訊和鴻蒙系統

騰訊和鴻蒙系統

生活 更新时间:2024-07-02 17:24:33

11月20日-22日,QQJOY嘉年華在上海舉辦。而在20日當天的QQ開發者大會,騰訊公司QQ小程序/小遊戲平台技術負責人朱煌,帶來了一場關于技術賦能——小程序小遊戲最佳實踐的演講。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)1

對玩家來說,小程序/小遊戲在體驗上一定是點開即用、點開即玩的,這對性能也提出了更高的要求。目前大多數用戶反饋的問題,也都集中在啟動速度和運行性能等方面。

朱煌提到:“在Loading界面等待超過三秒的用戶流失率升得很快,如果首次啟動速度能在三秒内,能減少百分之七十五的流失。”對于如何優化小遊戲加載速度,朱煌給出了具體的答案。

而為了服務好小遊戲開發者,騰訊也準備了一個大招:CrossEngine,這款QQ和IEG 去年一起開始聯合開發的CrossEngine,為小遊戲和手遊同時提供3D引擎能力和工具的支持。并且一次開發能夠支持手遊、QQ平台和微信小遊戲平台多平台運行,也計劃支持原生雲遊戲。

以下是演講實錄

朱煌:各位開發者們,大家下午好,我是來自QQ小程序小遊戲團隊hank。

今天很高興能在這裡,以技術的角度,分享小程序小遊戲平台的最佳實踐和思考。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)2

首先來簡單回顧一下,平台能力開放的過程。從去年7月份開始開放接入以來,憑借着較低的接入成本和快速疊代的生态能力,吸引開發者加入,已經創造了不少優質的小程序和小遊戲。

那我們從最早基礎建設,到不斷開發的新能力,比如雲開發和實時音視頻的能力,去幫助直播類的小程序快速上線。

同時,QQ把自己的關系鍊通過子域的方式開放給開發者,可以開發出基于好友和群關系的玩法,提高用戶粘性。

除了關系鍊以外,QQ特有的生态,包括群和彩簽能力,以及加好友加群等私域流量也以API的方式開放出來。

小程序小遊戲和平台的結合越來越緊密。在這個過程中,我們一直是開發者的幫手,來生産更多優質的内容。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)3

最近幾個月,我們一直在思考兩個問題,第一個是,平台還能提供哪些能力,尤其在QQ強大的社交背景下。那這裡也做了一些嘗試,比如對戰遊戲在用戶數據上的确有更好的表現。

另外一個方面,小程序小遊戲在體驗上一定是“點開即用、點開即玩”的方式,對性能也有更高的要求。那我們也一直在思考性能有沒有進一步提升的空間,哪些是可以一起來優化。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)4

首先,我們發現的一個趨勢是,越來越多的虛拟形象在遊戲中的使用,可以提高遊戲的沉浸感和趣味性。比如snapgames通過bitmoji帶來更多高品質的遊戲。回到我們的平台,也有非常多的3D形象在遊戲中使用,隻是大部分都是骨骼小人和灰皮小人,缺少精細的運營。那帶來的遊戲體驗感也會差一些。主要的原因是素材制作的成本還是比較高的。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)5

虛拟形象一直都是QQ的社交資産,從PC時代的QQ秀,到移動時代的厘米秀,已經是一套體系,并且積累了非常多的用戶。

這裡的玩法,從厘米秀選擇,2D/3D主頁,到AIO的動作/表情玩法,以及最近我們上線的自動捏臉和裝扮,可以滿足更多個性化的需求。厘米秀已經活躍在QQ的各個場景。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)6

厘米秀有沒有可能和小遊戲結合到一起呢?随着平台和産品的開放,答案是肯定的。我們把這部分能力做成厘米秀Kit,放到小遊戲生态中。也能帶來不少效率的提升,原來在一個遊戲團隊,需要設計師、前端、後台一起協作,幾個星期甚至到數月才能做出來的效果。那現在隻需要一位前端做一下API的接入,幾天就能完成。那這裡的設計原理和接入方法具體是怎麼樣的。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)7

首先看一下現有的小遊戲架構,初步分為三個部分:上部是遊戲業務JS邏輯,中間是第三方引擎;底部是平台的native引擎。

厘米秀kit實現的是平台和引擎在模型标準和加載能力的對齊。

開發商隻需要簡單的代碼接入,其他的可以交給我們,就可以把用戶個性化的形象帶入到遊戲中。目前厘米秀kit已經有部分遊戲在接入,歡迎大家來使用。除了能力建設外,作為開發商和用戶的連接者,我們也一直在傾聽用戶的聲音。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)8

這個是最近半年來提取的一些反饋關鍵字。可以看到一些贊許的,那更多的是用戶反饋的問題,打不開、卡頓是經常出現的關鍵字。那我們從感性的反饋,去做一下理性和技術的分析。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)9

首先是啟動速度,啟動耗時和留存有些密不可分的關聯,有位研究人機交互的Jakob教授,發現響應時間有三個非常重要的時間點:

首先是100ms,如果超過100ms,人會感受到交互的不連續。大部分的native頁面打開都是在100ms内。

第二個是1s,超過1s,會感受到思路被打斷。這也是為什麼很多性能優化的目标都是秒開。如果超過10s,大部分用戶會選擇關閉。那我們看一下,大盤首次打開流失分布圖,也就是說在loading界面就關閉的用戶關閉的時候等了多久。

其中可以看到,大于3秒,流失率升得很快,如果首次啟動速度能優化到3s内,我們能減少75%的用戶流失。那有沒有什麼辦法?

騰訊和鴻蒙系統(騰訊朱煌技術賦能)10

首先簡單看一下啟動的流程,從點擊到渲染出來,平均iOS需要3-4s,android需要5-6s,經過分析,大部分的耗時在業務包的下載。

而外網的首包平均大小是2.29M,雖然有壓縮的辦法,意味着光下載可能都需要幾秒,這裡有不少優化空間。另外加載數據也需要一個以上的RTT,可能有上百毫秒的延時。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)11

針對這些場景/部分,我們建議一些優化辦法。首先是分包,這個是最有效的優化手段,可以把啟動邏輯放在首包,其他放分包延遲加載。

另外針對遊戲,我們去年年底推出了引擎插件,隻需要在game.json配置引擎信息,能做到跨遊戲的引擎插件複用,實際測試平均能提速28%。

最後一個是數據預拉取的API,可以提前或者并行拉取啟動需要的JSON數據或者對應的資源包zip。加快首幀的加載。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)12

另外一方面,渲染性能也是體驗非常重要的部分。一般小于30fps就可能有卡的感覺。那這個占比在外網接近36%。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)13

那怎麼發現卡頓點具體在哪,我們提供了FrameFrofile工具,可以通過真機調試看到每幀的函數調用和消耗,對應來優化。實際FPS低是有一些常見的原因:

(1)JS邏輯過于複雜,複雜的部分推薦用異步化和worker來解決。

(2)幀間隔設計不合理,比如實際的遊戲複雜度每秒隻能處理30幀,但是設置了60次回調,會導緻處理不過來。這裡可以采用動态幀率的API來設置合理的回調次數。

(3)紋理和物理效果複雜,可以通過一些降級、複用的方式優化。平台也做了GPU加速來優化這裡的性能體驗。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)14

有了這些優化後,大部分遊戲都可以流暢的跑起來。但是随着小遊戲和硬件的發展,遊戲的玩法越來越多樣,尤其現在的大型3D遊戲也嘗試在小遊戲平台跑起來。由于這些遊戲模型頂點和面數非常多,drawcall也非常多,性能瓶頸比較明顯。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)15

尤其基于webgl渲染的框架,大部分邏輯都是在JS層,而且在iOS平台沒有JIT性能會更差。當前框架已經不能滿足這些遊戲的要求,帶着邏輯下沉到native的思路,和IEG遊戲引擎團隊的研究。

我們從去年開始一起聯合開發CrossEngine,為小遊戲和手遊同時提供3D引擎能力和工具的支持。

CrossEngine主要包括全新設計的渲染接口,能使用最新的硬件能力,比如iOS的Metal。也使用了最新的ECS架構,并且一次開發能夠支持手遊、QQ平台和微信小遊戲平台多平台運行,也計劃支持原生雲遊戲。

CrossEngine目前已經完成了基本模塊的開發,包括整個Core、runtime和UI系統。也完成了demo的驗證。這裡有一個在手機QQ iOS上跑的demo效果,開放的格鬥場景,超過10W面的模型,已經有了流暢的效果。

CrossEngine目前已經也有深圳的遊戲團隊在接入和測試,也期待很快有更多遊戲來使用。

騰訊和鴻蒙系統(騰訊朱煌技術賦能)16

總體上,平台以後會更開放,更多玩法和能力。同時也會在工具和引擎上提供給大家更強大的支持,以技術賦能。也期待在QQ平台上創造更多優質的小程序和小遊戲。

謝謝大家。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved