Windows 遊戲開發指南

歡迎使用 Windows 遊戲開發指南!

本指南提供您開發 Universal Windows Platform (UWP) 遊戲所需的資源與資訊的端對端集合。 本指南的英文 (美國) 版本以 PDF 格式提供。

通用 Windows 平台 (UWP) 遊戲開發簡介

當您建立 Windows 遊戲時,您有機會接觸全世界數百萬玩家的電腦和 Xbox One。 Xbox 搭載 Windows、Xbox Live、跨裝置多人遊戲、令人驚歎的遊戲社群,以及功能強大的新功能 (如通用Windows 平台 (UWP) 和 DirectX 12),Windows 遊戲讓所有年齡和流派玩家激動不已。 Universal Windows Platform (UWP) 使用電腦和 Xbox One 的通用 API 以及工具和選項,為您的遊戲提供跨 Windows 裝置的相容性,並可根據每個裝置體驗定製遊戲。

本指南提供端對端的資訊與資源集合,協助您開發遊戲。 這些部分按照遊戲開發階段進行組織,因此當您需要資訊時,您會知道從何處查詢資訊。

如果您不熟悉在 Windows 或 Xbox 上開發遊戲,入門指南可能會是您開始的地方。 遊戲開發資源部分還提供建立遊戲時有用的文件、程式和其他資源的高級調查。 如果您想從檢視某些 UWP 程式碼開始,請參閱 Game samples。

遊戲開發資源

從檔案到開發者程式、論壇、部落格和範例,有許多資源可以協助您進行遊戲開發。 當您開始開發 Windows 遊戲時,這裡提供您所要瞭解的資源彙總。

注意

部分功能透過不同的程式來管理。 本指南涵蓋廣泛的資源,因此您可能會發現某些資源無法存取,這取決於您所在的程式或您的特定開發角色。 developer.xboxlive.com例如,解析至、forums.xboxlive.com或遊戲開xdi.xboxlive.com發者網路 (GDN) 的連結。 如需與 Microsoft 合作的資訊,請參閱開發人員程式。

遊戲開發文件

在本指南中,您可以找到到相關文件的深層連結,按任務、技術和遊戲開發階段組織。 為讓您全面瞭解可用的功能,這裡是 Windows 遊戲開發的主要文件門戶。

Windows 開發人員中心主要入口網站 Windows 開發人員中心
開發 Windows 應用程式 開發 Windows 應用程式
通用 Windows 平台應用程式開發 通用 Windows 平台文件
UWP 遊戲操作指南 遊戲與 DirectX
DirectX 參照與概述 DirectX 圖形和遊戲
用於遊戲的 Azure 使用 Azure 組建和擴充您的遊戲
Azure PlayFab 完整的即時遊戲後端解決方案
Xbox One 上的 UWP 在 Xbox One 上建立 UWP 應用程式
HoloLens 上的 UWP 在 HoloLens 上建立 UWP 應用程式
Xbox Live 檔案 Xbox Live 開發人員指南
Xbox One 開發檔案 (XGD) Xbox One 開發
Xbox One 開發白皮書 (XGD) White Papers
Mixer Interactive 文件 新增互動至您的遊戲

合作夥伴中心

在Partner Center (合作夥伴中心) 註冊為開發人員是發佈 Windows 遊戲的第一步。 開發人員帳戶可讓您保留遊戲名稱,並將免費或付費的遊戲提交至所有 Windows 裝置的 Microsoft Store。 使用您的開發人員帳戶管理您的遊戲和遊戲內產品、取得詳細分析,以及啟用服務,為您的世界各地的玩家創造絕佳的體驗。

Microsoft 也提供數個開發人員程式來協助您開發和發行 Windows 遊戲。 我們建議您在註冊 Partner Center 帳戶之前,先看看是否有適合您的帳戶。 如需詳細資訊,請移至 Developer 程式

Developer 程式

Microsoft 提供數個開發人員程式來協助您開發和發行 Windows 遊戲。 如果您想要為 Xbox One 開發遊戲,並在遊戲中整合 Xbox Live 功能,請考慮加入開發者程式。 若要在 Microsoft Store 發佈遊戲,您還需要在 Partner Center 中建立開發人員帳戶。

Xbox Live 創作者計劃

Xbox Live 創作程式允許任何人將 Xbox Live 整合到他們的標題中,並發佈到 Xbox One 和 Windows。 認證程式非常簡單,在標準 Microsoft Store 原則之外不需要核准任何概念。

您可以部署、設計和發佈在 Creators Program 中的遊戲,而無需專用開發套件,僅使用零售硬體。 若要開始使用,請在您的 Xbox One 上下載 Dev Mode Activation 應用程式。

如果您想要存取更多的 Xbox Live 功能、專屬的行銷和開發支援,以及在主要 Xbox One Store上亮相的機會,請申請 ID@Xbox。

Xbox Live 創作者計劃 進一步瞭解 Xbox Live 建立者計畫

ID@Xbox

