UWP 和 Xbox One 上的开发





5.00/5 (1投票)
对 Xbox One 不同开发模式的细分,以及新 UWP 零售解锁模式可能实现的功能的清晰指导。使所有开发者能够在 Xbox One UWP 平台进行旁加载和开发。
到目前为止,每个人都应该看过或至少听说过 Phil Spenser 在 Build2016 主题演讲中宣布的 Xbox One 开发以及公众“开发者模式”的开放/启用(终于),这是自 360 上的 XBLIG 时代以来一直追求的,也是 ID@Xbox 团队之前对微软最新主机上独立游戏开发未来所做的承诺。
引用有关入门信息,请查阅微软 DX 技术推广工程师 Lee Stott 的这篇精彩文章,他精确解释了您需要什么才能开始: https://blogs.msdn.microsoft.com/uk_faculty_connection/2016/05/05/xbox-one-and-retail-dev-kit-mode-develop-for-xbox-one-uwp-at-your-university-or-college/
在许多承诺、所谓的延迟(尽管微软表示他们从未明确说过何时,每个人都只是假定是现在)以及大量关于此事的“流言”报道之后,这是一段漫长而痛苦的旅程。终于,它来了,大门敞开,但这到底意味着什么?我回答了很多问题,其中一些是(更多)煽动性文章扭曲了措辞来表达其他意思的问题,并试图澄清事实,现在我终于可以付诸行动,尝试帮助理清这一切。
请注意,这些文字是我个人的观点,并非微软或 Xbox/ID@Xbox 的官方声明。这里提到的所有内容都是公开信息(只是在一个地方清晰简洁)。在可能的情况下,我增加了澄清(为了回应疑问),并尽可能地接近 NDA(保密协议)的底线。作为微软和 ID@Xbox 的 MVP,有一些特权,其中之一就是帮助人们开发微软平台和 Xbox One。
回顾过去
我一直是所有游戏开发(或一般开发)相关事宜的长期支持者和技术推广者,展示所有人们需要知道的制作出色游戏的东西。这个故事的很大一部分始于 Xbox Live 独立游戏开发计划,这是任何开发者(出版工作室之外)首次尝试制作跨平台游戏并在零售游戏主机上发布的机会,
通过一个统一的 SDK,XNA 框架允许您直接在您的零售 Xbox 360 主机或 Windows 桌面上开发和发布您的游戏。后来,您还可以发布到 Windows Phone/Mobile,然后在出色的 MonoGame 团队的帮助下,甚至进一步。这是一个代码密集型的环境,许多主流开发者都掌握并尝试过,不少人甚至实现了他们的梦想,将游戏推向公众并赚到了钱,其中一些开发者甚至已经加入了 ID@Xbox 计划并继续发布游戏。
XNA 也构成了大多数提供游戏开发(以及其他路径,它并非唯一)大学的课程,作为教授托管 C# 编码技能的简单方法,它确实影响深远。尽管 XNA 不再直接受微软支持,但它仍然存在并可用,尽管 XBLIG 项目将随着 360 的退役而很快结束,特别是因为新主机不再销售。
新公告——在 Xbox One 上开发意味着什么?
所以,这个公告终于发布了,通过最新的 Xbox One 构建,您可以将您的零售 Xbox 变成一个开发机器,就像以前 360 时代一样。但这到底意味着什么?它能支持什么,更重要的是,它不能做什么?
让我们澄清一个简单的事情,这绝不是 XBLIG。
在为 Xbox One 开发时,您有两条路径可以选择:
- 注册 ID@Xbox (http://xbox.com/id) 并使用开发者 Xbox One 开发套件
这使您能够制作 Xbox 独占游戏,并通过 Xbox 游戏商店发布它们(尽管微软宣布此商店将与 Windows 商店合并,形成一个新的统一商店) - 注册 Windows Insider Program (https://insider.windows.com/) 和 Windows Developer Center (https://developer.windows.com/en-us/windows) 以使用您的零售版 Xbox One。
使用您的 Windows Store 开发者账户或其他 Live ID,您可以构建 Xbox UWP 应用和游戏,将其旁加载到您的零售 Xbox 上,然后通过 Windows Store 销售。由于它们是 UWP,它们也将在任何其他 UWP 平台(例如桌面/移动设备/HoloLens 等)上运行。
这是两条截然不同的路径,而且主机在物理上也有区别,为什么这很重要我稍后会解释。
零售解锁到底能为您提供什么?
零售解锁主要目的是让您在开发应用或游戏时,能够直接旁加载和发布本地应用到您的零售主机。一旦您满意,您将把您的应用或游戏上传到 Windows 商店(就像任何其他 UWP 应用一样),并发布供任何人获取。这个系统与目前 Windows 10 桌面和移动设备上使用的系统几乎完全相同,只需启用您的设备,加载并测试,然后发布到商店。
如果您阅读了媒体和 Build 大会上的公告,Xbox One 的 UWP 部署主要侧重于应用程序,游戏仍然受支持并预期存在,但您需要注意在为此受众构建游戏时的一些性能考量。
1:资源
与 XBLIG 一样,您无法完全访问主机的资源,这主要是因为首先它是一款游戏主机,因此独占游戏标题享有优先权。如果您的游戏运行缓慢或可能使用超出以下可用性范围的资源,那么只需联系 ID@Xbox 团队并注册成为 ID 开发者,就这么简单。
下表列出了 UWP 包的关键资源限制,对于应用程序来说这可能永远不是问题,对于游戏(如移动设备或平板电脑)您只需确保您能够在 Xbox 上的 UWP 功能范围内舒适地工作,这是大多数游戏开发者应该已经习惯的。
UWP 资源可用性
我听过很多开发者抱怨无法通过零售解锁获得完整的 Xbox 访问权限,或者要求更多的访问权限,如上所述,如果您超出此范围,那么只需加入 ID,它仍然是免费的!
2:尺寸
在构建您的作品时,一个重要的考虑因素是尺寸,通常被称为“10 英尺体验”。这表明,尽管主机将尽力将您的应用或游戏缩放到大屏幕上,但有时您构建应用或游戏时所用的宽高比差异可能不匹配,并可能导致图像失真。
同样,大多数游戏开发者都应该意识到这一点,大多数应用开发者也应该如此,当您开发一个旨在在桌面、平板电脑或移动设备上运行的通用应用时,如果您没有正确规划,内容就会被挤压或拉伸。当放大到 60 英寸电视上时,情况可能不如预期。
图片来源:dsuil.com
3:多平台
目前还不清楚 Xbox 游戏将如何在统一的 Windows 商店中显示,但我们可以很确定它会以类似于当前仪表盘的方式工作。因此,您将能够选择在哪些平台上发布游戏。然而,这是 UWP,它的最大目标之一就是允许您构建一个项目并将其分发到所有 Windows 平台,因此一个项目、一个列表、一套营销素材和屏幕截图适用于所有目标平台。
简单地说,所有系统都使用一个 UWP 包,这是一个宏伟的目标,但并非没有考虑(不仅仅是上面列出的尺寸)。然而,所有关于如何构建可在平板电脑/手机和桌面之间扩展的应用程序和游戏的资源和学习都同样适用于您为另一个平台体验构建。尽可能寻求通用化和共享,并在有意义的地方添加“点亮”功能,请记住,Xbox 没有内置加速度计!挥舞它会显得很傻,但它有 Kinect!
开发套件能给您带来什么?
除了上一节中明显的限制解除之外,使用开发套件只是让您获得更多权限,但它也有其“规矩”。主要是您需要使用不同的开发环境、一套不同的开发工具和资源。主要区别在于您将有一条严格的认证路径和一套不同的规则需要遵循。Windows Store 有一套认证规则和指南以及测试,但这与 Xbox 上的完整开发者体验相比简直不值一提。
真正需要强调的是,UWP 零售开发者模式与 Xbox 原生开发套件流程之间的差异几乎是天壤之别。它们不是一回事,专门为 Xbox 构建项目是一项相当大的任务。而 UWP 流程更适合业余开发者(当然,许多认真的开发者也出于简单考虑而选择 UWP 路径 ),它是一种更加流畅和简单的方法。
Xbox Live 的故事
我之所以把这一节分开,是因为它是一个很好的讨论点,Xbox Live 系统(成就、排行榜、事件、朋友等)的主要任务是为所有支持平台上的所有 Windows Live 启用游戏提供一个统一的后端,让您可以在任何打算部署的应用程序或游戏(是的,我说的是应用程序)中启用单一服务。访问 Live 服务的唯一要求(截至撰写本文时)是通过申请加入 ID@Xbox 计划。
您仍然可以在没有加入 ID@Xbox 计划的情况下,为 Xbox 和所有其他 Windows 平台构建和发布 UWP 应用程序,但要启用 Live 服务,您必须是注册的 ID 开发者。
在注册 ID 时,请明确您打算针对的平台并开始构建。如果您目前只做 Windows/移动端,并希望稍后转向 Xbox,那么这通常是最佳路径。一旦您有在线玩家,转换很容易,而且会更容易。如果您只是在没有故事的情况下申请 Xbox(并且只是想要免费的开发套件),那么您可能会失望,请合理并制定计划。Kickstarter 或 Steam 也适用相同的规则,制定销售游戏的计划,以及您的游戏有什么特别之处能吸引消费者注意(这将在未来的文章中详细介绍)。
哪些开发环境支持 UWP?
有许多框架、工具集和引擎支持 UWP 部署,大多数在连接时也支持原生部署,只需拨动开关,重新编译即可。您只需联系 ID 或供应商的开发代理以获得进一步的访问权限。
一些最常见的是
- MonoGame – 从 3.4 版本开始支持 UWP,现在从 3.5 版本开始支持 Xbox One 原生(通过 ID 可获得 Xbox 原生版单独构建)
- Unity 3D – 从 4 版和现在的 5 版开始支持 UWP 和 Xbox One(Xbox 原生版需要单独的插件)
- 虚幻引擎 – 支持 Windows 10 和原生 Xbox 访问(通过插件进行 Xbox 原生访问),UWP 支持正在计划中,但尚未公布日期。
- CryEngine – 仅通过许可证支持 Xbox One 原生。UWP 支持将在后续推出。
- 通过微软工具使用 DirectX – 当然,您可以为 UWP 或 Xbox Native 编写 C++ 游戏(请务必查看出色的 <!--StartFragment -->https://directxtk.codeplex.com/ <!--EndFragment --> 获取这方面的帮助)
- 通过 Visual Studio 或 Xamarin 开发 UWP 应用程序和游戏。
- GameMaker 有 UWP 发布路径,目前还没有 Xbox 的迹象。
毫无疑问,在 UWP 故事中还会出现更多,当然,您也可以使用微软的开发和部署工具来构建自己的 UWP 应用。
清晰明了
希望这篇文章能帮助一些人澄清疑问,并正本清源,如果您仍然有疑问/问题,请在下方评论或给我发邮件。如果有什么重大变化,我会更新这篇文章。
祝您在游戏开发之旅中玩得开心。