Godotは、アルゼンチンの開発者によって作られた
クロスプラットフォーム対応のオープンソースゲームエンジンです。MIT
ライセンスで提供されており、2Dおよび3Dゲームの開発を強力にサポートします。
概要
Godotは、ゲーム開発に必要な機能を統合した環境を提供しており、アセットを除くすべてのゲーム要素をゼロから作成できます。独特の「シーン」による入れ子構造を採用しており、ゲームの構成要素は独立した
ファイルシステムで管理されます。このシステムはバージョン管理ツールとの連携も可能です。
多様なプラットフォームへの出力に対応しており、PC、
スマートフォン、Webブラウザ、ゲーム機など、幅広い環境で動作するゲームを開発できます。プラットフォームごとにテクスチャ圧縮や解像度を調整することも可能です。
現在、Windows、macOS、
Linux、iOS、Android、Webブラウザがサポートされており、W4 Gamesを通じてNintendo Switch、
PlayStation 5|PlayStation_5、
Xbox Series X/S|Xbox Series X_Sへのエクスポート
ライセンスも提供されています。
スクリプティング
Godotでは、
Pythonに似た独自の
スクリプト[[言語]]「GDScript」を用いてゲームロジックを記述します。C#も利用可能であり、C/
C++コードの呼び出しも可能です。GDScriptは、変数の型定義を厳密に行うことができ、Godotのアーキテクチャに最適化されています。エンジン開発者は、当初外部のプログラミング
言語の採用を検討しましたが、最終的に高度な最適化とエディタ統合を実現するためにカスタム
言語を採用しました。
Godotには、オートインデント、
シンタックスハイライト、コード補完などの機能を備えたスクリプトエディタが統合されています。ブレークポイントやステップ実行が可能なデバッガも搭載しています。
Visual Studio Codeなどの外部エディタやIDEとの連携も可能です。
バージョン3からは、ビジュアルスクリプトも利用可能になり、視覚的なプログラミングが可能になりましたが、Godot 4.0では廃止されました。
描画機能
Godotは、Vulkanを介した描画機能を提供しています。また、
OpenGL ESをサポートする互換モードも備えています。透明度、
法線マッピング、スペキュラ、シャドウマップによる動的な影、FXAA、ブルーム効果、
被写界深度、HDR、
ガンマ補正、フォグなどのポストプロセス効果を実装しています。
シェーダーは、マテリアル、ポストプロセッシング、2Dレンダリングなど、幅広い用途に使用できます。独立した2Dグラフィックスエンジンも備えており、3Dエンジンとは別に動作させることが可能です。2Dエンジンには、ライティング、シェーディング、タイルセット、多重スクロール、2D
ポリゴン、アニメーション、パーティクル、物理演算などの機能が含まれています。2Dと3Dのグラフィックスエンジンは「ビューポートノード」を通じて統合・併用でき、これがGodotの大きな特徴となっています。
レンダリング方式は、PC向けにForward+(Clustered lighting)を採用しており、depth pre-passを備えています。これにより、光源数の制約が緩和され、ピクセル
シェーダーの負荷も軽減されます。
Godotでは、
GLSLに似た独自の
シェーディング[[言語]]「Godot shading language」とビジュアルエディタを用いて
シェーダーを制御できます。
シェーダーは、各ステージの処理を記述するプロセッサ関数を持ち、Godot 4.2では、vertex(), fragment(), light(), start(), process(), sky(), fog() の7種類のプロセッサ関数が定義されています。
シェーダーは、レンダリングの種類に応じたタイプ設定を持ち、タイプによってレンダリング方式やビルトイン値、対応プロセッサ関数が変更されます。Godot 4.2では、spatial, canvas_item, particles, sky, fog の5種類が定義されています。さらに、Godot内部の
シェーダー処理の挙動を変更するレンダーモード設定も備えています。
頂点
シェーダーの制御は、vertex()プロセッサ関数内に記述します。Godotはデフォルトで暗黙的なモデル・ビュー・投影変換を行いますが、これはレンダーモードで無効化したり、変更したりできます。
その他の特徴
Godotには、アニメーション作成用のGUIが搭載されており、
スケルタルアニメーション、ブレンディング、アニメーションツリー、
モーフィング、リアルタイムカットシーンなどを編集できます。これにより、定義したアニメーションでゲームエンティティを動かすことができます。3D物理エンジンにはBulletを採用しています。
その他にも、オクルージョンカリング、Level of detail、パフォーマンス統計のグラフ化、ライティング、マルチスレッド処理、プラグインシステム、レンダリングターゲット、動画再生機能(
Theora)、音声再生機能(Ogg
Vorbis,
WAV)、パーティクルシステム、テクスチャ入力/出力/圧縮パイプライン、Navmeshサポート、GUI、キーボード、マウス、
ゲームパッド、タッチ操作のサポート、
OpenXRプラグインを使用したVRサポートなど、多くの機能を備えています。
歴史
Godotの開発は、2007年にJuan 'reduz' LinietskyとAriel 'punto' Manzurによって開始されました。Linietskyは、「Godot」という名前は、
サミュエル・ベケットの劇「
ゴドーを待ちながら」にちなんで、エンジンに新たな機能を追加し続け、完璧に近づけたいという永遠の願いを表現するために付けられたと述べています。
2014年2月、Godotの
ソースコードがMIT
ライセンスで
GitHubに公開されました。
2014年12月15日、Godotは、ライトマッピングやナビメッシュによる経路探索のサポート、
シェーダー機能の強化を含むバージョン1.0をリリースし、初の安定版となりました。
2015年5月21日にリリースされたバージョン1.1では、コードエディターのオートコンプリートの改善、ビジュアル
シェーダーエディター、OSウィンドウ管理のためのAPI、ダークテーマの追加、
Blender用
Colladaエクスポーターの改善が行われました。また、2Dエンジンの書き直しとそれに伴い2Dナビゲーション
ポリゴンのサポートも追加されました。
2015年11月4日、Godotは
Software Freedom Conservancyのメンバープロジェクトとなりました。
2016年2月23日、Godotは安定版バージョン2.0をリリースしました。シーンのインスタンス化と継承、複数シーンの編集機能、デバッガーなどが改善され、新しいファイルブラウザが追加されました。
2016年8月リリースのバージョン2.1では、アセットデータベースやプロファイル、プラグインAPIが追加されました。
2016年6月22日、Godotは
Mozilla Open Source Support (MOSS) から20,000ドルの支援を受け、
WebSocket、
WebAssembly、
WebGL 2.0のサポートに役立てられました。
2018年1月29日、Godotはバージョン3.0をリリースしました。3DレンダリングとVRの互換性が向上し、C#(Mono)がサポートされました。また、独自の組み込み3D物理エンジンはBullet物理エンジンに置き換えられました。
2023年3月1日、Godotはバージョン4.0をリリースしました。新しいVulkanレンダラーの追加、SDFベースのグローバルイルミネーションの追加、物理エンジンの刷新、GDScriptランタイムの性能向上、WebXRへの対応などが含まれています。
採用ゲーム一覧
OKAMスタジオのゲームの多くがGodotを用いて作成されており、コミュニティ製のオープンソースゲームにも利用されています。
El Asombroso Show Zamba
Dog Mendonça & Pizza Boy
Anthill
Running Nose
Project Carnival
DynaDungeons
Minilens
Tanks of Freedom
ソニック カラーズ アルティメット
脚注
[外部リンク]
公式ウェブサイト
*
Godot Engine - GitHub