大多数浏览器和
Developer App 均支持流媒体播放。
-
将游戏移植到 Mac,第 1 部分:制定游戏移植计划
借助 Metal 技术和 Apple Silicon 的强大功能,将现代高端游戏移植到 Mac 和 iPad 上。讲解游戏移植工具包,介绍该工具包如何帮助开发者评测 Windows 版游戏在 Mac 上的图形处理功能兼容性及性能,分享音频、输入及高级显示功能处理的有效运用实例和技术资源。观看此视频后,记得继续查看“将游戏移植到 Mac 上第 2 期:编译着色器”,以便了解如何将 HLSL 着色器引入 Metal 的更多相关信息。
章节
- 0:00 - Intro
- 0:57 - Game porting toolkit
- 3:04 - Evaluate your game
- 8:46 - Compile your shaders
- 9:13 - Render with Metal
- 9:44 - Input
- 11:12 - Audio
- 13:08 - Display
- 14:37 - Wrap-Up
资源
- Achieving smooth frame rates with Metal’s display link
- Download the game porting toolkit
- Download the Metal shader converter (Mac and Windows)
- Game Controller
相关视频
Tech Talks
WWDC23
WWDC22
WWDC21
WWDC20
-
下载
♪ ♪
Aiswariya: 大家好 我叫 Aiswariya 很高兴向大家介绍如何将游戏 移植到 Mac 上 高端游戏的移植步骤 将分为三期视频讲解 本视频为第一期 在后续的第二、三期讲座中 我的同事将重点介绍 编译着色器时所用到的工具和技巧 以及使用 Metal 技术 实现原生渲染的最优方案 搭载 Apple 芯片的 Mac 拥有先进图形处理能力和出色性能 再搭配上沉浸式的音响、 令人惊艳的显示器 和功能丰富的各类软件 共同助力顶尖游戏的开发制作 由于 Mac 越来越受到大众的喜爱 现在就是移植游戏的最佳时机 数以百万计的 Mac 用户正翘首以盼 此外 将 Windows 版游戏移植到 Mac 上也比以前更为简单 今年 新推出的 Game Porting Toolkit 提供了一个模拟环境 可以无需修改就在该环境中 运行现有的 Windows 游戏 通过使用它快速了解你的游戏 在 Mac 上运行时 图形处理功能使用情况 以及性能潜力 无需花费数月的时间 就可以了解 游戏在 Mac 上的呈现效果 音效及体验 你可以立刻看到你的游戏 在 Mac 上的潜力 将 Windows 版游戏移植到全新平台 通常需要很多步骤 哪怕仅仅是看到第一个场景之前 这些步骤包括重新编译源代码 转换上千个 HLSL 编写的自定义着色器 重新实现图形子系统 转换音频、输入、显示以及 HDR 渲染等 完成所有这些步骤 才能以原生方式 将游戏画面在屏幕上显示出来 之后还要经过调试和性能优化 才可以正式发行 而有了 Game Porting Toolkit 之后 可以提早在平台上看到游戏画面 该 Game Porting Toolkit 中搭载了 新的 Metal Shader Converter 这个工具可以自动 将所有现有的 HLSL 图形处理器着色器 转换为 Metal 方式 在 Metal Shader Converter 的加持下 将着色器和图形处理 转移到 Mac 上会变得轻松不少 你可以更早发布或者有更多时间 来充分利用 Mac 和 Apple 芯片 拥有的众多独特功能 能够马上看到游戏画面 对开发者来说 哪怕使用的跨平台引擎已经完成了 大部分移植 也会更为方便 Windows 版游戏中 在跨平台引擎上 附加的任何平台特有代码 和插件被移植之前 就能看到游戏在 Mac 上的运行潜能 将游戏移植到 Mac 上 首先要进行游戏移植评测 然后编译着色器 通过 Metal 渲染 转换游戏的输入 音频 显示以及 HDR 渲染 第一步中的游戏移植评测 就是通过 Game Porting Toolkit 实现的 游戏中的英特尔指令和用于 键盘、鼠标、控制器的输入 音频播放 网络系统和文件系统的使用 以及图形处理等的 Windows API 都可以在 Game Porting Toolkit 的模拟环境中完成转换 所有先进的图像功能 诸如 GPU 驱动管线 SIMD 操作等 还包括细分曲面着色器和 几何着色器等先前的图形处理功能 都可以被转换 下面来看一个实际应用的例子 Bloober 的开发人员 用 Game Porting Toolkit 评估基于 Windows DirectX 12 的 “灵媒” “灵媒” 是近几年 由 Bloober 制作并发行的游戏 基于 Apple 芯片和 Metal 技术 推出的 “灵媒” 不但画面精美 还提供了妙趣横生的游戏体验 再加上一些恐怖元素 其游戏画面的呈现效果和音效 能够让玩家身临其境 工具包安装完成后 开发人员将 Windows 版 “灵媒” 复制到 Mac 上 从终端中运行 在 Game Porting Toolkit 的 转译环境中打开 终端上会显示日志信息和调试信息 游戏启动之后 日志可能会 包括一些需要解决的问题 但看起来 Bloober 的开发人员 在这一步并没有碰到什么问题 有关游戏的日志中信息的详细内容 可以参看 Game Porting Toolkit 文档 通过画面可以看出 由于所有图形处理功能 以及其他一切功能正常运行 开发人员判断该游戏运转状况良好 他们注意到一些功能 比如透明 反射、几何着色器、细分曲面着色器 以及 “灵媒” 独有的阴森幽暗的 全局光照都在 Metal 3 上 被诠释得十分到位 游戏图像清晰 像素级准确 下一步就是玩一小段游戏 测试一下基准性能 需要注意 在工具包运行 Windows 版 游戏时 开发者能看到的基准性能 包括 Game Porting Toolkit 所有额外的运行处理消耗 也包括 API 和指令集转译的消耗
在 Bloober 的操作案例中 Window 版的 “灵媒” 显然没有运用 像 MetalFX Upscaling 这样 显著增强性能的技术 而其他平台的游戏 在历经这些转译过程时 其呈现效果和功耗效率 可能会打些折扣
将游戏移植到 Mac 原生方式 不仅能显著提升性能 还可以充分利用 Apple 芯片 和 Mac 硬件提供的 各种先进能力 包括 MetalFX 以及 Apple 内置显示器的扩展动态范围等 开启 Metal Performance HUD 进行游戏移植评测 不仅可以提高工作效率 还有助于开发者找到 可能需要进一步检查的特定位置 该画面中 Metal Performance HUD 显示有一个位置偶尔会出现丢帧 而且平均帧率非常低 开发人员发现后 即可使用 Instruments 捕捉 Metal System Trace 该方法非常适用于性能问题的检查 Metal Performance HUD 在 Game Porting Toolkit 运行游戏时的功能有所增强 HUD 的默认显示位置 仍然在画面上方 显示的信息则包括 GPU 运行情况 渲染分辨率 瞬时帧率 上屏间隔 以及估算的 GPU 使用时间 以上数据的高值和低值会重点标明 此外 HUD 还会显示 内存使用情况 最近几秒的数据 也会以图表的形式展现出来 图表下方 新 HUD 更为详细地展现了 指令集转译 所使用的 Direct3D API 版本 在一帧中 使用了多少渲染编码器 多少命令缓冲区和调度工作在发生 以及每种功能 诸如多少几何着色器和细分曲面着色器等 被用于每帧的渲染 除以上信息外 还会捕捉资源复制和清除 这里 他们打开 Instruments 中的跟踪文件 快速浏览定位到丢帧的位置 在这段 GPU 时间线上可以看到 几个较大的断带和极低的利用率 有几帧完全没有任何任务提交 经分析 这种现象很可能是 指令转译的额外负担或者 API 转译带来的变化造成的 将游戏完全移植到 Mac 上后 这些问题就会迎刃而解 移植后的游戏不仅呈现效果 更为优秀 运行起来也会更加流畅 用 Metal 技术进行渲染 再加上 MetalFX Upscaling 技术 有效运用 还可以进一步提升游戏性能 画面中展示了原生版 “灵媒” 与转译版的对比效果 后者充分发挥 Metal 3 和 Apple 芯片的优势 场景中帧率大幅提高 要使用 Game Porting Toolkit 可以访问 developer.apple.com 该网站上的程序包中有 如何构建和配置移植工具包的说明 开发者可以根据指示进行游戏评测 你可以在反馈助理 提出有关 Game Porting Toolkit 以及将游戏移植到 Mac 上的 相关反馈、问题和建议 现在 通过在工具包中 运行 Windows 版游戏 完成了图形处理功能 和性能的相关评测 将获得的认知 用于移植游戏中的着色管线
开发者可以使用 Metal Shader Converter 工具 来转换游戏中所有的高级渲染管线 包括几何阶段、曲面细分阶段、 网格阶段和光线追踪阶段 编译着色器这一话题涉及很多内容 准备工作做好后 可以观看本系列视频的第二期 “编译着色器” 接下来是第三步 用 Metal 技术渲染
Metal 3 提供了现代高端游戏 所使用的所有高级图形处理功能 和计算功能 包括 MetalFX 快速资源加载 离线编译 网格着色器 以及光线追踪等 这使得图形代码转换过程 变得非常轻松简单 本系列视频的第三期 “用 Metal 技术渲染” 将会讲述 如何将渲染器移植到 Metal 上 并基于 Apple 芯片获得出色的性能 在 Game Porting Toolkit 完成对游戏基本输入功能的评估后 现在可以将游戏移植到 Mac 上 并使用震动反馈等进阶功能了 Window 版游戏要么是 基于跨平台游戏引擎开发 并使用了通用输入插件 或直接用 XInput 和 GameInput 等低阶 Windows API 或使用游戏外设绑定的自定义 SDK 在 Apple 平台上 Game Controller 框架 提供了保障游戏的线程安全 且低延迟的 多种游戏外设的输入支持 包括游戏手柄、键盘、鼠标、 赛车方向盘和街机操纵杆等 开发者还可以使用 游戏控制器的附加功能 包括触感和震动 在 Apple 平台上 从系统层面通过用户偏好设置 为每个 APP 提供输入重映射都支持 包括自动支持 截屏和屏幕录制 以及直接通过游戏控制器 导出 15 秒游戏高光时刻 移植游戏的输入逻辑变得十分简单 如果需要进一步了解相关信息 可以观看之前发布的两期视频 “利用虚拟和物理游戏手柄” 和 “游戏手柄的进展” 你可以查看相关细节和示例代码 出色的音效同样是 提升游戏体验的关键所在 将现有游戏的音频工作流程和功能 移植到 Mac 上非常简单 Apple 设备装载了一流的内置扬声器 可以在输出 响亮而清晰的游戏音效的同时 不会受到冷却风扇噪音的干扰 此外还与许多 出色的有线和无线音响外设 和 Apple 设备兼容 并且支持低延迟空间音频 现有版本的游戏中可能已经使用了 跨平台的音频中间件解决方案 如 Wwise、Unity 和 FMOD 等 这些中间件产品通常抽象了 系统音频 API 及框架 在 Windows 平台上 你可能 会通过中间件来使用底层 API 比如 DirectSound、XAudio2 和 WASAPI 在 Apple 平台上 也有同样的中间件产品 这些产品使用了种类多样的高阶和底层的 Apple 音频框架 包括 Spatial Mixer Audio Unit、 PHASE 和 AVAudioEngine 等 好消息是 所有这些中间件产品 在原生 Apple 芯片 SDK 上 都能得到全方位的支持 这个过程几乎不需要你再做什么 但是 如果现有版本游戏 没有使用中间件 开发者可以直接使用平台提供的 音频框架和 API 就象那些中间件所做的一样 尤其要说的是 如果要在此级别上 实现出色的空间音频效果 请查看 PHASE 文档以及示例代码 演示了如何使用 AUSPatialMixer 通过 12 声道 7.1.4 PCM 数据创建空间音频 可以通过之前关于 CoreAudio AudioUnits 和 PHASE 的讲座学习如何使用这些底层系统框架 哪怕你的游戏并非基于音频中间件 最后 想让游戏玩家获得 身临其境的绝佳游戏体验 Apple 的显示器必不可少 通过 Game Porting Toolkit 开发者可以观察到在转译环境中 游戏的渲染代码与 标准动态范围 (SDR) 和 帧同步 API 的交互运行情况 在 Windows 平台上 为了实现 高动态范围 你可能调用 颜色管理和色调映射 API 例如 AdvancedColorInfo 颜色空间 API 等 也可能会使用 IDXGISwapChain 中 提供的计时和反馈来同步游戏中的 SDR 和 HDR 内容 CAMetalLayer 的扩展动态范围支持 可以保障开发者使用 更高级的显示功能 开发者可以轻松调节 HDR 和 色调映射逻辑 无论是基于浮点或 10 位整数范围 还是基于 HDR10 或 PQ10 着色器 CAMetalDisplayLink API 提供 细粒度控制功能 旨在尽可能地降低 游戏的输入及显示反应时间延迟 如果需要了解如何在 Metal 技术 渲染过程中添加 EDR 支持 请查看以下视频 “探索 iOS上的 EDR” 其中讲解的像素格式和 Metal API 在 macOS 和 iOS 上都可使用 观看视频 “探索使用 EDR 的 HDR 渲染” 则可以很好地了解 如何充分利用 EDR API 和功能 Apple 芯片 Mac 平台 提供了所有将游戏移植到 Mac 上 所需的软件和硬件的功能 同时 在 Game Porting Toolkit 和 Metal Shader Converter 助力下 游戏移植 将变得前所未有地轻松便捷 记得观看第二期视频 “编译着色器” 以及第三期 “使用 Metal 技术渲染” 我已经等不及要在 Mac 上 体验各位开发者制作的游戏了 ♪ ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。