目次
Godotとは
公式ドキュメントでは次のように紹介されています。
Godotエンジンは機能豊富な、クロスプラットフォームのゲームエンジンであり、2D・3Dゲームを単一のインターフェイスで製作することができます。基本的なツールは一通り用意され、ユーザーはプログラムの再発明をすることなくゲーム製作に集中できます。製作したゲームは主要なデスクトップ環境(Linux, MacOS, Windows)や、モバイル(Android, iOS)、Webベース(HTML5)環境にワンクリックで書き出せます。
Godot はMITライセンスの下、完全に自由でオープンソースです。利用に関して特に制限はありませんし、利用料を請求することもありません。エンジンのコードの最後の一行まで、ゲームは製作したユーザーのものです。Godot は自主的なコミュニティによって開発されており、エンジンを期待にかなうものにするため、ユーザーの方々も自由に参加できます。Godot は非営利団体 Software Freedom Conservancy によって支援されております。
その他、エディターや対応プラットフォームなど、こちらの公式のよくある質問に掲載されています。
Godotを選ぶ理由
軽い、安い、
個人的に感じているGodotの強みは、次のとおりです。
- ダウンロードして、すぐ使える登録や手続きが不要
- コンパクトなので、低メモリ&低性能なPCや、古い環境でも動く
- プレイヤーの個人情報を勝手に集めない
中小規模のゲーム開発に、ぴったりのゲームエンジンです。特に、2Dゲームの開発に適しています。低予算の試作開発や、ちょっとした3Dのウォークスルーサービスの開発などにも、よい選択肢になるでしょう。
セットアップが簡単で、高性能なPCでなくても動作するので、ゲーム開発の学習にも適しています。自分の手でゲームを作りたいハンドメイド派の人向きです。
ビルドしたゲームが、勝手にユーザー情報を集めるようなことをしないので、手軽に配布できるのも魅力です。海外では、個人情報の収集にうるさい国があります。
UnityとUEに共通するのは運営への不安です。ランタイムフィーのように強制的にプレイヤーの個人情報を収集しようとしたり、一方的に将来の方針を決められたり、大手の配信サイトと訴訟合戦してみたり、制御できないところで発生するリスクがあります。営利目的で開発されているゲームエンジンではこのようなリスクは避けられません。
オープンソースであるGodotの価値はそこにあります。気に入らないことがあれば自力救済が可能です。UnityやUEへの完全な依存は怖い。かといってフルスクラッチで自作ゲームエンジンを作るのは面倒。という場合、Godotはよい選択肢になります。
とっつき難易度
UnityやUnreal Engineに比べると、初手で必要とされる知識は、やや多いです。
Godotのコンセプトは、ノードを組み合わせるというだけのとてもシンプルなものです。しかし、シンプルすぎて、必要な手数が増えるという面があります。例えば、3Dの球体を作成して、物理シミュレーションで落下させる手順を、Unityと比較してみます。
Unityなら、以下の3手です。
- 新規ゲームオブジェクトを、Sphereで作成
- 作成したSphereを、よさそうな位置へ移動
- Rigidbodyをアタッチ
同じことをGodotでやろうとすると、以下のようになります。
- シーンをまとめるルートノードをNodeなどで作成
- ルートノードの子に、RigidBody3Dノードを作成
- RigidBody3Dの子に、MeshInstance3Dノードを作成
- メッシュとして、SphereMeshを作成
- RigidBody3Dの子供に、CollisionShape3Dノードを作成
- 当たり判定の形状として、SphereShape3Dを作成
- ルートノードの子に、Camera3Dを作成
- 球体がよさそうな場所へ移動
Unityでは、よく使う構成が予め用意されているので、すぐ動かすことができます。また、シーンやゲームオブジェクト、コンポーネント、プレハブというように、要素が適度に整理されていて、扱いやすいです。
Godotは、細かいパーツを組み合わせて、目的のものを組み立てます。一から組み立てる必要があるので、手間がかかります。その代わり、目的にぴったりのものを、無駄なく作れます。
開発言語
開発言語はいくつか選択肢がありますが、GDScriptという独自言語が推奨されています。インデントでコードのブロックを表すなど、Pythonに雰囲気が似ています。
C#の対応が進んでいますが、正式にエクスポートできるプラットフォームは4.2の時点ではデスクトップPCのみです。iOSやAndroidは実験的な対応で、HTML5は未対応です。既知の不具合もあれこれあって、現段階ではGDScriptの方が安心して使えます。
GDScriptはGodotエンジンへ手早くアクセスできるのでスクリプトが簡潔になるのがメリットです。また実行をしながらスクリプトの変更を反映できるホットリロードも大きな武器です。しかしダックタイピングが大きなデメリットです。実行しないとタイプミスを発見できないのでテストの負担が激増します。エディターやツールではダックタイピングの柔軟性は有用ですが、実行環境では厄介者です。オートコンプリートや一括リネーム、参照先の検索などの機能も弱くなります。
何らかのプログラミング言語を習得済みであれば、学習コストはそれほどかからないのでGDScriptでよいと思います。しかし、はじめてプログラミング言語を学ぶならC#をおススメします。最初に学ぶのがコンピューター言語の母国語になりますので、はじめての言語は広く採用されている筋がよい言語を学ぶことをおススメします。今は不具合がありますが、習得している間に改善が進むでしょう。
つまり、初学者は素直にUnityでいいんじゃないのか・・・というのが今のところの身も蓋もない感想です^^;
人気
参考までに、2023年のグローバルゲームジャムではUnity、Unreal Engineに次ぐ3番目に利用されたゲームエンジンだったそうです。
2023/9/12のUnityのランタイムフィー騒動の影響で次回のGGJでのシェアはかなり変動するかも知れません。が、Godotを試してみたもののUnityに回帰した開発者がかなり多いという噂も聞いているので、あまり変わらないかも知れません。仲間が増えるのを願っています。
まとめ
歯切れが悪い紹介でした。使うほどにUnityの優秀さを実感しているのは事実です。他の人、特に初学者におススメできるかというと微妙、と言うのが正直なところです。
個人的にはマニュアル車を操るような楽しさがあって気に入ってます。今後の自主製作はGodotを中心に進める予定です。
ビジネスシーンで利用するというよりは、趣味の延長で日曜大工的に楽しめそうなゲームエンジンだと感じています。