大多数浏览器和
Developer App 均支持流媒体播放。
-
将你的高端游戏带到 iPhone 15 Pro
了解 A17 Pro 的强大功能如何帮助你在 iPhone 15 Pro 和 iPhone 15 Pro Max 上充分发挥游戏的性能。我们将分享最佳实践和技术资源,并探索优化游戏性能、输入和资源管理的方法。
资源
相关视频
WWDC23
- 将游戏移植到 Mac,第 1 部分:制定游戏移植计划
- 将游戏移植到 Mac,第 2 部分:编译你的着色器
- 将游戏移植到 Mac,第 3 部分:使用 Metal 进行渲染
- Background Assets 的新动向
Tech Talks
WWDC22
-
下载
欢迎大家 我叫 Jason Jane 是 Apple 的工程经理 今天很高兴向大家介绍 如何将难以移植的游戏 移植到 iPhone 上
今夏早些时候 我们分享了三场精彩的演讲 主题涵盖各种新工具和最佳实践 以快速将难以移植的 PC 和主机游戏 移植到统一且可扩展的平台 即搭载 Apple 芯片的 Mac
我们在讲座中介绍了 你拥有提供 令人惊叹的出色游戏体验所需的一切 包括 Mac 先进的图形处理功能、出色的性能 身临其境的音频、令人惊叹的显示屏 以及功能丰富的软件
现在我很高兴与大家分享 最新的 iPhone 15 Pro 和 iPhone 15 Pro Max 机型 它们与 Apple 芯片 Mac 一起 在这个统一平台上 打造更高级别的游戏体验
这些新 iPhone 可以玩各款 iOS 游戏并运行 iOS App
现在 iPhone 也可以出色地 运行高端游戏 它具有游戏主机的功能 但现在可以放在你的口袋里 iPhone 15 Pro 和 iPhone 15 Pro Max 提供一些新功能 例如更快的 CPU 和 GPU 性能 对 PC 和主机纹理的硬件支持 以及其他系统资源 这使得定位这些 iPhone 就像定位 Mac 一样简单
在本次演讲的剩余部分中 我将介绍我们添加的功能和工具 以帮助你将游戏移植到 iPhone 上
首先我将讨论用于创建 游戏移植计划的工具和策略 然后我将介绍如何专门针对 iPhone 15 Pro 和 iPhone 15 Pro Max 进行操作
接着 我会讲解如何 针对长时间游戏会话进行优化 如何为围绕控制器设计的游戏 提供最佳体验 以及如何处理游戏中的大型 高质量资源
首先我们来考虑制定一个游戏计划 移植过程是怎样的 以及如何采取增量步骤 并为你和你的团队创建 快速迭代技术 什么时候将你的游戏 移植到 iPhone 上
你可能不会感到惊讶 小岛制作公司 开始将出色的游戏《死亡搁浅》 移植到 iPhone 上 他们将首先将其移植到 搭载 Apple 芯片的 Mac 上 从移植到 Mac 开始 他们的目标是搭载 Apple 芯片的Mac 和 iPhone 之间共享的 相同软件 API 统一的内存架构 先进的硬件和 GPU 功能
在工作的初始阶段 他们可以使用 Xcode 和工具 在 Mac上快速迭代
他们拥有强大的台式 Mac 的 额外内存和资源 用于调试和测试脚手架的 额外存储和内存 在开发过程中非常有用 他们可以更轻松地进行工作 并通过命令行自动化 以及键盘、鼠标和控制器输入 在办公桌上进行测试
游戏在 Mac 上运行后 Apple 芯片的统一架构以及 iPhone 15 Pro 和 iPhone 15 Pro Max 的 资源和功能 意味着从 Mac 移植到 iPhone 上的速度很快 只需几天时间就能 看到顺畅运行的游戏 其他平台并不具有相同的一致性 也不具备以这种方式进行扩展的能力
从可移植的 iPhone 和 iPad 自然扩展到 Mac mini 和 iMac 以及最强大的桌面 Mac Studio 和 Mac Pro 这就是 Apple 芯片的力量
要在移植到 iPhone 的同时 启动移植到 Mac 的计划 我们还建议使用游戏移植工具包 该工具包能让你尽早了解 PC 游戏的图形和着色器将如何 在 Apple 芯片上执行 你只需直接在 Mac 上运行 未经修改的 Windows PC 游戏 即可进行尝试
因此 在重新编译源代码之前 从 HLSL 转换自定义着色器 重新实现图形子系统 并转换你对音频、输入 显示和 HDR 渲染的使用 你无需在看到第一个场景在 Mac 上运行之前 以及在开始针对 iPhone 进行调试和优化之前做这些工作
我们建议你在 Mac 上运行 并分析未修改的 Windows 二进制文件 以剖析和理解你的游戏在 Apple 芯片上的行为 并制定游戏计划 在“将游戏移植到 Mac” 系列讲座的第一部分中 你可以详细了解如何开始移植之旅
如果你的游戏需要更高级别的 iPhone 15 Pro 特性 表现和功能 那么你可以直接将这些设备 作为你的最低规格
我们在 iOS 17 和 App Store 中 定义了 iPhone 性能游戏层 你可以将这一标记添加到 App info plist 文件的 UIRequiredDeviceCapabilities 部分
添加此标志即可指定最低规格 你的 App 可供用户 购买、安装和审核 前提是其设备至少拥有此功能
要建立此最低规格 请使用 Xcode 将条目添加到 info plist 的 所需设备功能部分
要设置此最低规格功能 你还需要将 iOS 17 作为最低部署目标
执行此操作后 App Store 仍会将你的游戏 标记为可供购买并安装 仅供拥有受支持设备的用户使用 以下是使用 iPhone 13 Pro 的 用户可能会看到的内容
如果你的游戏可以在运行 iOS 17 的 iPhone 上 动态扩展其质量和性能 你还应考虑 如何针对 iPhone 15 Pro 予以增强
对于 PC 和主机游戏来说 规模扩张并不罕见 而且这是瞄准 最大的潜在市场的有效方法
要选择利用 硬件加速网格着色或光线追踪 只需查询 Apple 系列 9 GPU 即可确保你已在配备 Apple A17 Pro GPU 的设备上
现在我们来谈谈 如何在 iPhone 上 长时间的游戏会话中进行优化 以获得高质量的一致性能
我将介绍性能可视化 新的性能配置文件 优化着色器的技术 以及在 iPhone 上 使用 MetalFX 的方法
借助 Metal 性能 HUD 你能够轻松地 以实时方式将性能可视化 在日常测试期间 启用 Metal 性能 HUD 以快速发现丢失的帧和内存泄漏 HUD 会向你显示正在使用的 GPU 和分辨率 瞬时帧速率、演示间隔 以及正在使用的 GPU 时间的近似值 它会突出显示这些统计数据的 高值和低值 展示内存使用情况 并提供最后几秒数据的图表 要了解更多信息 请查看 《探索 Metal 性能 HUD》
我们针对 iPhone 15 Pro 和 iPhone 15 Pro Max 推出了一种新的系统性能配置文件 即持续执行模式 默认系统性能配置文件 旨在提供三个时域中的最佳性能 短突发工作负载的最高可能性能 后跟一段时间为大多数用户会话 提供一致的性能 还提供稳定状态 以遵守较长工作负载的设备限制 因此你需要决定如何调整你的游戏 你是针对初始性能进行调整 并让游戏性能随时间而变化 还是在开发过程中花费时间 让性能稳定下来然后重新调整?
为了减轻这种负担 并提供一致的体验 我们针对 iPhone 15 Pro 和 iPhone 15 Pro Max 推出了持续执行模式
通过选择该新配置文件 你可以体验到 与 App 启动后的稳定状态 一致的性能 这让你可以快速确定 适合目标设备的 质量和性能水平 你还能让玩家 体验到精确的一致性
要在游戏运行时 启用持续执行模式 你需要将权利添加到你的应用程序 只需进入 Xcode 并在“登录和功能”工具中 添加“持续执行”功能即可 请记住 你还需要在应用程序的 配置文件中配置此权利 你可以在 Apple 开发者账户的 个人资料部分中执行此操作
Metal 支持着色器预编译 这是另一项重要的性能技术 对于移动设备 你通常应避免 从源代码进行着色器设备端编译 因为它并不节能 在运行时 设备端编译 也可能导致意外的故障 当你移植 PC 或主机游戏时 预编译更为重要 因为你可能有更多的着色器 并需要它们尽快准备就绪
始终通过 Metal 着色器转换器 和 Metal 编译器使用提前编译 在 App 构建时生成 Metal 库 并将其打包到你的捆绑包中
在某些特定情况下 你还可以 使用 Metal GPU 系列 9 的 Metal-tt to cogen 将 Metal 库一直用于 最终的 GPU 二进制文件 要了解更多详情 请查看 “将游戏移植到 Mac 第 2 部分: 编译着色器” 因为将游戏移植到 Mac 的建议 同样适用于 iPhone
最后 MetalFX 是今年 iOS 17 中 新增的另一项出色的性能 MetalFX 去年针对 Mac 推出 它通过使用更少的像素 生成高质量、高分辨率的图像 以提高游戏性能 从而节省电量和时间
MetalFX 提供两种升级效果 空间效果:可提供更大的性能优势 时间效果:可提供最佳质量 今年 我们将 MetalFX 的 强大功能引入 iOS 空间升级可在 运行 iOS 17 的 iPhone 上使用 时间升级可在 A14 及更新版本的设备上使用
渲染为较低的分辨率 是提高游戏性能的一种方法 通过减少 GPU 工作 你可以节省电量并实现更高的帧速率 每部 iPhone 都有一个高质量的 内置显示缩放器 可以自动将 CAMetalLayer 的内容 缩放到本机显示分辨率 你可以早已这样做了 使用 MetalFX 你的目标分辨率可以保持不变 因此可以继续利用显示缩放器 但游戏现在会渲染为较低的分辨率
MetalFX 可以帮助难以移植的游戏在 ProMotion 和非 ProMotion 显示器上实现稳定的帧率 根据你的游戏工作负载 你需要尝试组合不同的 MetalFX 和显示提升比率 以实现性能和质量的最佳平衡 有关使用 MetalFX 最佳实践的 更多详细信息 请参阅之前的 WWDC 讲座 “借助 MetalFX Upscaling 提升性能”以及 “将游戏移植到 Mac 第 3 部分: 使用 Metal 渲染”
在 iPhone 上与游戏交互 从未如此简单 这要归功于现在 更出色的控制器支持 许多 PC 和主机游戏 都是围绕 使用游戏控制器进行输入而设计的 好消息是 当你将游戏移植到 iPhone 上时 这一点不会发生变化 iOS 支持关联 所有最热门的游戏控制器 包括新一代贴合控制器 后者使用低延迟 USBC 适配各种尺寸的 iPhone 15 Backbone 的这款 PlayStation 主题控制器 是我最喜爱的控制器之一
如果你的游戏通过控制器 获得最佳体验 可使用 Xcode 中的 “登录和功能”部分 通过添加“游戏控制器 ”功能 来告知玩家这点
然后将 GCRequiresControllerUserInteraction 字典添加到 info plist 数组 并包含一个布尔值为 YES 的 iOS 键
设置此配置后 玩家将在 App Store 中看到 控制器推荐徽章
以便深入了解 如何使用和比较游戏控制器 以及在哪里可以找到和购买 兼容、贴合和独立的控制器
但 iPhone 还凭借 低延迟、高精度多点触控 革新了移动游戏 你的游戏也支持触摸交互 这很重要 甚至是 App Store 审核流程的一部分
今年我们采取了相关操作 让你可 轻松地向 App 快速添加 更多自定义触摸控件 GC Virtual Controller API 现在支持在你想要的位置 绘制自己的屏幕控件 你的触摸处理会转换为 游戏控制器输入事件 这让你可以自定义游戏 UI 的 外观和感觉 同时仍让大部分 游戏控制器输入逻辑保持不变
最后 iPhone 15 Pro 和 iPhone 15 Pro Max 现在无缝支持你高质量的 PC 和主机资源 游戏的原始基础资源可能非常大 是高分辨率纹理数据 高多边形数几何体 以及未压缩的音频和语音数据 资源管道的工作是 转换和打包这些文件 以适应可用的 PC 和主机系统资源 并与目标硬件高效地互操作 例如 充分利用纹理解压缩、几何实例 和音频混合等 加速功能
在 iPhone 15 Pro 和 iPhone 15 Pro Max 之前 你可能会担心 定位移动设备的工作量 你甚至可能创建了全新的 通用移动资源管道 来生成高度紧缩的资源 以适应有限的资源空间 或处理仅限移动设备的纹理格式
但对于 iPhone 15 Pro 和 iPhone 15 Pro Max 你可以简单地使用现有的 PC 和主机资源管道
硬件加速 BC 和纹理支持 意味着不再需要 转换现有的大型资源包 虽然你可以看到通过 ASTC 压缩 能够获得更出色的压缩效果和质量 更多专用内存意味着无缝加载 存储和移动大型优质资源 这将真正在视网膜 ProMotion 显示屏上大放异彩 并且你可借助简化的移植工作 来节省时间
使用 Metal 设备检查函数 supportsBCTextureCompression 查询 BCn 可用性
如果你还支持运行 iOS 17 的 其他 iPhone 机型 使用通过 ASTC 压缩功能 压缩的资源 是获得更好品质 和更高压缩比的理想选择
要最大化可用内存 请务必 在 Apple 开发者个人资料的 Xcode 中 启用现有的更高内存限制权利 有了更多资源 你就可以渲染更多细节 使用更高分辨率的深度 和阴影缓冲区 并实现更复杂的 资源密集型渲染算法 如果你要跨设备扩展 还可以使用 os_proc_available_memory 动态确定哪些资源可用 要将大型资源移植到 iPhone 你的 App 将需要动态下载它们 你可以通过三种方式来执行此操作 点播资源 后台资源 或自定义的下载实现
下载时请务必将它们存储到某个位置 这样它们不会影响用户备份 并且系统可以在需要时清除它们 当你的资源到达时 将其移动到 数据容器库目录下的缓存目录中 此目录未备份 每个应用程序用户的重要数据 系统还保证 不会不必要地清除此缓存 在 WWDC 的最新背景资源讲座中 了解有关最新下载技术的更多信息
以上就是最佳实践介绍 希望你能够顺畅地将高端游戏移植到 iPhone 15 Pro 和 iPhone 15 Pro Max 上 Apple A17 PRO GPU 体现了 性能和图形功能方面的巨大飞跃 让你可以快速轻松地将游戏 移植到 iPhone 上 这些 iPhone 15 Pro 机型 与搭载 Apple 芯片的 Mac 产品系列一起 为新一代游戏项目 打造了统一的目标平台 我非常期待能在iPhone 上 看到、玩到这些游戏
-
-
0:01 - Slide 24: Scale by GPU family capabilities
MTLDevice *device = MTLCreateSystemDefaultDevice(); if ([device supportsFamily:MTLGPUFamilyApple9]) { // features available in Apple GPU Family 9: // hardware accelerated mesh shaders // hardware accelerated ray-tracing } else { // fall back on alternative techniques }
-
0:02 - Slide 54: Scale textures size & quality
MTLDevice *device = MTLCreateSystemDefaultDevice(); if (device.supportsBCTextureCompression) { // BCn textures are available } else { // fall back to ASTC texture assets for maximum compatibility }
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。