ID@Xbox 程式協助合格的遊戲開發者在 Windows 和 Xbox One 上自行發佈。 如果您想要為 Xbox One 開發,或是將 Xbox Live ID@Xbox功能 (如玩家分數、成就和排行榜)加入您的 Windows 遊戲,請註冊使用。 成為ID@Xbox開發人員,獲得您發揮創造力並取得最大成功所需的工具與支援。 我們建議您在註冊ID@Xbox合作夥伴中心的開發人員帳戶之前,先申請以下。

ID@Xbox 開發人員計畫 Xbox One 獨立開發人員計畫
ID@Xbox 消費者網站 ID@Xbox

遊戲範例

有許多 Windows 遊戲和應用程式範例可以協助您瞭解 Windows 遊戲功能,並快速開始遊戲開發。 樣本是定期開發和發佈的,因此,不要忘記偶爾在樣本入口網站上檢視一下最新資訊。 您也可以觀看 GitHub 回購,獲通知有關更改和新增操作。

通用 Windows 平台範例應用程式 Windows-universal-samples
Direct3D 12 圖形範例 DirectX-Graphics-Samples
Direct3D 11 圖形範例 directx-sdk-samples
Direct3D 11 第一人稱遊戲樣本 使用 DirectX 建立簡單的 UWP 遊戲
Direct2D 自訂影像效果範例 D2DCustomEffects
Direct2D 梯度網格樣本 D2DGradientMesh
Direct2D 相片調整範例 D2DPhotoAdjustment
Xbox Advanced Technology Group 公開範例 Xbox-ATG-Samples
Xbox Live 範例 xbox-live-samples
Xbox One 遊戲範例 (XGD) 範例
Windows 遊戲範例 (MSDN 程式碼庫) Microsoft Store 遊戲範例
JavaScript 2D 遊戲範例 使用 JavaScript 建立 UWP 遊戲
JavaScript 3D 遊戲範例 使用 three.js 建立 3D JavaScript 遊戲
MonoGame 2D UWP 遊戲範例 使用 MonoGame 2D 建立 UWP 遊戲

開發人員論壇

開發者論壇是詢問和回答遊戲開發問題,並與遊戲開發社群聯絡的理想場所。 論壇也可以成為尋找解決困難問題的現有答案的絕佳資源,而這些難題是開發人員過去面臨並解決的難題。

發佈應用程式與遊戲開發人員論壇 應用程式發佈與廣告
UWP 應用程式開發人員論壇 Developing Universal Windows Platform 應用程式
桌面應用程式開發人員論壇 Windows 桌面應用程式論壇
DirectX Microsoft Store 遊戲 (封存的論壇文章) 使用 DirectX 建立 Microsoft Store 遊戲 (已封存)
Windows 10 管理的合作夥伴開發人員論壇 XBOX 開發人員論壇:Windows 10
Xbox Live 論壇 Xbox Live 開發論壇
PlayFab 論壇 PlayFab 論壇

開發人員部落格

開發者部落格是另一個關於遊戲開發的最新資訊的絕佳資源。 您將看到有關新功能、實施詳細資訊、最佳實踐、體系結構背景等的文章。

正在建立 Windows 應用程式 (部落格) 建立 Windows 應用程式
Windows 10 (部落格貼文) Windows 10 中的貼文
Visual Studio 工程團隊部落格 Visual Studio 部落格 (英文)
Visual Studio 開發人員工具部落格 開發人員工具部落格
索瑪塞加爾的開發者工具部落格 Somasegar 的部落格
DirectX 開發人員部落格 DirectX 開發人員部落格
DirectX 12 簡介 (部落格) DirectX 12
Visual C++ 工具小組部落格 Visual C++ Team Blog (Visual C++ 小組部落格)
PIX 小組部落格 Windows 和 Xbox 上 DirectX 12 遊戲的效能調整和偵錯
通用 Windows 應用程式部署小組部落格 建立並部署 UWP 應用程式小組部落格

概念和規劃

在概念和規劃階段,您可以決定遊戲會是什麼樣子的,以及您將使用哪些技術和工具將其變為現實。

遊戲開發技術概述

當您開始為 UWP 開發遊戲時,您有多種可供選擇的圖形、輸入、音訊、網路、公用程式和程式庫。

如果您已經決定要在遊戲中使用哪些技術,就準備好。 如果沒有,UWP 應用程式的遊戲技術指南會提供許多現有技術的絕佳概觀,強烈建議您閱讀該指南,以幫助您瞭解選項及其搭配方式。

UWP 遊戲技術綜述 UWP 應用程式的遊戲技術

遊戲規劃

這些是一些高級概念和規劃主題,在規劃您的遊戲時需要考慮。

讓您的遊戲可存取 遊戲的協助工具
使用雲端建置遊戲 遊戲雲端
將您的遊戲貨幣化 遊戲商業化

選擇您的圖形技術與程式設計語言

有多種程式語言和圖形技術可用於 Windows 遊戲。 您採用的路徑取決於您正在開發的遊戲型別、開發工作室的體驗和偏好設定,以及遊戲的特定功能需求。 您會使用 C#、C++ 或 JavaScript 嗎? DirectX、XAML 或 HTML5?

