Godot (ゲームエンジン)

Godotは、クロスプラットフォームかつオープンソースの2D/3Dゲームエンジンである。現在の開発主体はGodot Engine communityであるが、オープンソース化によってそのような形態をとる前はラテンアメリカの幾つかの企業向けに開発、使用がなされていた。開発環境はWindows、macOS、Linux、BSD系OS とHaikuで動作し、開発対象となるプラットフォームはPC、家庭用ゲーム機、スマートフォン、Web  と、非常に多様なプラットフォーム上で動作するように設計されている。

1. 概要
-----

Godotは統合ゲーム開発環境として開発されているため、 CGアセットや音楽といった素材を除いてゲームをスクラッチで制作することを可能にしている。「シーン」による入れ子構造によって構成される独特のゲームデザインアーキテクチャを用いている。スクリプトからグラフィック素材に至るまで、ゲームの構成部品すべてが独立したファイルシステムに統合される。この管理システムはバージョン管理システムと併用することも可能である。

Godotは複数のプラットフォームへの出力をサポートしており、開発者はスマートフォン、Web、PC、ゲーム機など多くのプラットフォームに対応できる。テクスチャ圧縮や解像度をプラットフォーム毎に設定することも可能である。

現在サポートされているプラットフォームはWindows、macOS、Linux、FreeBSD、Android、iOS、BlackBerry10、HTML5、PlayStation 3、PlayStation Vita、ニンテンドー3DSの他、サポート途中のプラットフォームにWindows Runtimeがある。

1.1. スクリプティング
-------------

ゲームの作成はPythonに近い独自のスクリプト言語であるGDScriptによって成される。GDScriptはその基となったPythonよりも変数の厳格な記法が可能で、「シーン」を礎となすGodotのアーキテクチャに最適化されたものになっている。エンジン開発者は当初外部のプログラミング言語を検討していたが、結局高度な最適化とエディタへの統合が成されたカスタム言語を採用することになったと述べている。

Godotにはオートインデントやシンタックスハイライト、コード自動補完などの機能を有するスクリプトエディタが統合されている。またブレークポイントおよび プログラムステッピングを設定できるデバッガも有している。

一方で、GodotはVisual Studio Codeなどの外部エディタや統合開発環境と連携して開発を行うことも出来る。

また、バージョン3からはビジュアルスクリプトが利用可能になり、Unreal EngineのブループリントやBlender Game Engineのロジックエディターのような視覚的なプログラミングが可能である。しかし、次期メジャーアップデートであるGodot 4.0ではビジュアルスクリプトの廃止がなされることがアナウンスされた。

1.2. 描画機能
---------

GodotはVulkanを介した描画機能を提供する。またCompatibilityモードの形でOpenGL ESをサポートする。

エンジンは透明度、法線マッピング、スペキュラ、シャドウマップを用いた動的な影や、FXAA、ブルーム効果、被写界深度、HDR、ガンマ補正やフォグ等のフルスクリーンポストプロセッシング効果を実装している。GodotはGLSLに似たシンプルなシェーダ言語を備えている。シェーダーはマテリアルやポストプロセッシングはもちろん、2DCGレンダリングに対しても用いることができる。シェーダーは頂点シェーダー部とフラグメントシェーダー部で分けられている。ビジュアルエディタを用いたノードベースでのシェーダー編集も可能である。

Godotは独立した2Dグラフィックスエンジンを備えており、3Dのそれとは別に動かすことができる。2Dエンジンの機能の一例としてライティングやシェーディング、タイルセット、多重スクロール、2Dポリゴン、アニメーション、パーティクルに加えて物理演算エンジンを備えている。これら2Dと3D二つのグラフィックスエンジンを「ビューポートノード」を用いて併用・統合させて用いることが可能であり、エンジンの大きな特徴となっている。

1.3. その他の特徴
-----------

Godotはアニメーション作成用のGUIを備えており、スケルタルアニメーション、ブレンディング、アニメーションツリー、モーフィング、リアルタイムカットシーンを編集できる。これによって定義した任意のアニメーションで、ゲームエンティティを動かせる。3D物理エンジンにはBulletを採用している。

他にも以下のような機能を備えている:

オクルージョンカリング
パフォーマンス統計のグラフ化
ライティング
マルチスレッド処理
プラグインシステム
レンダリングターゲット
動画再生機能
音声再生機能
パーティクルシステム
テクスチャ入力/出力/圧縮パイプライン
Navmeshのサポート
GUI
キーボード、マウス、ゲームパッドとタッチ操作のサポート
OpenXRプラグインを使用したVRのサポート

2. 歴史
-----

Godotの開発がJuan 'reduz' LinietskyとAriel 'punto' Manzurによって開始されたのは2007年のことである。Linietskyはプレゼンテーションにおいて、"Godot"の名は「エンジンに新しい機能を追加し、完璧なものへと近づけたい」という永遠の叶わぬ願いをサミュエル・ベケットの劇「ゴドーを待ちながら」になぞらえて取られたということを述べている。2014年2月、GodotのソースコードがMITライセンスでGitHubに公開される。

2014年12月15日、Godotはライトマッピングやナビメッシュによる経路探索のサポートを追加し、シェーダー機能を強化したバージョン1.0をリリースし、これが初の安定版となった。次いで2015年5月21日にリリースされたバージョン1.1はコードエディター上でのオートコンプリートの改善、ビジュアルシェーダーエディター、OSのウィンドウ管理のためのAPI、ダークテーマを追加し、Blender用Colladaエクスポーターの改善がなされた。また、2Dエンジンの書き直しとそれに伴い2Dナビゲーションポリゴンのサポートが追加される。新しい2Dエンジンはシェーダーやマテリアル、独立したノード毎のZオーダー、光源やポリゴンを用いたシャドウ、法線マッピングの他、Distance-fieldフォントのサポートが改善された。

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  の“Mission Partners”アワードからWebSocket、 WebAssemblyとWebGL 2.0のサポートへの支援として20,000ドルの支援を受けた。

2018年1月29日、 Godotはバージョン3.0をリリースした。3DレンダリングとVRの互換性が向上し、C#がサポートされた。また独自の組み込み3D物理エンジンはBullet物理エンジンに置き換えられた。

2023年3月1日、Godotはバージョン4.0をリリースした。

3. 採用ゲーム一覧
----------

[1]の多くがGodotを用いて作られている。コミュニティ製のオープンソースのゲームに用いられることもある。

//El Asombroso Show Zamba//
//Dog Mendonça & Pizza Boy//
//Anthill//
//Running Nose//
//Project Carnival//
//[2]//
//[3]//
//[4]//
//ソニック カラーズ アルティメット//

4. 脚注
-----

5. 外部リンク
--------