《1-張雷宇-如何高質高效拓展OpenHarmony游戲生態.pdf》由會員分享,可在線閱讀,更多相關《1-張雷宇-如何高質高效拓展OpenHarmony游戲生態.pdf(29頁珍藏版)》請在三個皮匠報告上搜索。
1、如何高質高效拓展OpenHarmony游戲生態張雷宇OpenHarmony游戲SIG張雷宇負責終端游戲測試相關工作,擅長游戲重負載場景分析、工具構建、引擎相關領域,在圖形驅動適配也有較多的實踐經驗。華為高級工程師嘉賓照片目錄CONTENTS01020305背景簡介介紹游戲相關的產業鏈,游戲引擎市場占比引擎選型與工作量評估介紹如何在眾多引擎版本和游戲進行選型,并如何進行工作量評估OpenHarmony游戲移植實踐未來與展望介紹如何在OpenHarmony中適配游戲引擎后續游戲適配計劃04測試與工具調優介紹如何驗證游戲與引擎的移植,以及OpenHarmony性能調優相關工具01背景介紹背景介紹To
2、p Cocos游戲Top Unity游戲游戲名稱公司引擎版本王者榮耀騰訊5.6穿越火線手游騰訊5.6使命召喚手游騰訊5.6倩女幽魂雷火2018天諭雷火2018QQ飛車騰訊2019游戲名稱公司引擎版本開心消消樂樂元素2dx 2.2.6夢幻西游網易2dx 3.4叫我大掌柜三七Creator 2.2.2率土之濱網易2dx 3.4問道雷霆2dx 3.2歡樂斗地主騰訊2dx 2.2.6游戲眾多、引擎版本眾多,如何下手如何下手?游戲名稱公司引擎版本和平精英騰訊Unreal 4天涯明月刀騰訊Unreal 4其他-Top Unreal游戲游戲引擎洞察02引擎選型與工作引擎選型與工作量評估量評估Cocos產品關
3、系圖Cocos Creator(Engine開源,Editor閉源)EditorEngineCocos2dx(完全開源)EngineJSLuaC+platformCocos Runtime(閉源商用)JS快應用Cocos runtime(類OS平臺)Unity(閉源商用)EditorEngineUnity產品關系圖開源閉源根據(意愿、生命周期、熱度、開源策略、游戲生態)確定首款支持OpenHarmony游戲引擎為CocosCocos 產品關系圖及開閉源策略Cocos2dxCocos creator1.x2.x2.x1.x3.x4.03.x2016推出cocos creator1.0版本,其中c
4、reator engine的大量移植2dx源碼2018推出,開始獨立演進,徹底重寫底層渲染器,只有部分渲染和觸摸事件相關的功能保留cocos2dx移植過來的代碼2021推出,引擎進一步統一2D與3D的開發工作流,僅與2dx依賴的一些三方庫相同Cocos2dx最后一個支持JS的版本,發布于2019.5最后一個穩定版本,發布于2019.12.4。之后Cocos不再維護Cocos2dx。3.17.2Cocos 2dx與Cocos creator演進策略Cocos 2dx支持了Android、iOS、Tizen的移動端,可以走C+、Lua、JS三種方式構建游戲(Lua優先)業務層登錄(手機號,微信)分
5、享(微信,微博)騰訊Mars通訊HMS(OAID,防沉迷,隱私同意,開屏廣告,震動)SDK游戲主體Cocos 2dx框架圖代碼類型:Cocos2dx引擎主體邏輯代碼主要工作量:對接os平臺代碼(說明:CocosDenshion目錄是音效引擎封裝目錄,獨立目錄原因cocos未給出,移植方法與cocos2dx目錄基本一致)代碼類型:引擎擴展模塊,數量上取決于目標游戲的需要;主要依賴cocos2dx下platform平臺適配和external下三方庫等主要工作量:少量重新封裝代碼類型:三方庫主要工作量:三方庫移植代碼類型:四方SDK,如AliPay,HMS主要工作量:暫不考慮代碼類型:Lua/JS
6、虛擬機以及Cocos適配層主要工作量:Lua虛擬機移植代碼類型:工程模板主要工作量:提供標準OpenHarmony的應用工程模板需要使用OpenHarmony JS代碼重構,重新封裝平臺系統能力接口使用NAPI封裝成C+接口,給Cocos引擎C+層使用NDK相關接口封裝,直接被Cocos引擎C+層使用2dx依賴的系統接口1、重力傳感器相關模塊2、獲取系統語言類型3、獲取設備類型:手機平板4、彈出系統對話框5、獲取設備 DPI6、opengles 2 的支持:可能會用到一些擴展7、文件操作相關接口8、控制臺輸出9、獲取文本輸入能力10、文本繪制成圖片的能力11、播放音頻的能力(音效和背景音樂)1
7、2、獲取觸摸消息的能力13、網絡通訊能力:pthread、curl14、數據存儲:sqlite15、獲取時間:用于計算每幀的耗時Cocos 2dx代碼分析三方庫名稱三方庫功能描述三方庫集成方式策略box2d2D剛體物理引擎預編譯后.a文件集成重新編譯bullet物理引擎預編譯后.a文件集成重新編譯chipmunk物理引擎預編譯后.a文件集成重新編譯curl網絡鏈接預編譯后.a文件集成重新編譯freetype字體庫預編譯后.a文件集成重新編譯jpegJpeg圖片壓縮庫預編譯后.a文件集成重新編譯luajitlua虛擬機相關庫預編譯后.a文件集成重新編譯openssl安全通信庫預編譯后.a文件集成
8、重新編譯pngpng壓縮庫預編譯后.a文件集成重新編譯tifftiff位圖庫預編譯后.a文件集成重新編譯uv開源的異步io庫預編譯后.a文件集成重新編譯webpwebp圖片庫預編譯后.a文件集成重新編譯websockets網絡庫預編譯后.a文件集成重新編譯zlib壓縮庫預編譯后.a文件集成重新編譯三方庫名稱 三方庫功能描述三方庫集成方式策略cjsonjson序列化庫源碼集成源碼集成clipper多邊形裁減庫源碼集成源碼集成ConvertUTF UTF編碼轉換源碼集成源碼集成edtaa3func渲染相關算法庫源碼集成源碼集成flatbuffers序列化庫源碼集成源碼集成jsonjson序列化庫源
9、碼集成源碼集成lualua虛擬機源碼集成源碼集成luasocketlua虛擬機相關庫源碼集成源碼集成tolualua虛擬機相關庫源碼集成源碼集成md5md5算法庫源碼集成源碼集成poly2tri圖形學算法庫源碼集成源碼集成pvmp3decmp3解碼庫源碼集成源碼集成rapidxmlxml dom解析工具源碼集成源碼集成recast游戲尋路引擎源碼集成源碼集成tinydir文件讀寫庫源碼集成源碼集成tinyxml2XML解析庫源碼集成源碼集成tremoloOggVorbis音頻讀寫庫 源碼集成源碼集成unzip解壓縮庫源碼集成源碼集成xxhash哈希算法庫源碼集成源碼集成xxtea加密庫源碼集成
10、源碼集成三方庫名稱三方庫功能描述三方庫集成方式策略glfwGL窗口管理庫Windows上使用OpenHarmony不需要spidermonkeyJs引擎預編譯后.a文件集成 OpenHarmony不需要sqlite數據庫僅windows上使用OpenHarmony不需要注:Cocos2dx中有14個三方庫需要經過預編譯,原因是cocos為了提高游戲開發時的編譯速度。重新基于OpenHarmony編譯三方庫共14個源碼集成三方庫共20個無關三方庫共3個Cocos 2dx代碼分析互媒BUAndroid 平臺相關代碼 21932不同平臺不同實現(不同接口)的文件9229Cocos 2dx代碼分析03
11、OpenHarmony游戲移植實踐OpenHarmony JS/ETS層適配層X-component適配圖形GLES適配游戲引擎適配引擎功能移植三方庫適配(如FBX、PhysX)游戲適配GPU Turbo SDK適配游戲客戶端適配引擎定制修改適配(如文件系統)游戲公司工作1、游戲客戶端代碼2、引擎修改部分適配3、三方庫適配游戲平臺適配工作1、推送、賬號、登錄等最小集2、崩潰分析/恢復、安全增強、游戲加速3、二次打包引擎主要工作1、基礎移植(渲染、物理、窗口等模塊)2、開閉源庫適配3、生命周期適配(Ability)4、一次打包OpenHarmony側工作:1、X-Component框架適配(輸入
12、、Surface)2、NDK GLES適配3、NAPI適配4、性能優化一次打包13游戲平臺適配推送賬號/登錄支付定位廣告崩潰分析加固三方庫適配生命周期適配二次打包(渠道)NAPI適配24反外掛游戲加速游戲直播文件系統適配游戲移植工作量分析2022.112022.102022.12023.22023.72023.5引擎適配游戲適配IDE和測試工具適配三方SDK&庫適配Cocos2.2.6 標準版 編譯并運行測試(C+測試集,Lua測試集)開心消消樂引擎2.2.6魔改版編譯駐場聯調登錄SDK,支付SDK,廣告SDK音頻,ETC紋理壓縮cocos 2.2.6打通畫面和交互性能,功耗,穩定性階段1階段
13、2Lua2JS數據庫對接,輸入框對接本地存儲消消樂開發環境搭建Cocos移植計劃駐場聯調駐場聯調減法加法1、搭建基于DevEco的工程將安卓編譯修改成基于cmake編譯2、基于NDK的Xcomponent,提供窗口句柄和Input消息回調3、將引擎依賴的三方庫對應版本完成二進制編譯4、跑通cocos自有的測試用例,并和Android版本對比性能功耗;5、將涉及到引擎對系統的Java調用部分,全部替換成JS方式;無修改部分JS Framework游戲三方庫NDK應用TS層應用C+層系統層NAPI C+NAPI JSJS Ability/StageNDK API引擎生命周期管理Cocos2d-x引
14、擎Xcomponent NativelibuvlibuvLibCurlOpenSSLJS系統APIOpenGLESOpenGLES mali應用層ArcUI框架層C+測試代碼系統服務InputFrameworkWindowManager系統對接層傳感器網絡Lua測試代碼zlibfreetypeLuajit數據庫軟鍵盤文件系統音頻34412Lua3修改部分Cocos引擎移植策略04測試與工具調優游戲引擎Cocs引擎測試與驗證引擎編輯器引擎Runtime游戲測試項:l 引擎編譯l 三方庫編譯l 底層系統對接引擎模塊看護l功能完整l性能體驗l穩定性體驗l功耗熱體驗lAPI:l Nodel Actio
15、nl Animationsl Spritel Audiol Devicel Eventsl ParticleSystemJobsl.場景/特性級看護空工程看護覆蓋范圍l 基礎模塊測試套Lua-empty-testJs-empty-testCpp-empty-test被測模型:l開心消消樂l保衛蘿卜l其他OpenHarmony的游戲l測試能力保衛蘿卜開心消消樂.負載模型保衛蘿卜Runtime API測試套l 負載模型l 集成測試套JS-testCpp-testLua-testPerformance-testUI測試Editor API測試套測試報告開心消消樂AudioScreenManagerI
16、nputFileSystemSystemInfoVideoCocos平臺(libcocos2d.so)RenderPhysicsGFXAppDelegateSensorOpenGLESVulkan引擎入口引擎編輯器相關模塊模塊cpptestluatestJStest當前開心消消樂已通過OpenHarmony兼容性測評并發布 Host 性能調優工具數據看板分析平臺SP Device 設備端性能測試工具SP Editor 游戲性能測試工具工具特點:1、性能測試與性能調優相結合,讓游戲性能問題定位更快捷,簡單;2、支持用戶行為采集,讓游戲性能大數據分析更容易;3、支持Randerdoc、Drawin
17、gdoc圖形調測能力;4、支持開發者聯盟網站工具入口和下載支持游戲性能調優支持游戲性能測試導航欄:提供測試項選擇與設備信息顯示OpenHarmony游戲性能分析工具測試報告詳情頁性能頁測試報告詳情頁負載頁測試報告詳情頁功耗頁測試報告詳情頁熱測試報告詳情頁概覽頁測試實時數據展示功能和使用場景介紹:性能數據采集,包括FPS、CPU頻率、內存數據、溫度、Trace、功耗抓?。?、分析流暢度,通過實時采集FPS,提供抖動率、丟幀數等指標 2、通過應用運行過程中抓取的trace分析分析應用啟動、頁面切換時延 3、通過CPU頻點、利用率、溫度等信息分析應用和游戲在運行過程中產生高負載、高熱的場景 4、測試
18、應用運行中的功耗,定位可能存在問題的進程,覆蓋整機功耗、進程功耗OpenHarmony游戲性能分析-整體OpenHarmony游戲性能分析-CPU側Systrace抓?。–PU端):1、SP手動抓取,任意場景下隨時觸發采集,人工分析;2、SP自動抓取,定制卡頓預置,自動抓取卡頓時刻trace并可分析??D時刻截圖92.8436.3610.344.283.23020406080100Thread-43RenderRenderNativeTTaskGrms線程執行時長效率提升實例:問題:游戲卡頓后,根據測試人員的印象與簡單記錄,場景重復測試(一般3-10次),復現的同時進行Systrace抓取并分
19、析,耗時長。SP抓?。涸跍y試過程中,直接抓取到卡頓時刻Systrace,無需重復復現,并自動分析卡頓原因,人工復核后得到根因。工具基礎框架SmartPerf EditorShader分析設備管理用戶管理云端上報基礎能力連續啟動模型靜態KPI模型內存測試整機性能測試GPU counter分析性能數據采集抓幀/回放游戲性能測試內存分析CPU分析Trace分析性能調優開發中已支持2D(RS-Skia-gles/vk)3D 關鍵幀分析FrameProfiler抓幀、回放渲染管線分析Shader分析Overdraw分析OpenHarmony游戲性能分析-GPU側05未來與展望未來與展望時期:80、90年
20、代 性能特點:單片機 交互:搖桿+按鈕 游戲內容:街霸、拳皇97 玩家規模:10億 行業規模:100億美金時期:90、00年代 性能特征:單片機 交互:游戲手柄 游戲內容:超級瑪麗、魂斗羅 玩家規模:10億 行業規模:100億美金時期:00年代以后 性能:x86、獨立顯卡 交互:鍵盤鼠標 游戲內容:魔獸世界、反恐精英 行業規模:350億美金 玩家規模:15億時期:2010年代以后 性能:次世代主機 交互:鍵盤鼠標 游戲內容:GTA5、賽博朋克 行業規模:490億美金 玩家規模:8億時期:2010年代以后 性能:移動GPU 交互:多點觸控 游戲內容:王者榮耀、和平精英 行業規模:790億美金 玩
21、家規模:28億時期:2020年 性能:分布式 交互:多設備聯動 游戲內容:分布式、多設備玩法 行業規模:30億+玩家規模:全場景設備OpenHarmony基于多設備的分合流轉等分布式特性,給游戲產業繼續突破提供底座街機游戲紅白機PC端游3A主機移動手游OpenHarmony分布式交互、性能、硬件發展游戲行業發展回顧游戲發展歷史,每次游戲硬件、交互操控、圖形性能上的革新都帶來游戲體驗、玩家規模、產業規模上的突破多設備、分布式分合流轉特性,能化學作用出更多創新玩法和交互方式,給游戲產業繼續突破提供技術底座Top 游戲接入積極參與社區共建,更多版本適配更多游戲CP加入共創結合OpenHarmony系
22、統特色、引擎框架標準以及終端游戲評測模型,構建基于OpenHarmony的游戲工程模板并不斷更新完善游戲評測標準標準建設標準建設構建基于OpenHarmony上的游戲應用程序遷移及開發能力。端到端拉通游戲相關技術,讓游戲類應用高效、方便地在運行,同時結合OpenHarmony分布式能力,打造和提升游戲的分布式體驗。工作目標工作目標在游戲引擎社區建立影響力,引導游戲開發人員在OpenHarmony上進行應用遷移及開發生態擴充生態擴充工具構建工具構建基于OpenHarmony已有特色游戲分析測試工具,不斷在游戲引擎適配過程中構筑能力更加全面、分析更加深入、測試效率更加高效的工具,助力游戲在OpenHarmony上的流暢運行適配經驗積極回饋社區未來與展望感謝聆聽關注QECon公眾號