DirectX

Microsoft DirectX 是最高效能的 2D 和 3D 圖形和多媒體的理想選擇。

DirectX 12 比任何先前的版本都更快且更有效。 Direct3D 12 可讓您在 Windows PC 和 Xbox One 上使用更豐富的場景、更多的物件、更複雜的效果,以及充分利用現代 GPU 硬體。

如果您想要使用熟悉的 Direct3D 11 圖形配管,您仍然可以從 Direct3D 11.3 中新增的彩現與最佳化功能中獲益。 而且,如果您是根植於 Win32 的嘗試式桌面 Windows API 開發人員,那麼您仍然可以擁有適用於 Windows 遊戲的選項。

DirectX 的廣泛功能與深度平台整合,提供最嚴苛的遊戲所需的強大功能與效能。

用於開發 UWP 的 DirectX DirectX 程式設計
教學課程:如何建立 UWP DirectX 遊戲 使用 DirectX 建立簡單的 UWP 遊戲
DirectX 概述與參考 DirectX 圖形和遊戲
Direct3D 12 程式設計指南與參考 Direct3D 12 圖形
圖形和 DirectX 12 開發影片 (YouTube 頻道) Microsoft DirectX 12 和 Graphics Education

XAML

XAML 是一種易於使用的宣告式 UI 語言,具有許多便利的功能,如動畫、指令碼、資料繫結、可縮放的向量式圖形、動態調整大小和場景圖。 XAML 非常適用於遊戲 UI、選單、精靈和 2D 圖形。 為讓 UI 配置更容易,XAML 與 Expression Blend 和 Microsoft Visual Studio 等設計和開發工具相容。 XAML 通常用於 C#,但如果您偏好使用 C++ 語言,或是您的遊戲有較高的 CPU 需求,C# 也是很好的選擇。

XAML 平台概觀 XAML 平台
XAML UI 和控制項 控制項、版面配置與文字

HTML 5

超文字標籤語言 (HTML) 是一種常用UI標籤語言,用於網頁、應用程式和 RTF 使用者端。 Windows 遊戲可以使用 HTML5 作為功能完整的表現層,具有常見的 HTML 功能,存取 Windows 平台並支援現代 Web 功能,如 AppCache、Web Worker、畫布、拖放、非同步程式設計和 SVG。 在幕後,HTML 轉譯會利用 DirectX 硬體加速的強大功能,因此您仍然可以獲得 DirectX 的效能優勢,而不需編寫任何額外的程式碼。 如果您精通 Web 開發、移植 Web 遊戲,或想要使用比其他選項更易於處理的語言和圖形圖層,HTML5 是一個不錯的選擇。 HTML5 與 JavaScript 搭配使用,但也可以呼叫使用 C# 或 C++/CX 建立的元件。

HTML5 和檔案物件模型資訊 HTML 和 DOM 參考
HTML5 W3C 建議 HTML5

結合呈現技術

Microsoft DirectX Graphics Infrastructure (DXGI) 提供多種圖形技術的互操作性和相容性。 對於高效能圖形,您可以結合 XAML 和 DirectX;使用 XAML 作為功能表和其他簡單的 UI,使用 DirectX 呈現複雜的 2D 和 3D 場景。 DXGI 還提供 Direct2D、Direct3D、DirectWrite、DirectCompute 和 Microsoft Media Foundation 之間的相容性。

DirectX Graphics Infrastructure 程式設計手冊與參考 DXGI
組合 DirectX 和 XAML DirectX 和 XAML 互操作

C++

C++/WinRT,是一種高效能、低開銷的語言,提供速度、相容性和平台存取的強大組合。 C++/WinRT 可讓您輕鬆使用 Windows 的所有精彩遊戲功能,包括 DirectX 和 Xbox Live。 您也可以重複使用現有的 C++ 程式碼和程式庫。 C++/WinRT 可建立快速的原生程式碼,不會產生垃圾回收的額外負荷,因此您的遊戲可以擁有優異的效能與低耗電量,因而可延長電池續航力。 使用 C++/WinRT 搭配 DirectX 或 XAML,或建立使用兩者組合的遊戲。

C#

C# (發音 C sharp) 是一種現代、創新的語言,它簡單、強大、型別安全、物件導向。 C# 可以快速發展,同時保留 C 語言風格的熟悉性和表達性。 C# 雖然易於使用,但擁有許多高級語言功能,例如多型、委派、lambda、閉包、迭代器方法、協方差和語言整合查詢 (LINQ) 表達式。 如果您要瞄準 XAML、想要快速開始開發您的遊戲,或是擁有之前的 C# 體驗,C# 是您絕佳的選擇。 C# 主要用於 XAML,所以如果您想要使用 DirectX,請選擇 C++,或是將遊戲的一部分撰寫為與 DirectX 互動的 C++ 元件。 或者,考慮 Win2D:用於 C# 和 C++ 的立即模式 Direct2D 圖形庫。

C# 程式設計指南與參考 C# 語言參考

