Godot (ゲームエンジン)

Godotは、アルゼンチンの開発者によって作られたクロスプラットフォーム対応のオープンソースゲームエンジンです。MITライセンスで提供されており、2Dおよび3Dゲームの開発を強力にサポートします。

概要



Godotは、ゲーム開発に必要な機能を統合した環境を提供しており、アセットを除くすべてのゲーム要素をゼロから作成できます。独特の「シーン」による入れ子構造を採用しており、ゲームの構成要素は独立したファイルシステムで管理されます。このシステムはバージョン管理ツールとの連携も可能です。

多様なプラットフォームへの出力に対応しており、PC、スマートフォン、Webブラウザ、ゲーム機など、幅広い環境で動作するゲームを開発できます。プラットフォームごとにテクスチャ圧縮や解像度を調整することも可能です。

現在、Windows、macOS、Linux、iOS、Android、Webブラウザがサポートされており、W4 Gamesを通じてNintendo Switch、PlayStation 5|PlayStation_5Xbox 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、ダークテーマの追加、BlenderColladaエクスポーターの改善が行われました。また、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ドルの支援を受け、WebSocketWebAssemblyWebGL 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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。