
-
让游戏更上一层楼
了解如何让你的游戏在统一游戏平台上大放异彩。我们将介绍一些可用于让你的游戏更上一层楼并进一步提升玩家体验的技术。简要了解构建、调试和分析游戏所必需的基本工具。
章节
- 0:00 - 简介
- 1:19 - 系统体验
- 1:39 - 提升性能
- 4:26 - 吸引玩家
- 6:43 - 游戏技术
- 7:33 - 首次启动游戏
- 9:31 - 跨设备畅玩
- 12:52 - 玩家任选输入设备
- 14:56 - 图形效果
- 22:31 - 后续步骤
资源
- Function constants and Framebuffer fetch
- Human Interface Guidelines: Designing for games
- Ray tracing with Intersection Function Buffer
相关视频
WWDC25
- 开始使用 Game Center
- 探索 Apple 托管的 Background Assets
- 探索 Metal 4
- 探索 Metal 4 游戏
- 深入探索 Metal 4 游戏
- 用于打造沉浸式 App 的 Metal 渲染的新功能
- 通过 Apple Games App 吸引玩家
WWDC24
-
搜索此视频…
大家好 我是 Alexey Metal Games Ecosystem 团队的工程经理 玩家们期待在游戏中获得最佳体验 你可以充分利用 Apple 芯片不断提升的性能与能效 以及与它紧密集成的软件 为玩家带来卓越的游戏体验 Apple 的 SDK 提供丰富的 开发工具 助你打造新一代 游戏 覆盖整个 Apple 生态系统的玩家 借助统一的游戏平台 无论是震撼的视觉效果 还是出色的操控体验与社交互动 都能轻松在 iPhone、 iPad 和 Mac 上实现 多年来 助力打造卓越游戏体验的 操作系统和开发框架 不断演进 今年 我们更推出了多项新功能 助你进一步提升玩家的游戏体验 在这场讲座中 我将向你介绍 如何利用系统内建功能 提升游戏性能 讲解多项关键游戏技术 让玩家能够随时随地畅玩你的游戏 并带你了解如何运用全新的图形功能 充分发挥 Apple 芯片的强大实力 打造更具沉浸感的游戏世界 首先 我会介绍几项强大的系统功能 帮助玩家在游戏时充分发挥设备性能 其中包括可配置的系统模式 用于提升游戏的持续性能表现 以及提升玩家参与度 和游戏在系统中曝光度的社交功能 我们先来看看如何增强游戏性能 游戏模式可优化系统行为 为游戏提供更多资源 它会减少后台活动 让游戏获得 更多的 CPU 时间 来处理复杂任务 例如渲染或物理模拟等 此外 游戏模式还能降低蓝牙延迟 让输入响应和耳机音效更加流畅 在 macOS 和 iOS 上 当玩家以全屏启动游戏模式时 游戏模式便会自动启用 游戏模式启用时 系统会显示横幅提示玩家 确保游戏支持游戏模式非常简单 只需在游戏的 info.plist 中添加 LSSupportsGameMode 键并设置为 true 即可 启用后 游戏模式会为游戏分配 更多系统资源 以提升整体性能 正确管理这些资源非常重要 这样才能确保玩家 在整个游戏过程中获得一致 且稳定的体验 为此 你可以请求系统为游戏 启用“持续执行模式” 启用后 系统会从游戏启动开始 将性能限制在稳定状态 这有助于快速确定适合目标设备的 画质和性能水平 并确保玩家拥有一致的游戏体验 启用“持续执行模式”只需几个 简单步骤 首先 为游戏添加相应的权限 你可以在 Xcode 的 “Signing & Capabilities”面板中启用相关功能 接着 登录你的 Apple 开发者账户 并在游戏的配置描述文件中 加入这一权限 现在 你的游戏就能与操作系统协同 工作 为玩家带来流畅的游戏体验
无论在哪款设备上 Apple 芯片都能提供出色的能效表现 让玩家随时随地畅玩喜爱的游戏 在 macOS 26 中 当游戏在用 电池供电情况下消耗大量电量时 系统会提示玩家 这时 玩家可以选择切换到现已 针对游戏进行了优化的低电量模式 从而延长游戏时间
此外 玩家还可以在游戏过程中 通过 Game Overlay 动态切换 系统的能耗模式 无需离开 游戏界面
为了进一步提升玩家体验 你可以让游戏响应 并适配低电量模式 系统提供了一个 API 可用于检测低电量模式是否已启用 只需侦听 NSProcessInfoPowerStateDidChange 通知 当低电量模式状态更改为已启用时 你可以适当调整 画质设置 以进一步延长玩家的 游戏时间 在统一的游戏平台中 玩家还可以 通过多种方式找到好友 并与他们一起畅玩游戏 而 Game Center 是这一切的核心 它是 Apple 的社交游戏网络 帮助玩家与好友紧密互动 了解彼此在玩什么、发现新游戏 并发起挑战 你的游戏可以加入 Game Center 的多种功能 包括成就、排行榜、挑战和活动等 这些功能让玩家能够追踪自己的 进度、争夺高分 并邀请好友一同游戏 现在 Game Center 的配置已经 完全与 Xcode 整合 你可以直接在其中创建成就、设置 本地化内容 并配置挑战 你所做的任何更改都可以纳入 代码审核和版本控制流程中 完成配置后 可以使用全新的 Game Progress Manager 在本地进行测试 确保一切就绪再向玩家开放 请观看“开始使用 Game Center” 进一步了解 Game Center 以及它的功能
将游戏与 Game Center 集成后 它就能在系统中的多个位置 自动被玩家发现 例如在全新的 “Apple Games”App 中! “Games”App 是为玩家提供的全新 一站式游戏平台 他们可以在这里启动游戏、 发现新作 并与好友一起畅玩 享受更多乐趣 “Games”App 预装在 Mac、iPad 和 iPhone 上 它的功能与操作系统深度整合 涵盖 小组件、通知以及 App Store 等 例如 玩家可以直接在 Game Overlay 中查看 自己在排行榜中的排名 无需离开游戏界面
请观看讲座“通过 Apple Games App 吸引玩家” 进一步了解在 Games App 中加入 你的游戏后 如何通过好友的游戏动态 提升游戏在玩家间的可见度 借助专为游戏打造的系统体验 你可以充分释放游戏的潜力 通过系统性能优化功能 实现稳定流畅的帧率表现 利用社交功能 建立玩家社群 提升玩家参与度 接下来 我们将介绍如何借助 现有和全新的游戏技术 进一步提升你的游戏品质 和玩家体验 想要了解如何在 Apple 平台上 打造出色的游戏体验 可以从适用于游戏的 《人机界面指南》开始着手学习 这是一套内容全面的文档 它以指南的形式介绍了如何对 多种 Apple 设备提供最佳支持 主题包括引导新手玩家、 适配不同屏幕尺寸 以及为 多种输入方式提供支持等 精彩游戏体验离不开用心的 游戏设计 以及对相关实用技术的充分运用 它从玩家安装游戏的那一刻开始 并随着玩家的游戏进程不断延续 而这一切的核心 都在于玩家如何 与游戏进行交互 高端游戏的初始下载文件通常比较大 因此 首先需要考虑的是 如何让玩家尽早进入游戏 以我自己的游戏为例 它由一个可执行文件以及封装在 内容包中的数千兆字节纹理 和音频录制文件组成 它们共同打造了丰富的玩家体验 但下载完成之前 玩家需要等待 相当长的时间才能开始游戏 为了解决这个问题 我决定将游戏 内容拆分为两个部分 现在 玩家只需下载启动教程关卡 所需的一小部分内容 就能开始游戏 与此同时 其余内容会在后台 持续下载 玩家无需等待即可畅玩 在 Apple 平台上 你可以通过 Background Assets 框架实现这一流程 它专为优化首次启动体验而设计 你可以配置系统如何 将资源下载到设备中 并优先加载启动游戏所需的关键内容 借助 Background Assets 你还可以提供可选的下载内容 让玩家在游戏过程中解锁 同时还能将游戏资源与 主游戏包分开进行更新
全新的 Managed Background Assets 对 API 进行了改进 简化了工作流程 TestFlight 或 App Store 上的游戏可获得最多 200GB 的 Apple 托管容量 这一 API 使用起来非常简便 内建支持带外资源的自动更新 与系统管理 Managed Background Assets 还与 Apple 平台上的 游戏分发流程深度集成 你可以通过 TestFlight 对游戏内容 的更新进行 Beta 版测试 当这些更新通过 App Store 审核后 即可将更新推送给玩家 请观看讲座“探索 Apple 托管的 Background Assets”了解更多信息 你的游戏之所以能在 Apple 平台上 脱颖而出 除了可以同时轻松支持 macOS 和 iOS 还能让玩家在所有设备间 保持游戏进度同步 例如 玩家可以在家中的设备上 开始游戏 达到一个里程碑后 保存游戏进度 并将游戏存档数据上传至 iCloud 接着 当他们外出搭乘公交时 也可以在 iPhone 上打开游戏 载入 iCloud 中的存档数据 无缝衔接 继续畅玩 最后 如果玩家来到咖啡馆 想在 iPad 上继续玩 以便利用更大的屏幕 游戏同样可以从 iCloud 加载进度 让玩家随时随地在多设备间无缝衔接 游戏体验的关键是云存档功能 借助全新的 GameSave 框架 你可以轻松 在游戏中启用云存档 这个框架由 iCloud 提供支持 并在设计时考虑了用户隐私 和数据安全 GameSave 会自动在使用同一 iCloud 账户的 设备之间同步并保存游戏数据 同时 也支持玩家离线 或未登录 iCloud 时的使用场景
GameSave 框架还提供了默认 UI 可用于显示 与 iCloud 同步存档数据时的进度 提醒玩家可能存在的存档数据冲突 并提供解决方案 或在玩家已退出登录 iCloud 时弹出提示 如果你希望自定玩家体验 也可以 使用 GameSave API 与游戏的 UI 进行集成 并添加 自定逻辑 在游戏中启用 GameSave 框架 非常简单 只需几个步骤即可完成: 首先 为游戏添加 iCloud 权限 你可以在 Xcode 的 “Signing & Capabilities”工具中启用相应功能 在游戏项目设置中选中 “iCloud Documents”复选框 并添加 iCloud 容器权限 接着 登录你的 Apple 开发者账户 在游戏的配置描述文件中 加入这个权限即可 现在 你的游戏已准备好使用 GameSave 框架了 接下来 我将演示如何开始使用 在使用 GameSave 框架的典型 流程中 首先应调用 openDirectory GameSave 会在后台开始抓取 用户的存档数据 在 GameSave 同步期间 你可以提供一个用户提醒窗口 用于检查状态 当同步完成后 存档数据将可通过 返回的 URL 获取并使用 这里显示了一个示例 要开始与 iCloud 的同步 可以调用 openDirectoryForContainer 并传入游戏的容器标识符 当 GameSave 框架在后台执行 同步的过程中 你可以调用 finishSyncing 的完成 处理程序 并添加同步后逻辑 当云同步完成后 你可以检查同步 状态 并根据需要处理相关错误 最后 通过 directoryState URL 即可访问玩家的存档数据 现在 你的游戏已准备好在所有 支持的设备间共享存档进度 你可以在框架文档中进一步了解 GameSave API 以及它的相关功能 玩家可能会以多种方式与游戏 进行交互 因此支持他们偏好的方式至关重要 Apple 平台全面支持各种 外接输入设备 包括键盘、鼠标和游戏控制器 你可以让玩家完全像 在其他平台上那样 畅玩你的游戏 Game Controller 框架提供了 统一的 API 可支持游戏的多种输入方式 它采用现代且灵活的设计 既支持注册事件回调 也支持按需轮询玩家的操作 它是在所有 Apple 平台上 获取玩家输入的首选方式 并且支持多款现代游戏控制器 如 PlayStation DualSense 控制器 除了支持鼠标、键盘和控制器外 Apple 在触控优先平台上对高端 游戏的支持尤为与众不同 虽然有些玩家可能会使用控制器 在 iPhone 或 iPad 上玩游戏 但绝大多数玩家没有可用的控制器 为了助你一臂之力 全新 Touch Controls 框架让你能够轻松 在现有游戏中加入触控支持 Touch Controls 框架提供了 丰富的按钮类型与交互行为 可支持常见输入需求 此外 每个按钮的外观都可自定 以贴合游戏的需求 全新 API 还直接与 Metal 集成 确保实现最优的性能表现 通过这个框架 你可以轻松为玩家 提供多种选择 有些玩家可能更喜欢用触控方式来 玩游戏 或者只是手边没有控制器 无论何时何地 他们都能 畅玩你的游戏 请查看相关文档 详细了解 有关如何在游戏中轻松设置 Touch Controls 的操作流程 请务必观看讲座 “为 Apple 平台设计高端游戏” 进一步了解游戏开发方面的最佳实践 借助这些技术 你可以从玩家首次 启动游戏的那一刻起 就为他们带来更出色的体验 你也可以确保玩家能按照自己的 方式推进游戏进度 接下来 我们谈谈游戏的一个重要 元素 它既有助于讲述你的游戏故事 又能让玩家沉浸其中——那就是图形 Metal 是 Apple 的底层图形和计算 API 它为多代复杂应用程序提供 强大支持 包括最新的游戏和专业级 App Metal 支持在游戏中实现顶级 图形效果 和性能所需的一切功能 Metal 4 API 可高效处理资源管理 和着色器编译 等日益复杂的任务 它可以降低图形命令编码时的 CPU 开销 并让游戏能够在渲染管道中运用 机器学习 建议从讲座“探索 Metal 4”开始 了解全新功能的详细信息 随着图形效果日益复杂 保持 游戏帧时间在预算范围内 变得更加具有挑战性 而你当然希望在不牺牲画面质量 的前提下实现这一目标 你可以通过在游戏中集成 MetalFX Upscaling 来实现这一点 MetalFX 能将较低分辨率的图像 快速升频至目标输出分辨率 所需时间要少于直接以 输出分辨率进行渲染 并且它支持空间升频 和时间升频两种方式 帮助你在画质与性能之间 取得最佳平衡 如果集成 MetalFX 帧插值功能 还能进一步提升游戏的帧率 结合 MetalFX 升频功能 你可以进一步提升游戏性能 借助帧插值技术 游戏能够以 远低于完整渲染 每一帧的时间生成中间帧 如果你的游戏使用了光线追踪等 图形技术 还可以通过 MetalFX 去噪功能 提升画面质量 MetalFX 在升频过程中支持 图像去噪 因此你的游戏可以消除用较少光线 渲染的图像中的噪点 并实现全尺寸效果 这是 CD Projekt Red 开发的 Cyberpunk 2077 运行设备是最新款 M4 Max MacBook Pro 这款游戏采用大量复杂的图形技术 呈现出令人惊艳的视觉效果 借助 MetalFX 的功能 玩家可以体验到明显更高、 更流畅的帧率表现 请观看讲座“深入探索 Metal 4 游戏” 了解如何 在游戏中启用现有与全新的 MetalFX 功能 进一步提升性能与画质 游戏移植工具包 3 现已支持 Metal 4 游戏移植工具包中的 Metal-cpp 组件 可帮助你将 Metal 无缝集成到 现有的 C++ 代码库中 Metal-cpp 完全支持 Metal 4 如果你已经在使用它 可以立即启用 Metal 4 的各项功能 此外 Metal-cpp 还支持 最新的 MetalFX 功能 例如 去噪和帧插值技术 Metal Shader Converter 是另一款非常实用的工具 它可帮助你将 HLSL 着色器 转换为 Metal 借助 Metal Shader Converter 对 Metal 4 的支持 你可以使用用于光线追踪的 相交函数缓冲区 将现有的着色器绑定表直接转换为 Metal 的光线追踪 此外 你还可以在 HLSL 代码中 直接启用 Metal 功能
你可以使用函数常量来高效地 专门化你的着色器 以便在着色器内部包含 复杂逻辑时提升性能 同时 还可以使用帧缓冲区提取功能 支持可编程混合等技术 从而高效整合多个渲染通道的结果 这两项功能都可直接使用 无需对游戏引擎 进行高层级修改 要开始使用这些功能 可以参考 全新的示例代码 “Function Constants and Framebuffer Fetch” 以及“Ray tracing with Intersection Function Buffer” 如需了解游戏移植工具包 3 的更多新功能 请访问 developer.apple.com/cn/games 查阅相关文档 并使用游戏移植示例代码快速上手 Metal 4 还提供一整套强大的工具 可帮助进行性能分析与调试 Runtime API 与着色器验证工具 可帮助你判断出现问题的原因 是否是缺少标志或尝试读取 未绑定至着色器的资源 Metal Performance HUD 会 显示多项性能指标 以帮助你实时分析游戏性能 Xcode 中的 Metal 调试器会显示 GPU 工作的详细性能分析数据 让你能够在某个像素显示异常时 进行逐步的调试操作 Instruments 中的 Metal System Trace 则可以让你深入了解游戏的 CPU 与 GPU 利用率 你可以快速识别潜在的优化空间 无论是分析游戏的原生构建版本 还是使用 Windows 游戏的评估环境 Metal Performance HUD 都能 提供游戏性能的整体概览 为了帮助你更高效地分析游戏性能 我们引入了四项全新功能 Metal Performance HUD 现已 支持“性能洞察” 为你提供有关如何更好地优化游戏 以提高帧率的建议 它提供更多性能指标 例如着色器 编译次数 你可以借助这些指标实时发现 意外的帧卡顿情况 你还可以选择将所有数据 汇总成性能报告 以供事后回顾分析 Metal Performance HUD 的外观现在也可自定 因此 你可以灵活选择要显示的数据 以及这些数据在屏幕上的显示位置 接下来我们看看这个功能的 实际效果 这是我的 Mac 上运行的示例 其中已启用 Metal Performance HUD 通过全局菜单 我可以快速调整 HUD 的外观 并访问新的配置面板 配置面板提供了一些控件 用于进一步自定 HUD 的外观 例如 这里我启用了额外的 Shader Compiler 指标 以便判断当前看到的卡顿是否 由着色器编译引起 在配置面板的“Insights”标签页中 可以启用“Performance Insights” 这个功能会追踪示例对 Metal API 的使用 并在发现可优化之处时提供 相关文档的链接 这些数据会随着时间自动汇总 在准备就绪后 会显示详细的洞察信息与优化建议 比如这里我看到有些着色器 仍在运行时进行编译 这可能会导致性能下降 需要加以避免 Performance Insights 适用于原生游戏 也支持那些运行在 Windows 游戏 评估环境中的游戏 借助它 你可以在开发早期阶段 就识别出潜在的性能优化点 此外 Metal Performance HUD 现在还支持生成性能报告 供你离线查看 我可以通过全局菜单选择生成 我的示例一段时间内的 性能报告 这段时间结束后 报告会自动保存 至临时文件夹 以供查看 生成的报告中包含 Metal Performance HUD 收集的 全部指标数据 包括性能洞察信息 通过它 我可以了解示例在一段时间 内的表现 识别最耗资源的渲染或计算通道 并找到潜在的优化方向 Metal 4 提供了在 Apple 芯片上 实现精美画面与顶级性能 所需的一切功能与工具 请务必充分利用系统内建功能 实现流畅、灵敏的游戏体验 通过集成核心游戏技术 为玩家打造卓越的游戏体验 同时 借助 Metal 4 全面提升 游戏的视觉效果与性能表现 请观看讲座 “探索 Metal 4 游戏” 进一步了解其他激动人心的 Metal 4 功能 也别忘了观看“通过 Apple Games App 吸引玩家” 帮助你的游戏在玩家和他们的好友 中获得更高的曝光度 我已迫不及待想在 Apple 平台上 体验你打造的下一款游戏! 感谢观看!
-
-
0:01 - React to Low Power Mode state
static let NSProcessInfoPowerStateDidChange: NSNotification.Name var isLowPowerModeEnabled: Bool { get }
-
12:13 - GameSave code sample
// Objective-C GameSave code sample #import <GameSave/GameSave.h> NSString* containerIdentifier = ///… container entitlement string, nil specifies the first in the entitlement array GSSyncedDirectory* directory = [GSSyncedDirectory openDirectoryForContainerIdentifier:containerIdentifier]; /// Where statusDisplay is an NSWindow or UIWindow where the alert will be anchored to [directory finishSyncing:statusDisplay completionHandler:^{ }]; GSSyncedDirectoryState* directoryState = [directory directoryState]; switch (directoryState.state) { case GSSyncStateError: error = directoryState.error; break; default: NSLog(@"Sync has finished"); } NSURL* saveURL = directoryState.url;
-
-
- 0:00 - 简介
新的游戏功能可增强图形、性能和社交体验,让你满足玩家期望,跨所有 Apple 设备为他们提供出色的游戏体验。
- 1:19 - 系统体验
你可以利用内置的系统功能来提高游戏性能,让玩家在游戏过程中充分发挥设备潜力,同时增强游戏的持续稳定表现。你还可以添加社交功能,提高游戏对玩家的吸引力,也让你的游戏在整个系统中更具存在感。
- 1:39 - 提升性能
你只需稍作修改,甚或无需任何操作,即可利用会影响游戏性能的系统功能。macOS 和 iOS 中的游戏模式可通过减少后台活动和降低蓝牙延迟,来优化在全屏幕 模式下玩游戏时的系统行为。持续执行模式使游戏能够与操作系统“携手合作”,为玩家提供稳定的性能体验。低电量模式让玩家可以在使用电池供电的情况下畅玩更长时间。
- 4:26 - 吸引玩家
Game Center 是 Apple 的社交游戏网络,让玩家能够互相交流、切磋技艺,还能跟踪各个游戏的进度。它与 Xcode 集成,便于设置。采用 Game Center 以及它的社交功能的游戏在新的 Apple Games App 和游戏叠层中能享有更高的曝光度。
- 6:43 - 游戏技术
请查看《人机界面指南》,了解如何针对特定 Apple 平台提供出色体验。
- 7:33 - 首次启动游戏
出色的玩家体验从游戏首次启动时就开始了。对于下载量较大的高端游戏,请将内容拆分为必要部分和非必要部分。玩家可以先上手玩第一关,让游戏的其余部分在后台下载。新的 Managed Background Assets 框架简化了这一过程,你可以给内容排好优先顺序、设置可选择性下载的内容,还可以分别更新各项资源。
- 9:31 - 跨设备畅玩
新的 GameSave 框架支持跨设备无缝地将游戏保存到云。玩家可以在不同的 Apple 设备之间进行切换,并能够从上次中断的地方继续游戏。
- 12:52 - 玩家任选输入设备
Apple 平台通过 Game Controller 和 Touch Controls 框架支持各种操控方法,例如键盘、鼠标、游戏控制器和触控操作。这些框架使你能够创作出符合玩家喜好的游戏,无论是实体控制器还是触摸屏,都能确保在所有 Apple 设备上打造无缝体验。
- 14:56 - 图形效果
Metal 4 是一个底层图形和计算 API,可支持新一代的高端游戏。它旨在处理日益复杂的现代图形渲染,减少 CPU 开销,并使你能够在渲染管道中利用机器学习。 要在不影响画质的情况下实现高帧率,请将 MetalFX Upscaling 支持集成到游戏中。MetalFX 可以有效地将低分辨率图像提升到目标输出分辨率,平衡画质和性能。此外,MetalFX Frame Interpolation 还可以通过生成中间帧来进一步提高帧速率。 游戏移植工具包 3 支持 Metal 4,因此你可以更轻松地将 Metal 集成到现有的 C++ 代码库中。Metal 着色器转换器等工具有助于将 HLSL 着色器转换为 Metal,Metal 性能 HUD 提供实时性能指标和洞察信息,以便你调试和优化游戏。 Metal 性能 HUD 新增了功能,例如性能洞察、汇总性能报告和自定选项,帮助你有效分析游戏性能并根据数据实施改进。
- 22:31 - 后续步骤
通过支持游戏的系统功能、新增的社交游戏功能、对多种操控输入的支持,以及 Metal 4 对图形的优化,你能够在 Apple 设备上提供让人惊艳的玩家体验。请查看 WWDC 中有关 Metal 4 和游戏的讲座。