使用 Windows 執行階段元件來組合語言

有通用的 Windows 平台,可以輕鬆組合用不同語言編寫的元件。 在C++、C# 或 Visual Basic 中建立 Windows 執行階段元件,然後從 JavaScript、C#、C++ 或 Visual Basic 呼叫這些元件。 這是用您選擇的語言編寫部分遊戲的絕佳方法。 元件也讓您使用僅以特定語言提供的外部程式庫,並使用您已經撰寫的舊式程式碼。

如何建立 Windows 執行階段元件 使用 C++/WinRT 的 Windows 執行階段元件

您的遊戲應該使用哪個版本的 DirectX?

如果您選擇使用 DirectX 來製作遊戲,則需要決定使用哪個版本:Microsoft Direct3D 12 或 Microsoft Direct3D 11。

DirectX 12 比任何先前的版本都更快且更有效。 Direct3D 12 可讓您在 Windows PC 和 Xbox One 上使用更豐富的場景、更多的物件、更複雜的效果,以及充分利用現代 GPU 硬體。 由於 Direct3D 12 的工作級別非常低,因此能夠為專業圖形開發團隊或經驗豐富的 DirectX 11 開發團隊提供所需的全部控制能力,以最大限度地實現圖形最佳化。

Direct3D 11.3 是一個低階圖形 API,它使用熟悉的 Direct3D 程式設計模型,並為您處理 GPU 渲染所涉及的更多複雜性。 在 Windows 和 Xbox One 中也支援它。 如果您有以 Direct3D 11 撰寫的現有引擎,而且您尚未準備好跳至 Direct3D 12,您可以使用 Direct3D 11 on 12 來取得一些效能改善。 版本 11.3+ 包含 Direct3D 12 中啟用的新的渲染和最佳化功能。

選擇 Direct3D 12 或 Direct3D 11 什麼是 Direct3D 12?
Direct3D 11 概述 Direct3D 11 圖形
Direct3D 11 on 12 概述 Direct3D 11 on 12

橋樑、遊戲引擎和中介軟體

根據遊戲的需求,使用橋樑、遊戲引擎或中介軟體可以節省開發和測試的時間和資源。 以下是一些橋接器、遊戲引擎和中介軟體的概述和資源。

Azure PlayFab

Azure PlayFab 現在已成為 Microsoft 系列的一部分,是即時遊戲的完整後端平台,也是獨立工作室開始使用的強大方式。 利用遊戲服務、即時分析和 LiveOps,大幅改進營收、業務開發和忠誠度,同時縮減成本。

PlayFab 工具與服務概述
開始使用 什麼是 PlayFab?
視訊教學系列 一系列關於 PlayFab 核心系統的示範影片
配方 配方
GitHub 存放庫 取得適用於 Android、iOS、Windows、Unity 和 Unreal 等不同平台的指令碼和SDK。
API 文件 REST API 概觀
論壇 PlayFab 論壇

Unity

Unity 提供一個平台,用於建立美觀而引人入勝的 2D、3D、VR 和 AR 遊戲和應用程式。 它可讓您快速實現您的創意願景,並將您的內容遞送至幾乎任何媒體或裝置。

從 Unity 5.4 開始,Unity 支援 Direct3D 12 開發。

Unity 遊戲引擎 Unity - Game Engine
取得 Unity 取得 Unity
Windows 的 Unity 檔案 Unity 手冊/Windows
使用 PlayFab 加入 LiveOps Quickstart:Unity 中適用於 C# 的 PlayFab 使用者端程式庫
如何使用 Mixer Interactive 將互動性新增到遊戲中 入門指南
Unity 的 Mixer SDK 混合器 Unity 外掛程式
Unity 的 Mixer SDK 參考檔案 Mixer Unity 外掛程式的 API 參考
疑難排解缺少與 .NET API 相關的元件參考 Unity 和 UWP 中遺失 .NET API
將 Unity 遊戲發佈為通用 Windows 平台應用程式 (視訊) 如何將 Unity 遊戲發佈為 UWP 應用程式
使用 Unity 製作 Windows 遊戲和應用程式 (影片) 使用 Unity 製作 Windows 遊戲和應用程式
使用 Visual Studio 進行 Unity 遊戲開發 (影片系列) 結合 Unity 與 Visual Studio 2015 的使用

Havok

Havok 的模組化工具套件和技術幫助遊戲創作者達到新的互動和沈浸感。 Havok 提供高度逼真的物理效果、互動式模擬以及令人驚歎的影視效果。 2015.1 版或更新版本在 Visual Studio 2015 中正式支援 x86、64 位元和 Arm 上的 UWP。

Havok 網站 Havok

MonoGame

MonoGame 是一個開放原始碼的跨平台遊戲開發框架,最初基於微軟的 XNA Framework 4.0。 Monogame 目前支援 Windows 和 Xbox,以及 Linux、macOS、iOS、Android 和其他幾個平台。

MonoGame 前往網站
MonoGame 文件 瀏覽文
遊戲發行 透過 NuGet 取得最新版本

