Windows 遊戲開發指南
本文內容
通用 Windows 平台 (UWP) 遊戲開發簡介
遊戲開發資源
概念和規劃
原型與設計
實際執行環境
提交並發佈遊戲
遊戲生命週期管理
正在將 Xbox Live 新增至您的遊戲
其他資源
顯示其他 5 個
歡迎使用 Windows 遊戲開發指南!
注意
在投資以UWP架構為基礎的遊戲之前,請注意UWP不再處於作用中開發狀態。 此外,Xbox 市集中不再接受UWP型遊戲。
本指南提供您開發 Universal Windows Platform (UWP) 遊戲所需的資源與資訊的端對端集合。 本指南的英文 (美國) 版本以 PDF 格 式提供。
本指南提供端對端的資訊與資源集合,協助您開發遊戲。 這些部分按照遊戲開發階段進行組織,因此當您需要資訊時,您會知道從何處查詢資訊。
如果您不熟悉在 Windows 上開發遊戲, 開始使用指南可能是您想要開始的地方。 遊戲開發資源 部分還提供建立遊戲時有用的文件、程式和其他資源的高級調查。 如果您想從檢視某些 UWP 程式碼開始, 請參閱 Game samples。
從檔案到開發者程式、論壇、部落格和範例,有許多資源可以協助您進行遊戲開發。 當您開始開發 Windows 遊戲時,這裡提供您所要瞭解的資源彙總。
注意
部分功能透過不同的程式來管理。 本指南涵蓋廣泛的資源,因此您可能會發現某些資源無法存取,這取決於您所在的程式或您的特定開發角色。 如需與 Microsoft 合作的資訊,請參 閱開發人員程式。
在本指南中,您可以找到到相關文件的深層連結,按任務、技術和遊戲開發階段組織。 為讓您全面瞭解可用的功能,這裡是 Windows 遊戲開發的主要文件門戶。
展開資料表
在Partner Center (合作夥伴中心) 註冊為開發 人員是發佈 Windows 遊戲的第一步。 開發人員帳戶可讓您保留遊戲名稱,並將免費或付費的遊戲提交至所有 Windows 裝置的 Microsoft Store。 使用您的開發人員帳戶管理您的遊戲和遊戲內產品、取得詳細分析,以及啟用服務,為您的世界各地的玩家創造絕佳的體驗。
Microsoft 也提供數個開發人員程式來協助您開發和發行 Windows 遊戲。 我們建議您在註冊 Partner Center 帳戶之前,先看看是否有適合您的帳戶。 如需詳細資訊,請移至 Developer 程式
若要在 Microsoft Store 發佈遊戲,您還需要在 Partner Center 中建立開發人員帳戶。
有許多 Windows 遊戲和應用程式範例可以協助您瞭解 Windows 遊戲功能,並快速開始遊戲開發。 樣本是定期開發和發佈的,因此,不要忘記偶爾在樣本入口網站上檢視一下最新資訊。 您也可以觀看 GitHub 回購,獲通知有關更改和新增操作。
展開資料表
開發者論壇是詢問和回答遊戲開發問題,並與遊戲開發社群聯絡的理想場所。 論壇也可以成為尋找解決困難問題的現有答案的絕佳資源,而這些難題是開發人員過去面臨並解決的難題。
展開資料表
開發者部落格是另一個關於遊戲開發的最新資訊的絕佳資源。 您將看到有關新功能、實施詳細資訊、最佳實踐、體系結構背景等的文章。
展開資料表
在概念和規劃階段,您可以決定遊戲會是什麼樣子的,以及您將使用哪些技術和工具將其變為現實。
當您開始為 UWP 開發遊戲時,您有多種可供選擇的圖形、輸入、音訊、網路、公用程式和程式庫。
如果您已經決定要在遊戲中使用哪些技術,就準備好。 如果沒有,UWP 應用程式的遊戲技術指南會提供許多 現有技術的絕佳概觀,強烈建議您閱讀該指南,以幫助您瞭解選項及其搭配方式。
展開資料表
這些是一些高級概念和規劃主題,在規劃您的遊戲時需要考慮。
展開資料表
讓您的遊戲可存取
遊戲的 協助工具
使用雲端建置遊戲
遊戲 雲端
將您的遊戲貨幣化
遊戲 商業化
有多種程式語言和圖形技術可用於 Windows 遊戲。 您採用的路徑取決於您正在開發的遊戲型別、開發工作室的體驗和偏好設定,以及遊戲的特定功能需求。 您會使用 C#、C++ 或 JavaScript 嗎? DirectX、XAML 或 HTML5?
Microsoft DirectX 是最高效能的 2D 和 3D 圖形和多媒體的理想選擇。
DirectX 12 比任何先前的版本都更快且更有效。 Direct3D 12 可讓您在 Windows PC 和 Xbox One 上使用更豐富的場景、更多的物件、更複雜的效果,以及充分利用現代 GPU 硬體。
如果您想要使用熟悉的 Direct3D 11 圖形配管,您仍然可以從 Direct3D 11.3 中新增的彩現與最佳化功能中獲益。 而且,如果您是根植於 Win32 的嘗試式桌面 Windows API 開發人員,那麼您仍然可以擁有適用於 Windows 遊戲的選項。
DirectX 的廣泛功能與深度平台整合,提供最嚴苛的遊戲所需的強大功能與效能。
展開資料表
XAML 是一種易於使用的宣告式 UI 語言,具有許多便利的功能,如動畫、指令碼、資料繫結、可縮放的向量式圖形、動態調整大小和場景圖。 XAML 非常適用於遊戲 UI、選單、精靈和 2D 圖形。 為讓 UI 配置更容易,XAML 與 Expression Blend 和 Microsoft Visual Studio 等設計和開發工具相容。 XAML 通常用於 C#,但如果您偏好使用 C++ 語言,或是您的遊戲有較高的 CPU 需求,C# 也是很好的選擇。
展開資料表
超文字標籤語言 (HTML) 是一種常用UI標籤語言,用於網頁、應用程式和 RTF 使用者端。 Windows 遊戲可以使用 HTML5 作為功能完整的表現層,具有常見的 HTML 功能,存取 Windows 平台並支援現代 Web 功能,如 AppCache、Web Worker、畫布、拖放、非同步程式設計和 SVG。 在幕後,HTML 轉譯會利用 DirectX 硬體加速的強大功能,因此您仍然可以獲得 DirectX 的效能優勢,而不需編寫任何額外的程式碼。 如果您精通 Web 開發、移植 Web 遊戲,或想要使用比其他選項更易於處理的語言和圖形圖層,HTML5 是一個不錯的選擇。 HTML5 與 JavaScript 搭配使用,但也可以呼叫使用 C# 或 C++/CX 建立的元件。
展開資料表
Microsoft DirectX Graphics Infrastructure (DXGI) 提供多種圖形技術的互操作性和相容性。 對於高效能圖形,您可以結合 XAML 和 DirectX;使用 XAML 作為功能表和其他簡單的 UI,使用 DirectX 呈現複雜的 2D 和 3D 場景。 DXGI 還提供 Direct2D、Direct3D、DirectWrite、DirectCompute 和 Microsoft Media Foundation 之間的相容性。
展開資料表
C++/WinRT, 是一種高效能、低開銷的語言,提供速度、相容性和平台存取的強大組合。 C++/WinRT 可讓您輕鬆使用 Windows 的所有精彩遊戲功能,包括 DirectX 和 Xbox Live。 您也可以重複使用現有的 C++ 程式碼和程式庫。 C++/WinRT 可建立快速的原生程式碼,不會產生垃圾回收的額外負荷,因此您的遊戲可以擁有優異的效能與低耗電量,因而可延長電池續航力。 使用 C++/WinRT 搭配 DirectX 或 XAML,或建立使用兩者組合的遊戲。
C# (發音 C sharp) 是一種現代、創新的語言,它簡單、強大、型別安全、物件導向。 C# 可以快速發展,同時保留 C 語言風格的熟悉性和表達性。 C# 雖然易於使用,但擁有許多高級語言功能,例如多型、委派、lambda、閉包、迭代器方法、協方差和語言整合查詢 (LINQ) 表達式。 如果您要瞄準 XAML、想要快速開始開發您的遊戲,或是擁有之前的 C# 體驗,C# 是您絕佳的選擇。 C# 主要用於 XAML,所以如果您想要使用 DirectX,請選擇 C++,或是將遊戲的一部分撰寫為與 DirectX 互動的 C++ 元件。 或者,考慮 Win2D:用於 C# 和 C++ 的立即模式 Direct2D 圖形庫。
展開資料表
有通用的 Windows 平台,可以輕鬆組合用不同語言編寫的元件。 在C++、C# 或 Visual Basic 中建立 Windows 執行階段元件,然後從 JavaScript、C#、C++ 或 Visual Basic 呼叫這些元件。 這是用您選擇的語言編寫部分遊戲的絕佳方法。 元件也讓您使用僅以特定語言提供的外部程式庫,並使用您已經撰寫的舊式程式碼。
展開資料表
如果您選擇使用 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 中啟用的新的渲染和最佳化功能。
展開資料表
根據遊戲的需求,使用橋樑、遊戲引擎或中介軟體可以節省開發和測試的時間和資源。 以下是一些橋接器、遊戲引擎和中介軟體的概述和資源。
Azure PlayFab 現在已成為 Microsoft 系列的一部分,是即時遊戲的完整後端平台,也是獨立工作室開始使用的強大方式。 利用遊戲服務、即時分析和 LiveOps,大幅改進營收、業務開發和忠誠度,同時縮減成本。
展開資料表
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 提供高度逼真的物理效果、互動式模擬以及令人驚歎的影視效果。 2015.1 版或更新版本在 Visual Studio 2015 中正式支援 x86、64 位元和 Arm 上的 UWP。
展開資料表
Unreal Engine 是一套完整的遊戲開發工具,適用於各種型別的遊戲和開發人員。 對於要求最高的電腦遊戲和 PC 遊戲,Unreal Engine 被世界各地的遊戲開發者使用。
展開資料表
BabylonJS 是一個完整的 JavaScript 框架,用於使用 HTML5、WebGL、WebVR 和 Web Audio 建構 3D 遊戲。
展開資料表
現在,您已經決定要建立的遊戲型別,以及要用於建構的工具和圖形技術,您可以開始設計和原型。 遊戲的核心是通用 Windows Platform 應用,因此您將從這裡開始。
通用 Windows 平台 (UWP) 提供跨 Windows 裝置的通用 API 平臺。 針對 UWP 的遊戲可以呼叫所有裝置共用的 WinRT API。 因為 UWP 提供保證的 API 層,您可以選擇建立單一應用程式套件,以跨 Windows 裝置安裝。 如果您願意,您的遊戲仍然可以呼叫遊戲執行裝置所特有的 API (包括一些來自 Win32 和 .NET 的經典Windows API)。
以下是詳細討論 Universal Windows Platform App 的絕佳指南,建議閱讀這些指南以幫助您瞭解平台。
展開資料表
安裝並準備開發通用 Windows Platform 應用程式是快速而簡單的。 以下指南將逐步引導您完成此過程。
展開資料表
如果您絕對是 UWP 程式設計的初學者,並且考慮在遊戲中使用 XAML (請參閱選擇您的圖形技術和程式語言),則絕對 初學者影片系列的 Windows 10 開發是一個很好的起點。
展開資料表
展開資料表
這些連結可協助您在桌面和 UWP 程式碼之間進行互操作。
展開資料表
Process Lifetime Management,亦稱應用程式存留期,描述通用 Windows 平台應用程式可以轉換的各種啟動狀態。 您的遊戲可以啟動、暫停、恢復或終止,並且可以透過多種方式在這些狀態中轉換。
展開資料表
一個偉大遊戲的源頭是靈感設計。
遊戲與應用程式共用一些共同的使用者介面元素和設計原則;但遊戲通常具有獨特的外觀、感覺和設計目標,以利於其使用者體驗。 當週到的設計套用到兩個方面時,遊戲就會成功 — 您的遊戲何時應該使用經過測試的 UX,何時應該分歧、創新? 您為遊戲選擇的呈現技術,DirectX 、XAML、HTML5 或三者的某種組合 — 將影響實現細節,但是您應用的設計原則很大程度上獨立於這些選擇。
與 UX 設計不同,遊戲設計 (如關卡設計、節奏設計、世界設計和其他方面) 本身就是一種藝術形式,由您和您的團隊決定,本開發指南中並未涉及。
展開資料表
在遊戲中遵循一致的色彩指引,可改善美觀、輔助導覽,是讓玩家瞭解選單和 HUD 功能的強大工具。 警告、損壞、XP 和成就等遊戲元素的一致著色可導致更清晰的 UI,並減少明確標籤的需求。
展開資料表
正確使用排版可以增強遊戲的很多方面,包括 UI 版面配置、導覽、可讀性、氣氛、品牌和玩家沈浸感。
展開資料表
UI 地圖是遊戲導航和選單的佈局,以流程圖表示。 UI 地圖有助於所有相關利益方瞭解遊戲的介面和導航路徑,並可以在開發週期早期暴露潛在障礙和死角。
展開資料表
以下是使用 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 支援新增至您的遊戲或串流媒體應用程式。
展開資料表
瞭解 Direct3D 12 (與 Direct3D 11比較) 的新功能與不同之處,以及如何開始使用 Direct3D 12 進行程式設計。
展開資料表
DirectX 遊戲開發指南和參考資料。
展開資料表
DirectX Tool Kit、DirectX 紋理處理程式庫、 DirectX Mesh 幾何處理程式庫、UVAtlas 程式庫和 DirectX Math 程式庫提供紋理、網格、精靈以及其他公用程式功能和 DirectX 開發的協助程式類別。 這些程式庫可協助您節省開發時間與精力。
展開資料表
以下是外部合作夥伴建立的一些其他 DirectX 文件。
展開資料表
在這個階段,您的工作室已完全投入工作,並進入生產週期,工作將分散到整個團隊。 你正在打磨原型,進行重構並將它擴展成完整的遊戲。
磚是開始功能表上遊戲的表現。 磚和通知可以驅動玩家的興趣,即使他們目前沒有玩您的遊戲。
展開資料表
附加產品 (Add-on) 是玩家可以在遊戲中購買的附加專案。 附加元件可以是遊戲等級、物品或玩家可能喜歡的任何其他專案。 適當使用後,附加元件可提供收入,同時改善遊戲體驗。 您可以透過合作夥伴中心定義並發佈遊戲的附加元件,並在遊戲程式碼中啟用應用程式內購買。
展開資料表
若要最佳化效能,您可以充分利用 Windows 中的遊戲模式,讓您的遊戲玩家能充分發揮現有硬體的容量,獲得最佳的遊戲體驗。
Windows Performance Toolkit (WPT) 由能產生 Windows 作業系統及應用程式之深入效能設定檔的效能監視工具所組成。 這對於監控記憶體使用情況和提高遊戲效能尤其有用。 Windows Performance Toolkit 包含在 Windows SDK 和 Windows ADK 中。 此套件包含兩個獨立的工具:Windows 效能記錄器 (WPR) 和 Windows 效能分析器 (WPA)。 ProcDump 屬於 Windows Sysinternals,是一個命 令列公用程式,可監視 CPU 尖峰並在遊戲崩潰時產生傾印檔案。
展開資料表
DirectX 開發的某些部分可能會微妙而複雜。 在生產環境中,當您需要深入瞭解 DirectX 引擎的詳細資訊或調試有困難的效能問題時,本節中的資源和資訊會有所幫助。
展開資料表
建立使用 HDR 全彩功能的遊戲內容。
展開資料表
開發適用於 Windows 平台的世界級遊戲,並瞭解 Microsoft 頂級產品所內建的國際功能。
展開資料表
以下指南和資訊有助於使發佈和提交過程儘可能順利進行。
您將使用 Partner Center, 來發佈和管理您的遊戲套件。
展開資料表
展開資料表
不要讓認證問題耽誤遊戲發行。 以下是需要備註的政策和常見認證問題。
展開資料表
存放區資訊清單 (StoreManifest.xml)
Store資訊清單 (StoreManifest.xml
) 是您可以包含在應用程式套件中的選擇性組態檔。 存放區資訊清單提供不屬於檔案的其他AppxManifest.xml
功能。 例如,如果目標裝置沒有指定的最低 DirectX 功能等級或指定的最低系統記憶體,您可以使用Store資訊清單來封鎖遊戲安裝。
展開資料表
完成開發並出貨遊戲後,遊戲 並未結束。 您可能已經完成第 1 版的開發,但您的遊戲在市場中的旅程才剛剛開始。 您需要監視使用情況和錯誤報告、回應使用者意見反應,並將更新發佈到您的遊戲。
展開資料表
Visual Studio Application Insights
Visual Studio Application Insights 為您的已發佈遊戲提供效能、遙測和使用情況分析。 Application Insights 可幫助您在遊戲發行後偵測並解決問題,持續監控和改善使用情況,以及瞭解玩家將如何繼續與您的遊戲進行互動。 Application Insights 的工作方式是將 SDK 新增至您的應用程式,將遙測傳送至 Azure 入口網站。
展開資料表
展開資料表
若要更新已發佈的遊戲,請提交具有更高版本號的新應用程式套件。 當軟體套件完成提交和認證後,它將作為更新自動提供給客戶。
展開資料表
Xbox Live 是連接世界各地數以百萬計的玩家的首要遊戲網路。 開發人員可以存取 Xbox Live 功能,這些功能可以有機地增加遊戲的觀眾,包括 Xbox Live 線上狀態、排行榜、雲端儲存、遊戲中心、俱樂部、派對聊天、遊戲 DVR 等。
注意
如果您想要開發啟用 Xbox Live 的遊戲,有數個選項可供您選擇。 如需各種程式的資訊,請參閱 選擇 Xbox Live 開發人員程式。
展開資料表
適用於 Xbox Live 建立者程式中的開發人員
展開資料表
針對 ID@Xbox 計畫中的受管理合作夥伴和開發人員
展開資料表
展開資料表
主要會議 (例如 GDC 和 //build) 的影片
遊戲開發影片