Call of Duty: Warzone Mobile是知名《決勝時刻》《決勝時刻》系列系列遊戲的第一人稱。針對超人氣遊戲主機和電腦遊戲的行動裝置實現這個功能,可利用行動裝置低階 API 提供絕佳的玩家體驗。
從技術的角度來看,行動裝置實作的目標在於支援各種 Android 行動裝置,同時盡可能將實作項目盡量靠近主控台版本,並確保圖形管線和工具鍊與目前的主控台和電腦標題和內容相容。
Call of Duty 引擎會使用名為「工作圖形轉譯器」的系統實作同步處理、記憶體配置和排程,以管理算繪提交作業,這個系統會決定要在 GPU 上執行的工作並指定所需資源。更具體來說,系統是轉譯圖,內含工作、資源和依附元件由高階指令碼定義,會在載入時間時處理,進而產生要在 GPU 上執行工作的最佳排序,並提供在影格提交時使用的資源。
Vulkan 是新型的跨平台 3D 圖形 API,已獲選為 Android 工作圖表轉譯器的後端算繪介面。
![](https://developer.android.google.cn/static/images/cards/distribute/stories/codwzm_figure1.jpg?authuser=3&hl=zh-tw)
Vulkan API 的優點
為了保有「決勝時刻」(Call of Duty) 的獨特視覺風格,並進一步支援「Call of Duty: Warzone Mobile」之間的共享進度,遊戲會使用與現有主控台和電腦實作項目類似的轉譯 API。在 Android 上,Vulkan 可讓 Activision 以現有工具、管道和著色器為基礎建構內容,並支援藝人建立的內容,而無需推翻整個軟體堆疊。
嘗試使用完全不同的轉譯器達成此目的,成本高昂,如果嘗試為《決勝時刻》(Call of Duty) 管道支援舊版圖形 API,對功能集的影響就會太大。Activision 判定 Vulkan 是為 Android 提供完整功能的最佳選擇,同時將對整體開發負擔的影響降至最低。Vulkan 獲得 Android 裝置製造商的重大支援,因此 API 也是日後開發作業的絕佳選擇。
如果裝置缺少支援 Vulkan 的硬體或驅動程式,通常就會比較舊,功能也不夠強大,無法執行遊戲。因此,除了 Vulkan 支援引擎和內容管道的技術之外,還可將 Vulkan 視為硬體需求,做為效能篩選器。
與現有平台 API 的相容性
Vulkan 在概念上與用於《決勝時刻:Warzone》使用的現有 API 相似,可提供明確的資源管理、記憶體別名、類似的運算管道和無繫結資源存取權。這些相似性可讓 Activision 透過結構與主控台和電腦轉譯器的結構保持一致,僅需要將後端變更為使用 Vulkan 的介面。
支援現有 HLSL 型著色器,且使用 DXC 對 SPIR-V 編譯功能的完整功能集,可讓 Android 整合至 Activision 的現有建構管道。這個程序不會有挑戰,但仍比重寫和維護多個版本或語言的負擔更加有利。
![](https://developer.android.google.cn/static/images/cards/distribute/stories/codwzm_figure2.jpg?authuser=3&hl=zh-tw)
![](https://developer.android.google.cn/static/images/cards/distribute/stories/codwzm_figure3.jpg?authuser=3&hl=zh-tw)
《決勝時刻: Warzone Mobile》中使用的 Vulkan 功能
- 資源別名和明確的障礙控制可讓轉譯工作圖表大幅降低轉譯目標的記憶體需求 (相較於靜態分配)。
- 因為富有彈性,在轉譯工作中可以順利使用適合行動裝置的做法。
- 「轉譯傳遞」做為核心功能,可讓轉譯器針對一般行動 GPU 架構做出最佳決策。這些決策大多也能在其他平台上 帶來好處
- 工作圖表預設支援動態場景解析度,可控制效能和耗電量。
- 完整 GPU 管道搭配廣泛的運算式調節功能,可大幅增加場景複雜度。
- 在考量圖塊式延遲轉譯器時,平衡縮減精細程度。
- 與三角形數量相比,瓶頸相當複雜的運算工作負載。
- GPU 管道專為不同情境設計。
- 變更切割精細程度的選項。
- 非常大型的描述元集,可以在相容硬體上進行完全無繫結轉譯,透過關聯效能、電力和熱能的優勢大幅降低 CPU 繪製呼叫的建立成本。
- 硬體配置器可根據特定裝置型號調整擬真度設定,提供最佳使用者體驗
- 使用者設定模式:效能最佳、畫質最佳或節約耗電量。
- 裝置專用的著色器集設計可為不同的 GPU 預設設定 (品質和擬真度設定) 提供不同的著色器組合。HW 設定器可協助遊戲選擇最適合裝置的著色器。
- 協助減少可高度設定著色器的組合爆炸,進而確保符合建立管道物件的需求。
- 加入備用非繫結著色器組合,以適用於無法支援最多著色器資源的舊款手機和驅動程式。
- 聰明地使用特殊化常數來因應驅動程式的差異。
- 驅動程式中的大多數著色器編譯器錯誤都已與使用特殊化常數搭配使用。
- 根據裝置專用著色器集的數量進行平衡。
![](https://developer.android.google.cn/static/images/cards/distribute/stories/codwzm_figure4.jpg?authuser=3&hl=zh-tw)
剖析和偵錯
早期開發 Activision 發現,使用 Vulkan 分析和偵錯工具時,穩定性和功能會出現許多落差。在此之後,持續改善供應商專用分析器和各種廠商通用的工具 (例如 RenderDoc)。現在,開發人員可以更放心地縮小轉譯問題和最佳化機會。
透過 Vulkan 展現高保真度
「決勝時刻:Warzone Mobile」在各種支援 Vulkan 的 Android 裝置上運作,會使用與主控台和電腦遊戲共用的轉譯技術。Vulkan 降低了開發負擔和阻礙,還能夠向 Android 玩家提供真實、高保真的決勝時刻內容和遊戲過程。