Cocos2d

Cocos2d-x 是一個跨平台的開源遊戲開發引擎和工具套件,支援建構 UWP 遊戲。 從版本 3 開始,3D 功能也正在增加。

Cocos2d-x 什麼是 Cocos2d-x?
Cocos2d-x 程式設計師指南 Cocos2d-x 程式設計師指南
Windows 10 上的 Cocos2d-x (部落格) 在 Windows 10 上執行 Cocos2d-x
使用 PlayFab 加入 LiveOps Cocos2D-x 快速入門

Unreal Engine

Unreal Engine 是一套完整的遊戲開發工具,適用於各種型別的遊戲和開發人員。 對於要求最高的電腦遊戲和 PC 遊戲,Unreal Engine 被世界各地的遊戲開發者使用。

不真實的引擎概觀 Unreal Engine

BabylonJS

BabylonJS 是一個完整的 JavaScript 框架,用於使用 HTML5、WebGL、WebVR 和 Web Audio 建構 3D 遊戲。

BabylonJS BabylonJS
與 BabylonJS 建立跨平台 WebGL 遊戲 使用 BabylonJS 開發跨平台遊戲

移植遊戲

如果您有現有的遊戲,有許多資源和指南可以協助您快速將遊戲加入 UWP。

將 Windows 8 應用程式移轉至通用 Windows 平台應用程式 從 Windows Runtime 8.x 移至 UWP
將 Windows 8 應用程式移入通用 Windows 平台應用程式 (視訊) 將 8.1 應用程式移轉至 Windows 10
將 iOS 應用程式移入通用 Windows 平台應用程式 從 iOS 移到 UWP
將 Silverlight 應用程式移轉至通用 Windows 平台應用程式 從 Windows Phone Silverlight 移到 UWP
從 XAML 或 Silverlight 移入通用 Windows 平台應用程式 (視訊) 將應用程式從 XAML 或 Silverlight 移轉至 Windows 10
將 Xbox 遊戲移入通用 Windows 平台應用程式 Xbox One 上的 UWP
從 DirectX 9 移轉至 DirectX 11 從 DirectX 9 到 Universal Windows Platform (UWP) 的連線埠
從 Direct3D 11 移植到 Direct3D 12 從 Direct3D 11 移植到 Direct3D 12
從 OpenGL ES 移轉至 Direct3D 11 連線埠從 OpenGL ES 2.0 到 Direct3D 11
使用角度的 OpenGL ES 到 Direct3D 11 ANGLE
UWP 中的典型 Windows API 等效項 通用 Windows平台 (UWP) 應用程式中的 Windows API 替代方案

原型與設計

現在,您已經決定要建立的遊戲型別,以及要用於建構的工具和圖形技術,您可以開始設計和原型。 遊戲的核心是通用 Windows Platform 應用,因此您將從這裡開始。

通用 Windows 平台 (UWP) 簡介

Windows 是 Universal Windows Platform (UWP) 的主體,它提供跨多個 Windows 裝置的通用 API 平台。 UWP 演化 Windows Runtime (WinRT) 並擴展其模型,並將其整合為一個統一的核心。 針對 UWP 的遊戲可以呼叫所有裝置共用的 WinRT API。 因為 UWP 提供保證的 API 層,您可以選擇建立單一應用程式套件,以跨 Windows 裝置安裝。 如果您願意,您的遊戲仍然可以呼叫遊戲執行裝置所特有的 API (包括一些來自 Win32 和 .NET 的經典Windows API)。

以下是詳細討論 Universal Windows Platform App 的絕佳指南,建議閱讀這些指南以幫助您瞭解平台。

通用 Windows 平台應用程式簡介 什麼是通用 Windows 平台應用程式?

UWP 開發入門

安裝並準備開發通用 Windows Platform 應用程式是快速而簡單的。 以下指南將逐步引導您完成此過程。

UWP 開發入門 開始使用 Windows 應用程式
正在設定 UWP 開發 開始設定

如果您絕對是 UWP 程式設計的初學者,並且考慮在遊戲中使用 XAML (請參閱選擇您的圖形技術和程式語言),則絕對初學者影片系列的 Windows 10 開發是一個很好的起點。

使用 XAML (部落格貼文) 宣佈 Windows 10 絕對入門系列 絕對初學者的 Windows 10 開發

UWP 開發概念

通用 Windows 平台應用程式開發概述 開發 Windows 應用程式
UWP 中的網路程式設計概述 網路和 Web 服務
在遊戲中使用 Windows.Web.HTTP 和 Windows.Networking.Sockets 遊戲的網路功能
UWP 中的非同步程式設計概念 非同步程式設計

Windows 桌面 API 和 UWP

這些連結可協助您在桌面和 UWP 程式碼之間進行互操作。

使用現有的 C++ 程式碼進行 UWP 遊戲開發 如何:在 UWP 應用程式中使用現有的 C++ 程式碼
適用於 Win32 和 COM API 的 Windows 執行階段 API 適用於 UWP 應用程式的 Win32 與 COM API
UWP 中不支援的 CRT 函式 通用 Windows 平台應用程式不支援 CRT 函式
Windows API 的替代方案 通用 Windows平台 (UWP) 應用程式中的 Windows API 替代方案

