Command & Conquer Generals 已通过 Fable 原生移植至 macOS、iPhone 和 iPad

Hacker News Top 工具

摘要

一位社区开发者利用 GPL 源代码和 Vulkan-to-Metal 转换层,为 Apple Silicon Mac、iPhone 和 iPad 制作了《Command & Conquer Generals:Zero Hour》的原生移植版。该移植版包含触控支持,且无需模拟即可运行。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/04 21:42

ammaarreshi/Generals-Mac-iOS-iPad 源: https://github.com/ammaarreshi/Generals-Mac-iOS-iPad

命令与征服:将军之绝命时刻 — macOS、iOS 和 iPadOS

绝命时刻原生运行于 Apple Silicon Mac、iPhone 和 iPad — 包含战役、遭遇战和将军挑战模式,内置为 RTS 设计的触控操作(点选、拖拽框选、长按取消选择、双指滚动、捏合缩放)。无需模拟:这是真实的 2003 年引擎编译为 ARM64,渲染流程为 DirectX 8 → DXVK (https://github.com/doitsujin/dxvk) → Vulkan → MoltenVK (https://github.com/KhronosGroup/MoltenVK) → Metal。基于 EA 的 GPL v3 源代码发布版本,由 fbraz3/GeneralsX (https://github.com/fbraz3/GeneralsX) 构建(该版本完成了 macOS/Linux 移植的主要工作;本 fork 新增了 iOS/iPadOS 移植及一系列引擎修复)。原始的 GeneralsX README 保留在 upstream-main 分支中。

不包含也不分发任何游戏资源。 你需要拥有自己的游戏副本(Steam (https://store.steampowered.com/app/2732960/),打折时约 5 美元)。

快速开始 — macOS

前置条件(一次性设置):

# 工具链
xcode-select --install
brew install cmake ninja meson pkgconf
brew install --cask steamcmd

# vcpkg(完整克隆 — 浅克隆会破坏清单基线)
git clone https://github.com/microsoft/vcpkg ~/vcpkg && ~/vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=~/vcpkg # 添加到你的 shell 配置文件中

# LunarG Vulkan SDK(不是 Homebrew 的 cask)— https://vulkan.lunarg.com/sdk/home
export VULKAN_SDK=$HOME/VulkanSDK/<版本>/macOS # 添加到你的 shell 配置文件中

克隆、构建、获取资源、开始游戏:

git clone https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
./scripts/build/macos/build-macos-zh.sh # 检查依赖、配置、构建
./scripts/build/macos/deploy-macos-zh.sh # 创建 ~/GeneralsX/GeneralsZH + run.sh
./scripts/get-assets.sh # 获取你拥有的游戏数据
cd ~/GeneralsX/GeneralsZH && ./run.sh -win

快速开始 — iPhone / iPad

在满足 macOS 前置条件的基础上,还需要:完整 Xcode(登录你的 Apple ID)、brew install xcodegen,以及一个(免费或付费的)Apple Developer 团队。

cd GeneralsX
git submodule update --init references/fbraz3-dxvk # iOS DXVK 由此构建 + Patches/dxvk-ios.patch
./scripts/build/ios/fetch-moltenvk.sh # 固定版本的 MoltenVK.framework(已校验)
./scripts/build/ios/stage-fonts.sh # Liberation 字体,按游戏期望重命名
cmake --preset ios-vulkan
cmake --build build/ios-vulkan --target z_generals
GX_TEAM_ID=<你的团队 ID> GX_BUNDLE_ID=com.you.generalszh \
    ./scripts/build/ios/package-ios-zh.sh --install # 组装、签名、安装

在 Xcode → 设置 → 账户中找到你的团队 ID。资源被包含在应用程序包内(自包含安装);使用 --dev 可跳过约 2.7 GB 的复制以加快代码迭代。

目录说明

路径说明
docs/port/PORTING_PLAYBOOK.md本移植的完整工程日志:所有故障模式、根本原因、修复方法 — 从 §8,错误考古 开始:黑色小地图、静默的 EVA 语音和啁啾声
docs/port/PORTING_PATTERNS.md将经典 Windows 游戏移植到 Apple 平台的通用方法论
docs/port/RELEASE_CHECKLIST.md公开发布的检查清单
scripts/get-assets.shSteam 资源获取脚本(你自己的副本;应用 ID 2732960)
scripts/build/macos/scripts/build/ios/构建、部署、打包流水线
ios/XcodeGen 签名存根项目 + ios/config/(预置的 Options.ini、dxvk.conf)
Patches/dxvk-ios.patchiOS d3d8/d3d9 动态库所基于的 DXVK 更改(通过本地 fork 构建应用)

已知问题

  • 在 iPad 上长时间游玩可能因内存(约 3 GB+ 常驻)被 iOS 杀死;应用程序直接退出到主屏幕,无提示框。会话日志(当前和上一次)位于文件应用程序中游戏文件夹下。正在调查中。
  • 在 iOS 上游戏中后台有时可能导致崩溃 — 生命周期暂停覆盖了常见路径;仍然存在一个罕见的竞态条件。请经常存档。

许可证与致谢

引擎代码 GPL v3(EA 源代码发布 → GeneralsX → 本 fork)。游戏资源:不包含,也不在此授权。

致谢:Westwood/EA Pacific(游戏制作方)、EA(源代码发布)、fbraz3/GeneralsX(基础移植)、TheSuperHackers/GeneralsGameCode(社区主线)、DXVK、MoltenVK、SDL、OpenAL Soft、FFmpeg、Liberation Fonts。

本移植是人机协作的成果:工程由 Claude Code (https://claude.com/claude-code)(Anthropic 的 Claude, Fable 模型)完成,由 Ammaar Reshi 在真实设备上进行指导和测试。docs/port/ 中的工程日志是这一过程的未经编辑的记录。

相似文章

Half-Life 移植到 Mac OS 9

Hacker News Top

Half-Life 已由开发者 doctashay 使用 Xash3D FWGS 引擎的分支移植到 Mac OS 9,可在 PowerPC Mac 上运行。该移植包含完整游戏、多人模式以及扩展包 Blue Shift 和 Opposing Force。