關於自訂或移植遊戲引擎

工具、星星、行星 如果您使用 C 或 C++ 開發或自訂遊戲引擎,就必須符合下列規定,才能將 Android 支援服務整合至遊戲引擎。

  • 善用 Android 開發工具
  • 建構活動
  • 在螢幕上繪圖
  • 處理輸入事件
  • 輸出音訊
  • 管理記憶體
  • 測試與修飾
  • 發布至 Google Play

本頁面所述的規定並未教導您如何從頭開始開發遊戲引擎,而是可以指出 Android 與其他平台相比,在遊戲領域所具備的獨特性。

善用 Android 開發工具

Android Studio 提供以下工具供您使用:

  • 設定專案
  • 建構、偵錯及封裝遊戲
  • 使用系統、CPU 和記憶體分析器檢查遊戲效能
  • 檢查遊戲套件或應用程式軟體包的內容
  • 整合 Android SDK 和 NDK 的其他功能

Android Graphics Inspector 可顯示遊戲的轉譯效能,並使用影格剖析功能,協助您深入瞭解轉譯影格的詳細資料。

如果您主要使用 Microsoft Visual Studio,則可使用 Android Game Development Extension (AGDE) 為現有專案新增 Android 目標。AGDE 支援 Visual Studio 中的原生偵錯功能,並包含許多 Android Studio 剖析工具的獨立版本。

建構活動

您的遊戲需要建構 Activity 並進行互動。瞭解 Android 上的活動生命週期,瞭解活動的建立、啟動、繼續、暫停、停止和刪除時間。

暸解 GameActivity 資料庫,這個資料庫整合並符合原生 C 或 C++ 遊戲引擎的 Activity 相關需求 (遊戲視窗、生命週期、轉譯、處理事件)。

在螢幕上繪圖

遊戲需要在螢幕上繪製物件和精靈。瞭解 Android 裝置 SurfaceView,以及如何在遊戲引擎中設定圖形

Android 裝置支援不同的螢幕重新整理頻率。瞭解遊戲迴圈中的轉譯功能,避免造成影格遭捨棄和影格緩衝區故障。

瞭解如何達到影格使用速度,以便在 OpenGL 和 Vulkan 順利轉譯。透過 Performance Tuner 提供最佳的影格速率

使用多重取樣反鋸齒 (MSAA) 改善算繪品質。可以使用 MSAA 來減輕負擔,詳情請參閱網誌文章「Multisampled Anti-aliasing for Almost Free - On Tile-based Rendering Hardware」。

處理輸入事件

遊戲引擎會接收多種來源的輸入事件。為打造沉浸式遊戲體驗,我們支援不同的 Android 輸入來源:

輸出音訊

您的遊戲引擎需要輸出不同裝置和 Android 版本的音訊。瞭解 Oboe,我們的開放原始碼 C++ 音樂庫可以結合遊戲中的高效能音訊

使用 Oboe 來縮短延遲時間、避免特定音訊錯誤,以及自動選取最合適的原生資料庫 (例如 AAudio 或 OpenSL ES)。

管理記憶體

在 Android 裝置上,系統會嘗試盡可能使用系統記憶體 (RAM),並視情況執行各種記憶體最佳化作業,以釋出空間。瞭解如何管理記憶體用量,避免減慢遊戲速度或結束遊戲。

測試與修飾

Android 應用程式會在發生未處理的例外狀況或信號導致的意外結束時,出現當機。瞭解如何偵測及診斷當機情形、讀取堆疊追蹤、記憶體和網路例外狀況,如何使用 logcat,以及如何瞭解 Java 和 Kotlin 特定的錯誤。

發布至 Google Play

玩家會透過不同國家/地區、網路狀況和數據方案使用各種 Android 裝置下載遊戲。瞭解如何使用 Google Play 提供大型遊戲的應用程式套件和資產包,藉此在內容傳遞網路中享有優勢。