C&C Zero Hour をiPhone・Mac・iPadでネイティブ動作させるオープンソースポート
C&C Zero Hour をiPhone・Mac・iPadでネイティブ動作させるオープンソースポート
Generals-Mac-iOS-iPadは、2003年のRTS名作「Command & Conquer: Generals Zero Hour」をApple Silicon Mac・iPhone・iPadでネイティブ動作させるオープンソースポートです。DirectX 8→DXVK→Vulkan→MoltenVK→Metalの変換チェーンで実際のゲームエンジンをARM64コンパイルし、RTSに最適化したタッチコントロールも実装しています。
GitHubで急上昇中の ammaarreshi/Generals-Mac-iOS-iPad をご紹介します。 スター数 1495★ を獲得し、アプリ・ゲームポート分野で注目されているプロジェクトです。
C&C Zero Hour Mac iOS iPad ネイティブポートとは?
Generals-Mac-iOS-iPad は、Electronic Arts(EA)が2025年にGPL v3でオープンソース化した「Command & Conquer: Generals Zero Hour」のソースコードをベースに、Apple Silicon Mac・iPhone・iPadで エミュレーションなし でネイティブ動作させることに成功したオープンソースポートです。
2003年製のDirectX 8 RTSゲームをAppleのMetalレンダリング基盤で動かすために、 DirectX 8 → DXVK → Vulkan → MoltenVK → Metal という4段階の変換チェーンを実装しています。通常のエミュレーション(Wine等)とは異なり、ゲームエンジン自体をARM64ネイティブコードとしてコンパイルしているため、パフォーマンスと安定性が大きく向上しています。
本プロジェクトは Claude Code(Anthropic社・Fableモデル)との人間+AIコラボ で開発されました。C++のエンジニアリング・クロスビルド・実機デバッグをClaude Codeが担当し、人間が症状報告(「ミニマップが黒い」「効果音が鳴らない」)と全意思決定を担うスタイルで開発が進められました。
こんな人におすすめ:
- エンジニア向け: C++/クロスコンパイル経験を持つエンジニアが、旧世代Windowsゲームを現代プラットフォームへ移植する手法を学ぶのに最適なリファレンスプロジェクトです
- 非エンジニア向け: Steam版C&Cを所有しているC&Cファンが、macOSやiPhoneでプレイするためにビルドできます(Xcodeとターミナル操作が必要)
Command Conquer Generals Zero Hour iPhone iPad 使い方:セットアップ手順
前提条件
- macOS(Apple Silicon推奨)
- Xcode + Command Line Tools
- Steam版「C&C Generals: Zero Hour」(app ID: 2732960・約500円前後)
- vcpkg・Vulkan SDK(LunarG)
重要: ゲームアセット(ゲームデータ)はリポジトリに含まれていません。必ずSteamで購入した自分のコピーを使用してください。
macOS 向けビルド手順
# 1. ツールチェーンのセットアップ(初回のみ)
xcode-select --install
brew install cmake ninja meson pkgconf
brew install --cask steamcmd
git clone https://github.com/microsoft/vcpkg ~/vcpkg && ~/vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=~/vcpkg
# 2. LunarG Vulkan SDK をインストール(Homebrewのcaskではなく公式サイトから)
export VULKAN_SDK=$HOME/VulkanSDK/<version>/macOS
# 3. リポジトリのクローンとビルド
git clone https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
./scripts/build/macos/build-macos-zh.sh # ビルド(依存関係チェック・CMake設定・コンパイル)
./scripts/build/macos/deploy-macos-zh.sh # ~/GeneralsX/GeneralsZH + run.sh を生成
# 4. Steamからゲームアセットを取得
./scripts/get-assets.sh <your_steam_username>
# 5. 起動
cd ~/GeneralsX/GeneralsZH && ./run.sh -win
iOS・iPad 向けビルド手順
macOSの前提条件に加えて、Xcode(フルインストール)・Apple Developerアカウント(無料可)・xcodegen が必要です。
cd GeneralsX
git submodule update --init references/fbraz3-dxvk
./scripts/build/ios/fetch-moltenvk.sh # MoltenVK.framework を取得
./scripts/build/ios/stage-fonts.sh # フォントファイルの配置
cmake --preset ios-vulkan
cmake --build build/ios-vulkan --target z_generals
# サイン・インストール(自分のTeam IDとBundle IDに置き換える)
GX_TEAM_ID=<your-team-id> GX_BUNDLE_ID=com.you.generalszh \
./scripts/build/ios/package-ios-zh.sh --install
RTSタッチコントロールの実装:iPhone・iPad 使い方の工夫
2003年製のマウス前提のRTSをタッチ操作に対応させるには、多くの工夫が必要でした。
タッチジェスチャーのマッピング
| 操作 | タッチジェスチャー |
|---|---|
| ユニット選択 | タップ(GUIホバー処理後に遅延) |
| 範囲選択 | ドラッグ(カメラパンと区別) |
| 右クリック(移動・攻撃) | 長押し |
| カメラ移動 | 二本指スクロール |
| ズーム | ピンチイン・アウト |
タップはGUIのホバー処理が完了するまで遅延させないとメニューボタンが反応しないという問題があり、ドラッグは「選択ボックス」と「カメラパン」を状況に応じて切り替える複雑なロジックが必要でした。
Wine・エミュレーターとの違い・なぜ今このポートが注目されるか
ネイティブコンパイル vs エミュレーション
WindowsゲームをMacで動かす従来の方法は Wine(またはCrossover) によるWindowsエミュレーションです。Wine経由でのC&C Generals実行は技術的に可能ですが、ARM Macへの最適化が不十分でパフォーマンスが不安定な場合があります。
このポートの差別化は3点です:
- ネイティブARM64コンパイル: エミュレーション層なしで実行されるため、Apple Silicon本来のパフォーマンスを引き出せます
- iOS・iPad対応: Wineは実質的にモバイルでは使えませんが、このポートはiPhone・iPadでの動作を実現しています
- GPL v3 + オープンソース: EAの公式ソース公開をベースにした法的にクリアなポートです
2026年7月にHacker News等で広く注目されたのは、Claude Code(Fableモデル)という最新AIがレガシーC++エンジニアリングを担当したことへの関心も大きな要因です。
こんな人に向いている:レトロゲーム Apple Silicon ネイティブ移植
C&Cファン・RTSゲーマー
Steam版C&CをすでにPCで所有しているユーザーが、Apple Silicon MacやiPhoneでもプレイできるようになります。キャンペーン・スカーミッシュ・ジェネラルズチャレンジのすべてのモードに対応しています。
C++エンジニア・ゲームエンジン開発者
DirectX→Vulkan→Metalの変換チェーン、ARM64クロスコンパイル、iOSアプリライフサイクル管理の実践的な実装事例として活用できます。特に docs/port/PORTING_PATTERNS.md は旧世代Windowsゲームを現代プラットフォームへ移植する際の汎用的な方法論として価値があります。
AI+ヒューマンコラボ研究者
Claude Code(Fableモデル)がC++エンジニアリングを担当した実際のプロジェクトとして、AIが複雑なシステムプログラミングでどこまで有効かを検証する参考事例になります。
使う前に知っておきたいこと
ゲームアセットの購入が必須
ゲームデータはリポジトリに含まれていません。Steam(app 2732960)で「C&C: Generals Zero Hour」を購入(セール時約500円程度)する必要があります。
iPadでのメモリ問題
長時間プレイでは居住メモリが 約3GB以上 に達し、iOSがダイアログなしでアプリを強制終了することがあります。セッションログはFilesアプリから確認できますが、頻繁なセーブを推奨します。
Windows は直接未対応
このポートはmacOS・iOS・iPadOS向けです。Windows版はEA/Steamの公式版をお使いください。
ビルドにはターミナル操作が必要
Homebrew・CMake・Xcodeの使用経験が必要です。完全なビルド時間はMacのスペックに依存しますが、数十分かかる場合があります。
ライセンス
エンジンコードは GPL v3(EA公式ソースリリース→コミュニティチェーン→本フォーク)です。ゲームアセットは含まれておらず、ライセンスも別個です。
関連ツール・おすすめサービス
- DigitalOcean — Linux環境でのビルドテスト・CIパイプライン構築にDropletが便利。Linuxでのポートビルド検証環境として活用できる
この技術を学ぶ
C++・ゲームエンジン・クロスプラットフォーム移植に興味を持った方には、Udemyのオンラインコースもおすすめです。
- 🎓 関連するアプリ開発・C++コース一覧 — セール時(最大90%OFF)を狙うとお得です
まとめ
Generals-Mac-iOS-iPadは、2003年製C&C Zero HourをApple Silicon Mac・iPhone・iPadでネイティブ動作させる技術的に高度なオープンソースポートです。DXVK/MoltenVKの変換チェーン・RTSタッチコントロール・Claude Code(Fable)とのAIコラボという3つの注目点を持ちます。C&Cファン・C++エンジニア・AIコラボ研究者の三者に強く推奨します。
関連記事
この記事が役に立ったらシェアしてください