程式存留期管理

Process Lifetime Management,亦稱應用程式存留期,描述通用 Windows 平台應用程式可以轉換的各種啟動狀態。 您的遊戲可以啟動、暫停、恢復或終止,並且可以透過多種方式在這些狀態中轉換。

處理應用程式生命週期轉換 應用程式週期
使用 Microsoft Visual Studio 觸發應用程式轉換 如何在 Visual Studio 中觸發 UWP 應用程式的暫停、繼續和背景事件

設計遊戲 UX

一個偉大遊戲的源頭是靈感設計。

遊戲與應用程式共用一些共同的使用者介面元素和設計原則;但遊戲通常具有獨特的外觀、感覺和設計目標,以利於其使用者體驗。 當週到的設計套用到兩個方面時,遊戲就會成功 — 您的遊戲何時應該使用經過測試的 UX,何時應該分歧、創新? 您為遊戲選擇的呈現技術,DirectX 、XAML、HTML5 或三者的某種組合 — 將影響實現細節,但是您應用的設計原則很大程度上獨立於這些選擇。

與 UX 設計不同,遊戲設計 (如關卡設計、節奏設計、世界設計和其他方面) 本身就是一種藝術形式,由您和您的團隊決定,本開發指南中並未涉及。

UWP 設計基礎與准則 設計 UWP 應用程式
設計應用程式生命週期狀態 UX 啟動、暫停和恢復指南
為 Xbox One 和電視螢幕設計您的 UWP 應用程式 針對 Xbox 和電視進行設計

色彩指引與調色盤

在遊戲中遵循一致的色彩指引,可改善美觀、輔助導覽,是讓玩家瞭解選單和 HUD 功能的強大工具。 警告、損壞、XP 和成就等遊戲元素的一致著色可導致更清晰的 UI,並減少明確標籤的需求。

色彩指南 Windows 11 中的色彩

印刷樣式

正確使用排版可以增強遊戲的很多方面,包括 UI 版面配置、導覽、可讀性、氣氛、品牌和玩家沈浸感。

排版指南 Best Practices: Typography

UI 對應

UI 地圖是遊戲導航和選單的佈局,以流程圖表示。 UI 地圖有助於所有相關利益方瞭解遊戲的介面和導航路徑,並可以在開發週期早期暴露潛在障礙和死角。

UI 對應指南 Best Practices: UI Map

遊戲音訊

以下是使用 XAudio2、XAPO 和 Windows Sonic 在遊戲中實作音訊的指南和參考資料。 XAudio2 是一個低層的音訊 API,為開發高效能音訊引擎提供訊號處理和混合的基礎。 XAPO API 允許建立跨平台音訊處理對象 (XAPO),用於 Windows 和 Xbox 上的 XAudio2。 Windows Sonic 音訊支援可讓您將 Dolby Atmos for Home Theater、Dolby Atmos for Headphone 和 Windows HRTF 支援新增至您的遊戲或串流媒體應用程式。

XAudio2 API XAudio2 的程式設計手冊和 API 參考
建立跨平台音訊處理物件 XAPO 概觀
介紹音訊概念 遊戲音訊
Windows Sonic 概觀 空間音效
Windows Sonic 空間聲音範例 Xbox Advanced Technology Group 音訊範例

Direct3D 12

瞭解 Direct3D 12 (與 Direct3D 11比較) 的新功能與不同之處,以及如何開始使用 Direct3D 12 進行程式設計。

Direct3D 12 程式設計指南與參考 Direct3D 12 圖形
設定程式設計環境 Direct3D 12 程式設計環境設定
如何建立基本元件 建立基本的 Direct3D 12 元件
Direct3D 12 中的變更 從 Direct3D 11 移轉至 Direct3D 12 的重要變更
如何從 Direct3D 11 連線至 Direct3D 12 從 Direct3D 11 移植到 Direct3D 12
資源繫結概念 (涵蓋描述元、描述元表格、描述元棧積和根簽章) Direct3D 12 中的資源繫結
管理記憶體 Direct3D 12 中的記憶體管理

DirectX 開發

DirectX 遊戲開發指南和參考資料。

用於開發 UWP 的 DirectX DirectX 程式設計
教學課程:如何建立 UWP DirectX 遊戲 使用 DirectX 建立簡單的 UWP 遊戲
DirectX 與 UWP 應用程式模型的互動 應用程式物件和 DirectX
DirectX 概述與參考 DirectX 圖形和遊戲
DirectX 12 基本功能 (視訊) Better Power, Better Performance:DirectX 12 的遊戲

DirectX 工具套件與程式庫

DirectX Tool Kit、DirectX 紋理處理程式庫、 DirectX Mesh 幾何處理程式庫、UVAtlas 程式庫和 DirectX Math 程式庫提供紋理、網格、精靈以及其他公用程式功能和 DirectX 開發的協助程式類別。 這些程式庫可協助您節省開發時間與精力。

