
2026/07/05 4:41
Fable を用いた Command & Conquer: Generals の macOS、iPhone、iPad 向けネイティブ移植
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Zero Hour は、Apple Silicon Mac、iPhone および iPad 向けに公式ネイティブアプリケーションとして利用可能となり、DirectX 8 エンジンを Metal に変換する堅牢な翻訳パイプラインを採用しており、エミュレーションを必要とせずに動作します。このポータブルは fbraz3 が作成した GeneralsX プロジェクトを基盤とし、タップ選択、ドラッグボックス選択、ピンチによる拡大縮小など、基本的なタッチ操作を統合しています。macOS へのインストールには、外部的アセット(約 2.7 GB のバンドル)を抽出するために Steam コピーの所有が必要ですが、iOS バージョンはこれらのアセットがアプリケーションバンドル内に含められており、独立した体験を実現しています。開発プロセスには、Ammaar Reshi の指揮のもとで Claude Code が大幅な工数を投入し、MoltenVK や GPL v3 ライセンス付きコードなどのオープンソースツールを活用して、レガシーの PC アーキテクチャと最新の ARM64 ハードウェアを接続しました。Xcode 設定や特定のビルドスクリプトなどインストール前提条件が関わりますが、ユーザーはモバイルデバイス上で高性能の実時間戦略ゲームプレイを楽しむことができます。ただし、iOS ユーザーは長時間セッション中の潜在的なメモリ制限や、稀なバックグラウンド化時クラッシュについて留意する必要があります。
本文
『ジェネラルズ』Apple シリコン Mac / iPhone / iPad 移植版
『ジェネラルズ』は、Apple シリコン搭載の Mac、iPhone、iPad 上でネイティブに動作します。キャンペーン、スカルマッチ(小規模戦)、そして「将軍チャレンジ」すべてのモードに対応しています。
対応機能と技術的背景
- RTS に最適化されたタッチ操作を備えています:
- タップによる選択
- ドラッグによる矩形選択
- 長押しでの選択解除
- 2 フィンガー スクロール
- ピンチによるズーム
- エミュレーション不使用:2003 年に発売された原作のエンジン自体が ARM64 アーキテクチャ向けにコンパイルされています。
- レンダリングパイプラインの実装順序は以下の通りです:
→DirectX8
→DXVK
→Vulkan
→MoltenVKMetal
プロジェクトの由来
本プロジェクトは、EA が GPL バージョン 3 ライセンスの下で公開したソースコードを基盤としています。『fbraz3/GeneralsX』(macOS と Linux 向けの大規模移植プロジェクト)から分岐しています。今回のフォーク版では、以下の改良が行われています:
- iOS / iPadOS 向けの正式対応
- エンジン自体のバグ修正
※注意: ゲームのアセット(画像や音声など)はこの配布物には含まれておりません。Steamなどでご自身で購入したコピー(セール時は約 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 # シェールのプロファイル(.bash_profile など)に追記してください # LunarG Vulkan SDK のインストール # Homebrew のカスク版ではなく、公式サイトから入手してください # 参考:https://vulkan.lunarg.com/sdk/home export VULKAN_SDK=$HOME/VulkanSDK/<バージョン>/macOS # シェールのプロファイルに追記してください
ソースコードの取得・ビルド・起動
# ソースコードのクローンと移動 git clone https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git GeneralsX cd GeneralsX # 依存ライブラリのチェック、構成、ビルドを実行 ./scripts/build/macos/build-macos-zh.sh # ~/GeneralsX/GeneralsZH ディレクトリを作成し、run.sh を生成 ./scripts/build/macos/deploy-macos-zh.sh # ご自身の Steam アカウントで購入済みデータを取得(ご自身の名前で置き換えてください) ./scripts/get-assets.sh <your_steam_username> # ゲームを実行 cd ~/GeneralsX/GeneralsZH && ./run.sh -win
クイックスタート — iPhone / iPad
macOS 版の前提条件に加え、以下の項目が必要です:
- Apple ID にサインインした Xcode(フルバージョン)
brew install xcodegen- アップル開発者プログラムへの登録(無料または有料プランいずれでも可)
ビルドとインストール手順
cd GeneralsX # iOS 向けの DXVK は、このサブモジュールと Patches/dxvk-ios.patch を組み合わせて構築してください git submodule update --init references/fbraz3-dxvk ./scripts/build/ios/fetch-moltenvk.sh # チェックサム付の MoltenVK.framework(固定バージョン)をフェッチ ./scripts/build/ios/stage-fonts.sh # 必要に応じて Liberation Fonts を、ゲームが想定する形式にリネームして用意 cmake --preset ios-vulkan cmake --build build/ios-vulkan --target z_generals # アプリの組立、署名、インストールを実行 GX_TEAM_ID=<your-team-id> GX_BUNDLE_ID=com.you.generalszh \ ./scripts/build/ios/package-ios-zh.sh --install
インストールオプションの詳細
- チーム ID の入手方法: Xcode → 設定 → アカウント情報 からご自身の Team ID を確認してください。
- インストールについて:
- アセットはアプリバンドルの内部に含まれており、スタンドアロンのインストールが可能です。
フラグを指定すると、約 2.7GB のアセットコピーをスキップでき、コードの高速な検証・修正に便利です。--dev
ファイル構成の説明
| パス | 内容 |
|---|---|
| 移植プロジェクトに関する完全な技術報告書です。失敗事例、原因、解消策が記録されています。**§8「バグ考古学」**から読むことをお勧めします(黒画面化したミニマップ、消音された EVA 線、不規則な鳴き声などの調査記録が含まれています)。 |
| クラシックな Windows ゲームを Apple プラットフォームへ移植するための汎用的な手法や方法論です。 |
| 一般公開に向けてチェックすべき項目一覧(ゲート)です。 |
| Steam アセットを取得するためのスクリプトです(お使いの Steam アカウントとゲーム ID: 2732960 を指定)。 |
, | ビルド、デプロイ、パッケージ化のワークフロー定義が含まれています。 |
| XcodeGen による署名用のストブプロジェクトおよび フォルダ(ステージされた Options.ini や dxvk.conf など)が格納されています。 |
| iOS 向けの DXVK 変更内容です。dylib (, ) の再構築に適用されます(ローカルフォーク型のビルドで行われます)。 |
既知の問題点
- iPad 上のメモリ管理:
- iPad で長時間プレイすると、iOS がメモリ不足(約 3GB を超過)としてアプリを強制終了させる場合があります。
- その際、何のダイアログも出ずにホーム画面に戻ります。
- セッションの詳細ログは、「ファイル」アプリ内のゲームフォルダに保存されています。調査中です。
- バックグラウンド処理:
- ゲーム進行中に画面表示を切り替えると(例:ホームに戻る)、稀に iOS 上でクラッシュすることがあります。
- ライフサイクルの一時停止処理では一般的なケースはカバーできていますが、まれな競合問題が残っています。
- 頻繁にセーブしておくことを強くお勧めします。
ライセンスとクレジット
- エンジンコード: GPL バージョン 3(EA のソースリリース → GeneralsX → 今回のフォーク版を遡る)。
- ゲームアセット: 本配布物には含まれておらず、ライセンス上提供されていません。
- クレジット:
- ゲーム製作:Westwood / EA Pacific
- ソースコードの公開元: EA
- ベースとなる移植プロジェクト:
fbraz3/GeneralsX - コミュニティ向けメインライン: TheSuperHackers/GeneralsGameCode
- 技術基盤: DXVK, MoltenVK, SDL, OpenAL Soft, FFmpeg, Liberation Fonts
- 開発について: この移植プロジェクトは、「人間」と**「AI」**の協業によって構築されました。エンジニアリング作業は Anthropic の Claude(Fable モデル)が担当し、Ammaar Reshi が実際のデバイス上で設計監督とプレイテスターを務めました。「ポートに関するドキュメント(docs/port/)」には、この共同作業のプロセスを編集せずに記録した技術ログが含まれています。