SwiftGodotでGodot 4.6をSwiftから駆動する境界
Swift 用の新しい Godot バインディング。 SwiftGodot SwiftGodot は、新しい GDExtension システムを使用して Godot 4.6 ゲーム エンジンに Swift 言語バインディングを提供します。
ひと目でわかる
- これは何?
- Swift 6.3とGDExtensionを前提に、既存Godot拡張とSwiftGodotKit埋め込みを分けて考えるための整理です。
- 誰に向いている?
- SwiftGodotはSwift 6.3でGodot 4.6へ接続する選択肢です。SwiftPM、SwiftGodotRuntime、SwiftGodotKit、gdextensionの関係をREADMEから確認し、対応OSの範囲を切り分けます。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 35 日前です。
- 何の言語で書かれている?
- 主に Swift です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Godot 4.6 向けバインディング
SwiftGodot は、GDExtension システムを通じて Godot 4.6 ゲームエンジン向けの言語バインディングを提供する Swift パッケージです。README には、古いバージョンの Godot のサポートは別のブランチで提供されていると記載されています。このプロジェクトは2つの方法で使用できます。既存の Godot プロジェクトに組み込む GDExtension を構築し、Swift コードがエンジンにサービスを提供する方法と、SwiftGodotKit と共に API として使用し、Godot を Swift アプリケーションに直接埋め込んで Swift コードがランタイムを駆動する方法です。この区別がプロジェクトのドキュメントの大部分を形作っています。
2つの使用方法
最初の方法は拡張モデルです。Swift コードは共有ライブラリにコンパイルされ、.gdextension ファイルが Godot にライブラリの場所と呼び出すエントリポイントを指示します。2番目の方法は、関連する SwiftGodotKit モジュールを使用し、Godot をアプリケーションに埋め込み、Swift コードから Godot ランタイムを起動できるようにします。README は、Swift から Godot を駆動すると、macOS の Xcode から Swift コードをデバッグでき、Godot コード自体もデバッグできると指摘しています。この2つのアプローチは、競合ではなく補完的なものとして説明されています。
サポートされているプラットフォームと Swift バージョン
README は、iOS、Linux、macOS、Windows を SwiftGodot が現在ターゲットにできるプラットフォームとして挙げています。また、追加のプラットフォームは可能かもしれないがテストされておらず、安定性は検証できないと述べています。パッケージには Swift 6.3 が必要です。利用方法としては、SwiftPM からリポジトリを参照してサポートされている任意のプラットフォームで完全なソースビルドを行うか、SwiftGodotBinary のプリビルド Apple プラットフォームパッケージを使用して macOS と iOS でより速い反復処理を行うことができます。
最小ランタイムまたは完全 API
SwiftGodot は2つのターゲットを提供します。1つ目は SwiftGodotRuntime で、コアのバリアント型、Object、ClassDB、RefCounted のサポートのみを含む最小ビルドです。2つ目は SwiftGodot で、Godot API 全体を含む従来のターゲットであり、SwiftGodotRuntime のスーパーセットです。README はランタイム分割の根拠を説明するディスカッションにリンクしていますが、そのディスカッションはリポジトリの外部にあります。この分割により、ニーズに応じて小さい依存関係と完全な API サーフェスのどちらかを選択できます。
プロジェクトの開始
README は、開始に役立ついくつかの関連プロジェクトを紹介しています。SwiftGodotKick は、Swift でスケルトンテンプレートの GDExtension を作成でき、macOS での迅速な反復のためのスタンドアロンの SwiftGodotKit プロジェクトも作成できます。SwiftGodotCLI は、手動の Godot プロジェクト設定なしで SwiftGodot コードをビルドして実行できるコマンドラインツールです。また、ワンクリックで再コンパイルできるエディタプラグインを備えたテンプレートプロジェクトや、カスタム iOS/macOS API を Godot にブリッジするためのテンプレートもあります。README には、リンク以外のこれらのツールのインストール手順は含まれていません。
拡張の構築
拡張を作成するには、README は4つのコンポーネントを挙げています。Swift コード、Swift ライブラリアセットの場所を記述する .gdextension ファイル、登録およびブートストラップコード、そして拡張を Godot プロジェクトにインポートすることです。Swift コードは、Godot が呼び出す共有ライブラリにコンパイルされます。README は最小限の例を示しています。Node3D をサブクラス化し、@Godot マクロを使用し、_ready と _process をオーバーライドする SpinningCube クラスです。また、@_cdecl を使用した手動エントリポイント関数と、#initSwiftExtension マクロを使用する代替方法も示しています。EntryPointGeneratorPlugin というビルドプラグインは、ソースファイルをスキャンしてエントリポイントを自動生成できます。
導入時に混同しやすいのは、SwiftGodot本体とSwiftGodotKitの役割です。前者はGodotへ読み込ませる拡張のAPIとして使え、後者はGodotを埋め込むSwiftアプリケーション側の入口です。READMEのSpinningCube例ではNode3D、@Godot、_ready、_process、rotateYが同じ流れに置かれています。実際のプロジェクトでは共有ライブラリ、.gdextension、登録関数、エントリポイントの4点が揃わないと読み込み経路を作れません。Apple向けのSwiftGodotBinaryは反復を速める選択肢ですが、LinuxやWindowsの利用を同じ配布物で保証する説明ではありません。
Swift側のコード例はGodotのNode型を継承し、マクロで公開対象を示す形です。GDExtensionの登録レベルとエントリポイントを確認できるため、単なる型定義集ではなく、エンジンのロード時にSwiftコードをどう発見させるかまで読めます。対応OSは列挙されていますが、追加OSの安定性は未検証と明記されています。
編集部の結論
SwiftGodotはSwift 6.3でGodot 4.6へ接続する選択肢です。SwiftPM、SwiftGodotRuntime、SwiftGodotKit、gdextensionの関係をREADMEから確認し、対応OSの範囲を切り分けます。
コミュニティノート