取得 DirectX 12 的 DirectX 工具套件 DirectXTK 12
取得 DirectX 11 的 DirectX 工具套件 DirectXTK
取得 DirectX 紋理處理庫 DirectXTex
取得 DirectX Mesh 幾何處理庫 DirectXMesh
取得 UVAtlas,用於建立及裝訂等高圖紋理圖集 UVAtlas
取得 DirectX Math 程式庫 DirectXMath
DirectX TK (GitHub 問題) 中的 Direct3D 12 支援 Support for DirectX 12

合作夥伴提供的 DirectX 資源

以下是外部合作夥伴建立的一些其他 DirectX 文件。

Nvidia: DX12 Do's and Don'ts (部落格貼文) DX12 Do's and Don'ts,已更新!
Intel: DirectX 3D 12 的平行處理 使用 DirectX 3D 12 進行平行處理
Intel:如何使用 DirectX 12 實作明確的多介面卡應用程式 DirectX 12 中的多重介面卡支援
Intel: Intel、蘇州 Snail 和 Microsoft 的合作白皮書 教學課程:將應用程式移轉至 DirectX 12,第 1 部分

實際執行環境

在這個階段,您的工作室已完全投入工作,並進入生產週期,工作將分散到整個團隊。 你正在打磨原型,進行重構並將它擴展成完整的遊戲。

通知和即時拼貼

磚是開始功能表上遊戲的表現。 磚和通知可以驅動玩家的興趣,即使他們目前沒有玩您的遊戲。

正在開發瓷磚和徽章 磚、徽章和通知
即時拼貼與通知的範例說明 通知範例
適應性圖塊範本 (部落格貼文) Adaptive Tile Templates - Schema 和 Documentation
設計磚和徽章 磚和徽章的指導方針
Windows 10 應用程式,可互動式開發即時磚範本 通知視覺化工具
Visual Studio 的 UWP 磚產生器擴充功能 使用單一影像建立所有所需拼貼的工具
UWP Tile Generator extension for Visual Studio (部落格貼文) 使用 UWP Tile Generator 工具的提示

啟用應用程式內產品 (附加元件) 購買

附加產品 (Add-on) 是玩家可以在遊戲中購買的附加專案。 附加元件可以是遊戲等級、物品或玩家可能喜歡的任何其他專案。 適當使用後,附加元件可提供收入,同時改善遊戲體驗。 您可以透過合作夥伴中心定義並發佈遊戲的附加元件,並在遊戲程式碼中啟用應用程式內購買。

耐用的附加元件 啟用應用程式內產品購買
耗材附加元件 啟用消費性 App 內產品購買
附加元件詳細資訊與提交 附加元件提交
監控遊戲的附加元件銷售與人口統計 附加元件下載數報告

偵錯、效能最佳化與監控

若要最佳化效能,您可以充分利用 Windows 中的遊戲模式,讓您的遊戲玩家能充分發揮現有硬體的容量,獲得最佳的遊戲體驗。

Windows Performance Toolkit (WPT) 由能產生 Windows 作業系統及應用程式之深入效能設定檔的效能監視工具所組成。 這對於監控記憶體使用情況和提高遊戲效能尤其有用。 Windows Performance Toolkit 包含在 Windows SDK 和 Windows ADK 中。 此套件包含兩個獨立的工具:Windows 效能記錄器 (WPR) 和 Windows 效能分析器 (WPA)。 ProcDump 屬於 Windows Sysinternals,是一個命令列公用程式,可監視 CPU 尖峰並在遊戲崩潰時產生傾印檔案。

效能測試您的程式碼 Azure Test Plans
使用遊戲裝置資訊取得 Xbox 主機型別 遊戲裝置資訊
使用遊戲模式 API 取得硬體資源的獨佔或優先存取權,藉此提升效能 遊戲模式
取得 Windows Performance Toolkit (WPT) Windows 效能工具組
從 Windows ADK 取得 Windows Performance Toolkit (WPT) Windows ADK
取得 ProcDump ProcDump

進階 DirectX 技術與概念

DirectX 開發的某些部分可能會微妙而複雜。 在生產環境中,當您需要深入瞭解 DirectX 引擎的詳細資訊或調試有困難的效能問題時,本節中的資源和資訊會有所幫助。

Windows 上 DirectX 12 的效能調整與偵錯工具 在 Windows 上介紹 PIX
Direct3D 12 程式設計手冊 Direct3D 12 圖形
組合 DirectX 和 XAML DirectX 和 XAML 互操作

高動態範圍 (HDR) 內容開發

建立使用 HDR 全彩功能的遊戲內容。

瞭解如何呈現 HDR 內容,並偵測目前的顯示器是否支援它 Direct3D 12 HDR 樣本
使用 DirectX 建立和設定進階色彩 Direct2D 進階彩色影像呈現範例

全球化和當地語系化

開發適用於 Windows 平台的世界級遊戲,並瞭解 Microsoft 頂級產品所內建的國際功能。

為全球市場準備遊戲 全球化和當地語系化

