
- 掌機相容性 (https://aka.ms/hhcompatguide)。在可攜式、支援觸控且以控制器為優先的裝置上打造絕佳遊戲體驗的指南、工具和範例。
- 掌機效能 (https://aka.ms/hhperfguide)。本系列著重於開發人員可採取的簡單步驟,讓行動裝置上的遊戲執行更久、更快。
最佳化遊戲內設定
為什麼遊戲內設定很重要?
如系列簡介 (https://aka.ms/hhperfintro) 中所述,遊戲內設定是開發人員可用來控制遊戲在電池供電裝置上更有效率執行的幾種方式中的第一種。當玩家在市集中檢視 PC 上的 XBOX 遊戲時,如果其裝置能使用最常見 (通常為預設) 的遊戲設定以 30FPS 或更高的速率遊玩該遊戲,產品詳細資料頁面 (PDP) 就會顯示來自效能適配功能的建議。
- 是的,它是 PC! 與 Windows 遊戲筆記型電腦一樣,掌機遊戲裝置是可攜式 PC。它們配備觸控螢幕,並可使用電池在各種電源狀態下執行,以平衡效能和運作時間。
- 不,它不只是 PC! 與 Windows 遊戲筆記型電腦不同,掌機遊戲 PC 預期能以電池電力遊玩數小時,因此需要能協助實現這一點的智慧遊戲設定。掌機 PC 可能沒有鍵盤或滑鼠。從 PC 上的 XBOX 體驗,到與遊戲啟動器的互動以及遊玩時可能出現的每個提示,所有使用者介面層都需要支援控制器。原生觸控支援也能為玩家帶來便利性與協助工具方面的極大好處。
遊戲內設定的主要建議為何?
以下是本文重要重點和各節的摘要:- 調整您的遊戲規模,使其在 Windows 遊戲掌機上順暢執行。 這表示開發人員需要專門針對電池供電的裝置進行測試和建立設定。這些設定應縮減遊戲規模以延長電池續航力,但不能犧牲遊戲體驗或整體美術風格。開發人員需要在市場上具代表性的裝置 (例如高效率的 ROG XBOX Ally 掌機) 上測試這些設定。
- 實作硬體自動偵測及遊戲內設定的套用。 有些遊戲現在已具備此功能。開發人員需要思考遊戲中有哪些選項可以對應到硬體功能,以建立智慧預設值。
- 讓 ROG XBOX Ally 和 ROG XBOX Ally X 作為您的首要參考。 這些裝置是第一批具備本系列所述設定最佳化的 Windows 遊戲掌機,這些最佳化由 XBOX + ASUS 實作。
指導方針 | 實作硬體自動偵測及遊戲內設定的套用
我們提供原生 C++ 範例 (https://aka.ms/hhexpsample) 和 Unity Managed C# 範例 (https://aka.ms/hhexpsample_unity)。這些範例讓開發人員更容易將偵測程式碼複製並貼到自己的遊戲中。這些程式碼片段可用於取得裝置內硬體元件功能的相關資訊。開發人員接著可以使用這些功能,協助為其遊戲建立可在各種裝置間調整的合理預設值。 以 ROG XBOX Ally 和 ROG XBOX Ally X 為例,以下是程式碼片段傳回的值,以及可在 C++ 範例原始程式碼中找到該值之位置的連結。請參閱以星號 (*) 標示並在表格後詳細說明的項目。關於 UI/縮放比例的重要注意事項。 因應螢幕解析度的差異進行調整,有時可能會在遊戲內 UI 的可讀性方面產生較不理想的結果,在較小的螢幕上尤其如此。您可以在此找到一些關於螢幕大小和中斷點的一般應用程式指引,可能對您的遊戲設計師有所幫助:/windows/apps/design/layout/screen-sizes-and-breakpoints-for-responsive-design。
- ”*” = VRAM 配置可由使用者選取。這些是預設值且不保證,僅作為基準分析計算的範例。
- ”**” = 此裝置的建議預設解析度為 720p。開發人員應測試其設定,以判斷哪些設定適合其遊戲順暢執行並據以設定。此外,在測試顯示遊戲在較高解析度下執行速率低於 30FPS 的情況下,某些個別遊戲設定可以覆寫向遊戲公告的螢幕解析度以提升效率,但玩家可以覆寫此設定。
- ”***” = 對於 DirectX 遊戲,現有的建議是使用 QueryVideoMemoryInfo 動態判斷遊戲的視訊記憶體預算。範例 GetMemoryInfo.cpp 中使用的 (GlobalMemoryStatusEx) 方法是額外的解決方案,適用於需要了解遊戲使用記憶體之其他層面的情況。
指導方針 | 建立靜態遊戲內設定
靜態遊戲內設定只會考量上次檢查時單一電源狀態下的硬體組態。建立靜態遊戲內設定時,首先要以客觀指標 (例如畫面播放速率) 為目標。玩家期望 遊戲了解自身順暢遊玩所需的條件,並預設以最佳設定安裝,以提供至少 1080p30 的效能 (例如 ROG XBOX Ally X) 或 720p30 的效能 (ROG XBOX Ally)。 測試步驟預期結果 您將建立/擷取至少 [2] 組遊戲內設定,這些設定同樣能為高效能類別的 Windows 遊戲掌機 (例如 ROG XBOX Ally X) 和高效率類別 (例如 ROG XBOX Ally) 維持穩定的畫面播放速率。
- 使用電池測試。 在未接電源且電池充滿的掌機上,以您的預設設定安裝並啟動遊戲。
- 在啟動時以及資產載入完成/IO 穩定後,使用 FPS 計量器監視效能。 按下 Windows + G 存取 Windows Game Bar 的每秒畫面格數 (FPS) 計量器,或執行 PresentMon (如需詳細資訊,請參閱 GitHub 專案) 即時記錄和追蹤 FPS。
- 著重於最低 FPS 而非平均 FPS 設定。 調整設定,直到 FPS 持續以至少 1080p30 (例如 ROG XBOX Ally X 或同等硬體) 或 720p30 (例如 ROG XBOX Ally 或同等硬體) 執行。
- 為高效能和高效率硬體組態建立遊戲內設定庫。 儲存這些設定以供日後在不同裝置上測試,以確認不同硬體 SKU (例如 ROG XBOX Ally 與 ROG XBOX Ally X) 的理想設定。
指導方針 | 建立動態遊戲內設定
動態遊戲內設定比靜態遊戲內設定更精細。它們會對應到至少兩種電源狀態 (接上電源或使用電池),且在理想情況下可以在遊戲執行時回應電源模式變更事件。玩家期望 特別是在 Windows 遊戲掌機上,當我在接上電源 和使用電池電力之間來回切換時,我期望遊戲能盡可能平衡效能和電池續航力。遊戲了解自身順暢遊玩所需的條件,並預設以最佳設定安裝,以提供至少 1080p30 的效能 (例如 ROG XBOX Ally X) 或 720p30 的效能 (ROG XBOX Ally) 測試步驟預期結果 您將建立/擷取最多 [4] 組遊戲內設定,這些設定會在遊戲啟動時或在收到 電源模式已變更的通知時套用。 這些遊戲內設定會對應到高效能和高效率類別的 Windows 遊戲掌機,也會對應到每部裝置頻繁切換電池時的 接上電源和使用電池狀態。
- 使用電池測試。 在未接電源且電池充滿的掌機上,以您的預設設定安裝並啟動遊戲。
- 在啟動時以及資產載入完成/IO 穩定後,使用 FPS 計量器監視效能。 按下 Windows + G 存取 Windows Game Bar 的每秒畫面格數 (FPS) 計量器,或執行 PresentMon 即時記錄和追蹤 FPS。
- 著重於最低 FPS 而非平均 FPS 設定。 調整設定,直到 FPS 持續以至少 1080p30 (例如 ROG XBOX Ally X 或同等硬體) 或 720p30 (例如 ROG XBOX Ally 或同等硬體) 執行。
- 為高效能和高效率硬體組態建立遊戲內設定庫。 儲存這些設定以供日後在不同裝置上測試,以確認不同硬體 SKU (例如 ROG XBOX Ally 與 ROG XBOX Ally X) 的理想設定。
- 實作偵測方法。 請參閱本文中的動態預設偵測一節。
指導方針 | 偵測硬體電源狀態
- 動態 (建議): 如果遊戲使用 RegisterPowerSettingNotificiation API 搭配任何已知的 電源設定 GUID 註冊接收電源配置/設定檔變更,系統也會傳送更多 WM_POWERBROADCAST 訊息,其 WPARAM 值設為 PBT_POWERSETTINGCHANGE,並在 LPARAM 值中提供額外詳細資料。例如,註冊 GUID_POWERSCHEME_PERSONALITY 會在系統從平衡變更為高效能等情況時發出通知。使用 GUID_ACTIVE_POWERSCHEME 會在發生任何電源設定檔變更時發出通知。使用 GUID_ENERGY_SAVER_STATUS 會在裝置進入電池/省電模式時發出通知。
- 靜態: 可以如範例所示手動查詢裝置,輕鬆判斷裝置是接上電源還是使用電池執行。
支援 | 如果我對針對掌機遊戲 PC 最佳化遊戲設定有疑問或疑慮,該去哪裡?
除了下列資源摘要之外,參與 ID@XBOX 等 XBOX 開發人員計畫的開發人員可以在論壇 (https://forums.xboxlive.com – 需要使用有效的 NDA 帳戶登入) 與我們聯繫。所有開發人員也可以在 Microsoft Game Dev Discord 伺服器 (https://discord.gg/msftgamedev) 上與我們聯繫。- Microsoft Game Dev 掌機開發中樞: https://developer.microsoft.com/games/resources/handheld-development/
- Microsoft Windows 遊戲掌機程式碼範例:https://developer.microsoft.com/games/articles/2025/07/windows-gaming-handheld-code-samples/
- Microsoft Game Dev Discord: https://discord.gg/msftgamedev
- Microsoft NDA 開發人員論壇: https://forums.xboxlive.com (使用「handheld」標籤將您的要求轉給我們的主題專家)
