将游戏带到 Mac,第一部分:制定计划
Bring your game to Mac, Part 1: Make a game plan
2023年6月5日
一句话判断
Game Porting Toolkit 让你在几分钟内看到 Windows 游戏在 Mac 上的潜力,这是游戏移植的起点而非终点。
这场 Session 讲了什么
Apple 推出了 Game Porting Toolkit(游戏移植工具包),这是一个模拟环境,让你无需修改就能在 Mac 上运行现有的 Windows DirectX 游戏。通过它,开发者可以快速评估游戏的图形功能使用情况和性能潜力。
工具包翻译游戏的 Intel 指令和 Windows API 调用,包括键盘/鼠标/手柄输入、音频播放、网络和文件系统使用,以及图形——所有现代图形功能都支持,如 GPU 驱动的管线、SIMD 操作,甚至老式的曲面细分和几何着色器。
Session 以 Bloober 的《The Medium》为实例,演示了完整的评估流程:在终端启动游戏、观察日志、使用增强的 Metal Performance HUD 监控性能、使用 Instruments 捕获 Metal System Trace 分析问题。重要的是,工具包运行时的性能包含了所有翻译开销,原生移植会有显著提升。
Metal Shader Converter 是另一个关键工具,可以自动将所有 HLSL GPU 着色器转换为 Metal 着色器。
值得深挖的点
增强版 Metal Performance HUD 在 Game Porting Toolkit 模式下提供了更详细的信息。除了标准的帧率和 GPU 使用率,它还展示了指令集翻译的开销、Direct3D API 版本、渲染编码器数量、命令缓冲区数量,以及每帧使用的各种图形功能(如几何着色器、曲面细分着色器)的数量。
评估工作流建议:先用工具包运行游戏获取基准性能,然后使用 Metal System Trace 分析瓶颈。常见的性能问题——如 GPU 时间线上的巨大间隙和未调度工作的帧——通常是指令翻译或 API 翻译的开销,在原生移植后会消失。
代码片段
# 启动 Game Porting Toolkit
# 1. 安装工具包
# 2. 复制 Windows 构建到 Mac
# 3. 从终端启动游戏
# 使用 Metal Performance HUD 监控
# HUD 显示翻译开销、D3D API 版本、
# 渲染编码器/命令缓冲区/调度数量等
# 使用 Instruments 捕获 Metal System Trace
# 分析帧率和 GPU 利用率
# 找到帧丢弃的原因
最佳实践
- 首先用 Game Porting Toolkit 评估,不要急于开始移植
- 使用增强版 HUD 监控性能,找出瓶颈
- 用 Instruments 的 Metal System Trace 深入分析
- 记录工具包运行时的日志,注意潜在问题
- 原生移植的性能会显著优于翻译运行
还有什么值得关注
- Metal Shader Converter 自动转换 HLSL 到 Metal
- 系列的第二和第三部分覆盖着色器编译和 Metal 渲染
- 性能优化建议:采用 MetalFX 升采样
- Apple Silicon Mac 的扩展动态范围显示特性