Windows 游戏开发指南
欢迎使用 Windows 游戏开发指南!
注意
在投资基于 UWP 框架开发游戏之前,请注意,UWP 不再处于积极开发状态。 此外,不再在 Xbox 应用商店中接受基于 UWP 的游戏。
本指南提供了你在开发通用 Windows 平台 (UWP) 游戏时所需的端到端资源和信息集合。 本指南的英语(美国)版本以 PDF 格式提供。
通用 Windows 平台 (UWP) 游戏开发简介
本指南提供了端到端的信息和资源集合,在你开发游戏时可为你提供帮助。 本指南的章节根据游戏开发阶段进行组织,因此你知道在何处找到所需的信息。
如果你不熟悉在 Windows 上开发游戏, 则入门 指南可能是你想要开始的地方。 游戏开发资源部分还提供了对创建游戏有帮助的文档、计划和其他资源的概要调查。 如果你想首先查看一些 UWP 代码,请参阅游戏示例。
游戏开发资源
从文档到开发人员计划、论坛、博客和示例,有许多资源可帮助你开启游戏开发之旅。 下面是在开始开发 Windows 游戏时要了解的资源综述。
注意
某些功能是通过各种计划进行管理的。 本指南涵盖广泛的资源,因此你可能会发现有些资源无法访问,具体取决于你参与的计划或特定的开发角色。 有关 Microsoft 合作信息,请参阅开发人员计划。
游戏开发文档
在整篇指南中,你都可以找到按任务、技术和游戏开发阶段组织的相关文档的深度链接。 为了让你全面了解可用内容,以下是有关 Windows 游戏开发的主要文档门户。
Windows 开发人员中心主门户 | Windows 开发人员中心 |
开发 Windows 应用 | 开发 Windows 应用 |
通用 Windows 平台应用开发 | 通用 Windows 平台文档 |
UWP 游戏操作指南 | 游戏和 DirectX |
DirectX 参考和概述 | DirectX 图形和游戏 |
面向游戏的 Azure | 使用 Azure 构建和缩放游戏 |
Azure PlayFab | 实时游戏的完整后端解决方案 |
Mixer Interactive 文档 | 为游戏添加交互性 |
合作伙伴中心
在合作伙伴中心以开发人员身份注册是发布 Windows 游戏的第一步。 开发人员帐户让你可以保留游戏名称和将免费或付费游戏提交到适用于所有 Windows 设备的 Microsoft Store。 使用开发人员帐户来管理游戏和游戏内产品、获取详细分析,并启用可为全球玩家创建极佳体验的服务。
Microsoft 还提供了多个开发人员计划来帮助你开发和发布 Windows 游戏。 我们建议在注册合作伙伴中心帐户之前查看是否有适合你的计划。 有关详细信息,请转到开发人员计划
开发人员计划
若要在 Microsoft Store 中发布游戏,你还需要在合作伙伴中心中创建开发人员帐户。
游戏示例
有许多 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 |
Windows 游戏示例(MSDN 代码库) | Microsoft Store 游戏示例 |
JavaScript 2D 游戏示例 | 用 JavaScript 创建 UWP 游戏 |
JavaScript 3D 游戏示例 | 使用 three.js 创建 3D JavaScript 游戏 |
开发人员论坛
若要提问和回答游戏开发问题以及联系游戏开发社区,开发人员论坛是一个不错的选择。 论坛也是绝佳的资源,在其中可以找到开发人员在过去遇到并解决的难题的解答。
发布应用和游戏开发人员论坛 | 发布和应用内广告 |
UWP 应用开发人员论坛 | 开发通用 Windows 平台应用 |
桌面应用程序开发人员论坛 | Windows 桌面应用程序论坛 |
DirectX Microsoft Store 游戏(存档的论坛文章) | 用 DirectX 构建 Microsoft Store 游戏(存档) |
Windows 10 托管合作伙伴开发人员论坛 | XBOX 开发人员论坛:Windows 10 |
PlayFab 论坛 | PlayFab 论坛 |
开发人员博客
开发人员博客是提供有关游戏开发的最新信息的另一种极佳资源。 在博客中可以找到有关新功能、实施细节、最佳做法、体系结构背景等的文章。
构建 Windows 应用(博客) | 构建 Windows 应用 |
Windows 10(博客文章) | 有关 Windows 10 的文章 |
Visual Studio 工程团队博客 | Visual Studio 博客 |
Visual Studio 开发人员工具博客 | 开发人员工具博客 |
Somasegar 开发人员工具博客 | Somasegar 的博客 |
DirectX 开发人员博客 | DirectX 开发人员博客 |
DirectX 12 简介(博客文章) | DirectX 12 |
Visual C++ 工具团队博客 | 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 电脑和 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 和图形教育 |
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 标记语言。 Windows 游戏可以使用 HTML5 作为全功能的表示层。HTML5 提供用户熟悉的 HTML 功能、对通用 Windows 平台的访问以及对新式 Web 功能(例如 AppCache、Web Workers、画布、拖放、异步编程和 SVG)的支持。 在幕后,HTML 渲染利用 DirectX 硬件加速的强大功能,因此你仍可以获得 DirectX 的性能优势,而无需编写任何额外的代码。 如果你擅长于 Web 开发、打算移植 Web 游戏或者想要使用与其他选项相比更易获取的语言和图形图层,则 HTML5 是一个不错的选择。 HTML5 可与 JavaScript 一起使用,同时还可以调用以 C# 或 C++/CX 创建的组件。
HTML5 和文档对象模型信息 | HTML 和 DOM 参考 |
HTML5 W3C 建议 | HTML5 |
组合呈现技术
Microsoft DirectX 图形基础结构 (DXGI) 通过多种图形技术提供互操作性和兼容性。 对于高性能图形,你可以将 XAML 与 DirectX 结合使用;可将 XAML 用于菜单和其他简单 UI,并将 DirectX 用于渲染复杂的 2D 和 3D 场景。 DXGI 还提供 Direct2D、Direct3D、DirectWrite、DirectCompute 和 Microsoft Media Foundation 之间的兼容性。
DirectX 图形基础结构编程指南和参考 | 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# 易于使用,但它还具有许多高级语言功能,如多态性、委派、lambdas、关闭、迭代方法、协变以及语言集成查询 (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 电脑和 Xbox One 上的现代 GPU 硬件。 由于 Direct3D 12 在较低级别工作,因此它能够向专业图形开发团队或有经验的 DirectX 11 开发团队提供最大程度优化图形所需的所有控制。
Direct3D 11.3 是一种低级别 Graph 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
现在作为 Microsoft 系列一部分的 Azure PlayFab 是一个完整的实时游戏后端平台,同时也是独立工作室发展壮大的一种有效方式。 通过游戏服务、实时分析和 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 - 游戏引擎 |
获取 Unity | 获取 Unity |
适用于 Windows 的 Unity 文档 | Unity 手册/Windows |
使用 PlayFab 添加 LiveOps | 快速入门:Unity 中适用于 C# 的 PlayFab 客户端库 |
如何使用 Mixer Interactive 为游戏添加交互性 | 入门指南 |
Mixer SDK for Unity | Mixer Unity 插件 |
Mixer SDK for Unity 参考文档 | 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 或更高版本正式支持 x86、64 位和 Arm 上 Visual Studio 2015 中的 UWP。
Havok 网站 | Havok |
Unreal Engine
Unreal Engine 是面向所有类型的游戏和开发人员推出的一整套游戏开发工具。 世界各地的游戏开发人员都喜欢使用 Unreal Engine 来开发要求最苛刻的控制台和电脑游戏。
Unreal Engine 概述 | Unreal Engine |
BabylonJS
BabylonJS 是一个完整的 JavaScript 框架,在其中能够用 HTML5、WebGL、WebVR 和 Web Audio 构建 3D 游戏。
BabylonJS | BabylonJS |
使用 BabylonJS 构建跨平台的 WebGL 游戏 | 使用 BabylonJS 开发跨平台游戏 |
原型制作和设计
确定要创建的游戏类型以及用于构建游戏的工具和图形技术后,可以随时开始进行设计和原型制作。 从本质上讲,你的游戏就是一个通用 Windows 平台应用,因此首先需要创建一个 UWP 应用。
通用 Windows 平台 (UWP) 简介
通用 Windows 平台(UWP)跨 Windows 设备提供通用 API 平台。 面向 UWP 的游戏可以调用所有设备通用的 WinRT API。 由于 UWP 提供有保证的 API 层,因此你可以选择创建一个将在 Windows 设备上安装的应用包。 如果需要,游戏仍可以调用特定于运行游戏的设备的 API(包括 Win32 和 .NET 中的一些经典 Windows API)。
下面是一些高质量的指南,其中详细介绍了通用 Windows 平台应用,建议阅读这些指南以帮助了解该平台。
通用 Windows 平台应用简介 | 什么是通用 Windows 平台应用? |
UWP 开发入门
可以快速轻松地为开发通用 Windows 平台应用做好准备。 以下指南可引导你逐步完成该过程。
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 替代项 |
进程生存期管理
进程生存期管理(或应用生命周期)描述通用 Windows 平台应用可以转换到的各种激活状态。 游戏可以激活、暂停、恢复或终止,并可以通过多种方式在这些状态之间转换。
处理应用生命周期转换 | 应用生命周期 |
使用 Microsoft Visual Studio 触发应用转换 | 如何在 Visual Studio 中触发 UWP 应用的暂停、恢复和后台事件 |
设计游戏 UX
优秀的游戏起源于受到启发的设计。
游戏与应用共享一些通用的用户界面元素和设计原则;不过游戏通常具有独特的外观且以用户体验为设计目标。 将深思熟虑的设计应用于这两个方面时,游戏就会取得成功 – 游戏何时应使用经过测试的 UX,何时应采用截然不同的创新设计? 为游戏选择的呈现技术(DirectX、XAML、HTML5 或三者的某种组合)将影响实施细节,但应用的设计原则在很大程度上与这种选择无关。
与 UX 设计不同,游戏方式设计(例如关卡设计、节奏、世界设计和其他方面)本身就是一种艺术形式,这取决于你和你的团队,本开发指南未涵盖此类内容。
UWP 设计基础知识和准则 | 设计 UWP 应用 |
应用生命周期状态设计 | 有关启动、暂停和恢复的 UX 准则 |
颜色准则和调色板
在游戏中遵循一致的颜色准则可以提高美观度、辅助导航,并且是向玩家告知菜单和 HUD 功能的强大手段。 一致的游戏元素(如警告、危害、XP 和成就)颜色可使 UI 更简洁明了,同时减少对显式标签的需求。
颜色指南 | Windows 11 中的颜色 |
版式
适当使用版式可以增强游戏的许多方面,包括 UI 布局、导航、易读性、氛围、品牌和玩家沉浸感。
版式指南 | 最佳做法:版式 |
UI 地图
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 Headphones 和 Windows HRTF 支持。
XAudio2 API | XAudio2 的编程指南和 API 参考 |
创建跨平台音频处理对象 | XAPO 概述 |
音频概念简介 | 游戏音频 |
Windows Sonic 概述 | 空间音效 |
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 游戏 |
使用 UWP 应用模型进行 DirectX 交互 | 应用对象和 DirectX |
DirectX 概述和参考 | DirectX 图形和游戏 |
DirectX 12 基础知识(视频) | 更好的计算能力和性能:使用 DirectX 12 的游戏 |
DirectX 工具包和库
DirectX 工具包、DirectX 纹理处理库、DirectXMesh 几何处理库、UVAtlas 库和 DirectXMath 库为 DirectX 开发提供纹理、网格、子画面和其他实用工具功能与帮助程序类。 这些库可以帮助你节省开发时间和精力。
获取 DirectX 12 的 DirectX 工具包 | DirectXTK 12 |
获取 DirectX 11 的 DirectX 工具包 | DirectXTK |
获取 DirectX 纹理处理库 | DirectXTex |
获取 DirectXMesh 几何处理库 | DirectXMesh |
获取用于创建和打包 isochart 纹理图集的 UVAtlas | UVAtlas |
获取 DirectXMath 库 | DirectXMath |
DirectXTK 中的 Direct3D 12 支持(GitHub 问题) | 对 DirectX 12 的支持 |
合作伙伴提供的 DirectX 资源
下面是外部合作伙伴创建的其他一些 DirectX 文档。
Nvidia:DX12 宜忌事项(博客文章) | DX12 宜忌事项,更新版! |
Intel:使用 DirectX 3D 12 实现并行处理 | 使用 DirectX 3D 12 实现并行处理 |
Intel:如何使用 DirectX 12 实现显式多适配器应用程序 | DirectX 12 中的多适配器支持 |
Intel:Intel、Suzhou Snail 和 Microsoft 的协作白皮书 | 教程:将应用迁移到 DirectX 12 – 第 1 部分 |
生产
在此阶段,你的工作室已完全投入工作并转向生产周期,并且为整个团队分配了工作。 你正在完善、重构和扩展原型,以将其制作成完整的游戏。
通知和动态磁贴
磁贴是游戏在“开始”菜单中的一种呈现方式。 即使玩家当前未玩游戏,磁贴和通知也能引起他们的兴趣。
开发磁贴和锁屏提醒 | 磁贴、锁屏提醒和通知 |
演示动态磁贴和通知的示例 | 通知示例 |
自适应磁贴模板(博客文章) | 自适应磁贴模板 - 架构和文档 |
设计磁贴和锁屏提醒 | 磁贴和徽章准则 |
用于以交互方式开发动态磁贴模板的 Windows 10 应用 | 通知可视化工具 |
Visual Studio 的 UWP 磁贴生成器扩展 | 使用单个图像创建全部所需磁贴的工具 |
Visual Studio 的 UWP 磁贴生成器扩展(博客文章) | 有关使用 UWP 磁贴生成器工具的提示 |
启用应用内产品(加载项)购买
加载项(应用内产品)是供玩家在游戏中购买的补充项。 加载项可以是游戏级别、项目或玩家可能喜欢的任何其他内容。 如果使用得当,则加载项可以在改进游戏体验的同时,提供收入。 你通过合作伙伴中心定义和发布游戏的加载项,并在你的游戏代码中启用应用内购买。
持久性加载项 | 启用应用内产品购买 |
可消耗加载项 | 启用可消费应用内产品购买 |
加载项详细信息和提交 | 加载项提交 |
监视游戏的加载项销售和统计数据 | 加载项购置报告 |
调试、性能优化和监视
若要优化性能,可以利用 Windows 中的游戏模式,通过充分利用当前硬件的能力,为玩家提供可能最佳的游戏体验。
Windows Performance Toolkit (WPT) 由性能监视工具组成,这些工具可生成 Windows 操作系统和应用程序的深入性能配置文件。 此工具包在监视内存使用量和改善游戏性能方面尤其有用。 Windows Performance Toolkit 包含在 Windows SDK 和 Windows ADK 中。 此工具包由两个独立的工具组成:Windows Performance Recorder (WPR) 和 Windows Performance Analyzer (WPA)。 作为 Windows Sysinternals 的一部分的 ProcDump 是一个命令行实用工具,用于监视 CPU 峰值并在游戏崩溃期间生成转储文件。
对代码进行性能测试 | Azure Test Plans |
使用游戏模式 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 热门产品中的国际功能。
为游戏面向全球市场做好准备 | 全球化和本地化 |
提交和发布游戏
以下指南和信息可帮助你尽可能顺利地完成发布和提交过程。
发布
你将使用合作伙伴中心来发布和管理你的游戏包。
合作伙伴中心应用发布 | 发布 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)
应用商店清单 (StoreManifest.xml
) 是一个可以包含在应用包中的可选配置文件。 应用商店清单提供不属于 AppxManifest.xml
文件的其他功能。 例如,如果目标设备不具备指定的最低 DirectX 功能级别或指定的最小系统内存,你可以使用应用商店清单阻止游戏安装。
应用商店清单架构 | 应用商店清单架构 (Windows 10) |
游戏生命周期管理
完成开发并交付游戏并不意味着大功告成。 你可能完成了版本 1 的开发,但你在市场中的游戏之路才刚刚开始。 你需要监视使用情况和错误报告、回复用户的反馈,并为游戏发布更新。
合作伙伴中心分析和推广
合作伙伴中心分析 | 分析应用性能 |
回复客户评论 | 回复客户评论 |
推广游戏的方法 | 吸引客户并推广应用 |
Visual Studio Application Insights
Visual Studio Application Insights 为发布的游戏提供性能、遥测和使用情况分析功能。 Application Insights 可帮助你检测和解决游戏发布后出现的问题、持续监视和改善使用情况,并了解玩家如何继续与游戏交互。 Application Insights 的工作原理是将一个 SDK 添加到应用中,该 SDK 会将遥测数据发送到 Azure 门户。
应用程序性能和使用情况分析 | Application Insights 概述 |
Azure Monitor | Azure Monitor 概述 |
用于分析和推广的第三方解决方案
使用 GameAnalytics 了解玩家行为 | GameAnalytics |
将 UWP 游戏连接到 Google Analytics | 获取适用于 Google Analytics 的 Windows SDK |
使用 Facebook 应用安装广告向 Facebook 用户推广游戏 | 获取适用于 Facebook 的 Windows SDK |
使用 Vungle 将视频广告添加到游戏中 | 下载 Vungle SDK for Windows |
创建和管理内容更新
若要更新发布的游戏,请提交带有更高版本号的新应用包。 该包完成提交和认证过程后,它将自动作为一项更新提供给客户使用。
更新游戏并控制其版本 | 包版本编号 |
游戏包管理指南 | 应用包管理指南 |
将 Xbox Live 添加到游戏
Xbox Live 是一个卓越的游戏网络,连接着世界各地的数百万玩家。 开发人员获取可以有机增加其游戏受众的 Xbox Live 功能的访问权限,包括 Xbox Live 状态、排行榜、云保存、游戏中心、俱乐部、群聊天、游戏 DVR,等等。
注意
如果你想要开发支持 Xbox Live 的游戏,可以使用多个选项。 有关各种计划的信息,请参阅选择 Xbox Live 开发人员计划。
Xbox Live 概述 | Xbox Live 文档 |
面向参与 Xbox Live 创意者计划的开发人员
概述 | 加入 Xbox Live 创意者计划 |
适用于 ID@Xbox 计划中托管的合作伙伴和开发人员
概述 | 面向托管合作伙伴的 Xbox Live 入门 |
示例 | Xbox 游戏开发示例 |
其他资源
GDC 和 //build 等重大会议的视频 | 游戏开发视频 |