提交並發佈遊戲

以下指南和資訊有助於使發佈和提交過程儘可能順利進行。

發佈

您將使用 Partner Center,來發佈和管理您的遊戲套件。

合作夥伴中心應用程式發佈 發佈 Windows 應用程式
使用 Azure Active Directory (AAD) 將使用者新增至您的合作夥伴中心帳戶 建立客戶群組
對遊戲評分 (部落格貼文) 現已推出:單一年齡分級系統,可簡化應用程式提交

打包和上傳

分割和群組內容以啟用串流安裝 UWP 應用程式串流安裝
建立可選套件,例如 DLC 遊戲內容 選用套件及相關集合的製作
打包您的 UWP 遊戲 封裝應用程式
打包您的 UWP DirectX 遊戲 打包您的 UWP DirectX 遊戲
將您的遊戲包裝為協力廠商開發人員 (部落格貼文) 建立可上傳的套裝軟體,但不具備發行者的商店帳戶存取權
使用 MakeAppx 建立應用程式套件與應用程式套件套件 使用應用程式套件工具 MakeAppx.exe 建立包
使用 SignTool 數位簽署檔案 使用 SignTool 簽署檔案並驗證檔案中的簽章
正在上傳您的遊戲並設定其版本 上傳應用程式套件

政策和認證

不要讓認證問題耽誤遊戲發行。 以下是需要備註的政策和常見認證問題。

Microsoft Store 應用程式開發人員合約 應用程式開發人員合約
在 Microsoft Store 發佈應用程式的原則 Microsoft Store 原則
如何避免一些常見的應用程式認證問題 避免常見的認證失敗

存放區資訊清單 (StoreManifest.xml)

Store資訊清單 (StoreManifest.xml) 是您可以包含在應用程式套件中的選擇性組態檔。 存放區資訊清單提供不屬於檔案的其他AppxManifest.xml功能。 例如,如果目標裝置沒有指定的最低 DirectX 功能等級或指定的最低系統記憶體,您可以使用Store資訊清單來封鎖遊戲安裝。

存放區資訊清單結構描述 StoreManifest 結構描述 (Windows 10)

遊戲生命週期管理

完成開發並出貨遊戲後,遊戲並未結束。 您可能已經完成第 1 版的開發,但您的遊戲在市場中的旅程才剛剛開始。 您需要監視使用情況和錯誤報告、回應使用者意見反應,並將更新發佈到您的遊戲。

Partner Center 分析與促銷

Partner Center 分析 分析應用程式效能
瞭解您的客戶如何在遊戲中使用 Xbox 功能 Xbox 分析報告
回應客戶檢閱 回應客戶檢閱
推廣遊戲的方法 吸引客戶並推廣您的應用程式

Visual Studio Application Insights

Visual Studio Application Insights 為您的已發佈遊戲提供效能、遙測和使用情況分析。 Application Insights 可幫助您在遊戲發行後偵測並解決問題,持續監控和改善使用情況,以及瞭解玩家將如何繼續與您的遊戲進行互動。 Application Insights 的工作方式是將 SDK 新增至您的應用程式,將遙測傳送至 Azure 入口網站。

應用程式效能與使用量分析 Application Insights 概觀
Azure 監視器 Azure 監視器概觀

用於分析和促銷的第三方解決方案

使用 GameAnalytics 瞭解玩家行為 GameAnalytics
將您的 UWP 遊戲連線至 Google Analytics 取得適用於 Google Analytics 的 Windows SDK
使用 Facebook App 安裝廣告將您的遊戲推廣給 Facebook 使用者 取得適用於 Facebook 的 Windows SDK
使用 Vungle 將視訊廣告新增至您的遊戲 下載適用於 Windows 的 Vungle SDK

建立和管理內容更新

若要更新已發佈的遊戲,請提交具有更高版本號的新應用程式套件。 當軟體套件完成提交和認證後,它將作為更新自動提供給客戶。

更新您的遊戲並設定其版本 封裝版本編號
遊戲包管理指南 應用程式套件管理指南

正在將 Xbox Live 新增至您的遊戲

Xbox Live 是連接世界各地數以百萬計的玩家的首要遊戲網路。 開發人員可以存取 Xbox Live 功能,這些功能可以有機地增加遊戲的觀眾,包括 Xbox Live 線上狀態、排行榜、雲端儲存、遊戲中心、俱樂部、派對聊天、遊戲 DVR 等。

注意

如果您想要開發啟用 Xbox Live 的遊戲,有數個選項可供您選擇。 如需各種程式的資訊,請參閱 選擇 Xbox Live 開發人員程式。

Xbox Live 概述 Xbox Live 文件

適用於 Xbox Live 建立者程式中的開發人員

概觀 Joining the Creators Program

針對 ID@Xbox 計畫中的受管理合作夥伴和開發人員

概觀 Xbox Live 入門,適用於受管理的合作夥伴
範例 Xbox 遊戲開發範例

其他資源

主要會議 (例如 GDC 和 //build) 的影片 遊戲開發影片