HN 日本語サマリー

← 一覧へ戻る
プログラミング

Command & Conquer GeneralsがFableを使用してmacOS、iPhone、iPadにネイティブ移植

Command and Conquer Generals natively ported to macOS, iPhone, iPad using Fable (github.com)

417 pointsby asronline160 コメント

要約

この記事は、クラシックRTSゲーム「Command & Conquer Generals: Zero Hour」がFableプロジェクトを使用してmacOS、iPhone、iPadにネイティブ移植されたことを紹介しています。この移植版はApple Silicon上で動作し、DirectX 8をVulkanおよびMoltenVK経由でMetalに変換した2003年のエンジンを使用しており、モバイルデバイス向けにタッチコントロールも備えています。ゲームの所有が必要で、Appleプラットフォームでのビルドと実行方法の詳細な手順が提供されています。

全文翻訳

Command & Conquer Generals: Zero Hour — macOS, iOS & iPadOS Zero HourがApple Silicon Mac、iPhone、iPadでネイティブに動作 — キャンペーン、スカーミッシュ、Generals Challengeが含まれ、RTS向けにタッチコントロール(タップで選択、ドラッグボックス、長押しで選択解除、2本指スクロール、ピンチズーム)が組み込まれています。 エミュレーションではありません:これはARM64用にコンパイルされた実際の2003年エンジンであり、DirectX 8 → DXVK → Vulkan → MoltenVK → Metalにレンダリングしています。 EAのGPL v3ソースリリースをfbraz3/GeneralsX(macOS/Linuxポートの重労働を行った)経由で構築しました。このフォークはiOS/iPadOSポートと一連のエンジン修正を追加します。オリジナルのGeneralsX READMEはupstream-mainブランチにあります。 ゲームアセットは含まれておらず、配布もされません。ご自身のコピー(Steam、セール時約5ドル)が必要です。 クイックスタート — macOS 事前準備(初回のみ): # Toolchain 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 # シェルプロファイルに追加 # LunarG Vulkan SDK(Homebrew caskではありません) — https://vulkan.lunarg.com/sdk/home export VULKAN_SDK=$HOME/VulkanSDK/<version>/macOS # シェルプロファイルに追加 クローン、ビルド、アセット取得、プレイ: 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 <your_steam_username> # 所有しているゲームデータを取得します 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=<your-team-id> GX_BUNDLE_ID=com.you.generalszh \ ./scripts/build/ios/package-ios-zh.sh --install # アセンブル、署名、インストールします Xcode → 設定 → アカウントでチームIDを見つけてください。アセットはアプリバンドル内に同梱されます(自己完結型インストール)。--dev は約2.7 GBのコピーをスキップして高速なコードイテレーションを行います。 場所と内容 Path What it is docs/port/PORTING_PLAYBOOK.md このポートの完全なエンジニアリングログ:すべての障害モード、根本原因、修正 — §8のバグ考古学から始めてください:黒いミニマップ、サイレントEVAライン、そしてチープ音 docs/port/PORTING_PATTERNS.md クラシックWindowsゲームをAppleプラットフォームに移植するための一般的な方法論 docs/port/RELEASE_CHECKLIST.md 公開リリースのためのゲート scripts/get-assets.sh Steamアセットフェッチャー(ご自身のコピー;アプリ2732960) scripts/build/macos/, scripts/build/ios/ ビルド、デプロイ、パッケージングパイプライン ios/ XcodeGenサイニングスタブプロジェクト + ios/config/(ステージングされたOptions.ini、dxvk.conf) Patches/dxvk-ios.patch DXVKの変更点 iOS d3d8/d3d9 dylibsはこのフォークからビルドされます(ローカルフォークビルドで適用) 既知の問題 iPadでの長時間のセッションは、メモリ(約3 GB以上常駐)のためにiOSによって終了されることがあります。アプリはダイアログなしでホーム画面に戻ります。セッションログ(現在および以前)は、Filesアプリ内のゲームフォルダの下にあります。調査中です。 ゲーム中のバックグラウンド化は時折iOSでクラッシュすることがあります — ライフサイクルの一時停止は一般的なパスをカバーしますが、まれな競合が残っています。頻繁にセーブしてください。 ライセンスとクレジット エンジンコード GPL v3(EAのソースリリース → GeneralsX → このフォーク)。ゲームアセット:含まれていません、ここでライセンスされていません。クレジット:Westwood/EA Pacific(ゲーム)、EA(ソースリリース)、fbraz3/GeneralsX(ベースポート)、TheSuperHackers/GeneralsGameCode(コミュニティメインライン)、DXVK、MoltenVK、SDL、OpenAL Soft、FFmpeg、Liberation Fonts。 このポートは人間とAIの協力によって構築されました:エンジニアリングはClaude Code(AnthropicのClaude、Fableモデル)によって行われ、Ammaar Reshiによって実際のデバイスで指示され、プレイテストされました。docs/port/のエンジニアリングログは、それがどのように機能したかの編集されていない記録です。