はじめに
突然ですが、普段ゲームを作っている皆さん(限定)、普段はどうやって作っていますか?多分大半の人はUnityかUEだと思います。便利だし記事も豊富だから当然ですね。私も普段はUnityでゲームを作っています。UEも偶に触ります。
しかし、こいつらには致命的な弱点があります。動作が重いです。正直言ってデスクトップ前提ですし、UEに至ってはノーパソでやったらGPUがGARIGARI削られることになります、多分。ですが、ゲーム作りが好きな我々は、出先でもゲームを作れないとすごく困ることになります。リモートデスクトップとかもありますが、あれはあれで遅いです。ツクールなどのゲームエンジンもありますが、作れる作品が限定的ですし、エンジンでないDirextXやOpenGLを使うのもしんどいです。
「それなりに自由度があって」、「軽いゲームエンジン」を探してみると、あるんですね、Godot Engineが。
三文芝居な前置きはさておき、この記事では、最近個人開発や小規模開発で使われて出しているGodot Engineでゲームを作ったので、それを書いておきたいと思います。Unityなどの他のゲームエンジンとの違いにも触れていくつもりです。是非とも最後まで読んでいって下さい。
概要と準備
まず、Godot(読み方はゴドー)について簡単にまとめておきます。以下のサイトを参考にさせていただきました。
https://blog.esol.co.jp/embedded/godot_explanation
・クロスプラットフォームに対応したゲーム開発が可能な2D/3Dゲームエンジン
・MITライセンスのオープンソースソフトウェアであり、誰でも無料で使用可能
・ソフト自体が非常に小さく、軽量でサクサク動く
・言語はGDScript、C#、C++などに対応
・独自のシーンシステムが採用されている
などが挙げられます。
ということで、早速ダウンロードしていきます。
容量が小さいのですぐに終わります。そして、すぐに触れます。
画像ではすでにプロジェクトがありますが、最初は何もないので、「作成」からプロジェクトを作成しましょう。こちらも、時間はかかりません。
このようにして、簡単にゲーム作りを始められます。
特徴と特長
ここからゲームを作っていくんですが、さすがにその工程や様子を記事に書いていく訳にも行かないので、少し触ってみて感じたGodotの特徴や特長を、Unityなどにも触れつつ、まとめていきます。
1.オブジェクトの扱い方
大体のゲームエンジンでは、操作するキャラクターやアイテムなどのオブジェクトは、対象となるシーンの中で作成して組み立てるのが普通ですが、Godotでは「そのオブジェクト」自体がシーンという扱いです。何を言っているか分からねーと思いますが、つまりは、シーンの中にシーンを配置してゲームを組み立てていくイメージです。
例えば、この画像では、「game.tscn」や「title.tscn」は、皆さんの思い描いているシーンとほぼ同じものなんですが、「player.tscn」や「player_bullet.tscn」は所謂オブジェクトです。私個人としては、Unityのプレハブみたいなモノだと考えています。
初見では間違いなく混乱する仕様、というか他のゲームエンジンに慣れている人ほど混乱する「非初見の初見殺し」ではありますが、ちゃんとフォルダを整理すれば、種類が少ない分、寧ろ楽になるかもしれないです。
2.スクリプトの書き方
このゲームエンジンにもスクリプトはあります。
この巻き物みたいなアイコンをクリックすることで、シーンに対応したスクリプトが作成できます。あとは、タブを切り替えて、コードを書いていくだけなんですが、Godotで採用されているGDScriptは、見ての通り独特です。正直C#使わせてくれとは思いました(実際使えますが)。どうやら、この言語の仕様はPythonをモチーフにしているようです。なので、学習コスト自体は低めです。私は、勉強も兼ねてGDCsriptで作業をして進めました。
争いの元になるので、どの言語がいいとか、構文がいいとかは明言しませんが、GDScriptとGodotの親和性は高いので、できればGDScriptを使うのが良いです。
3.入力設定
最近のゲームは、様々な入力デバイスに対応することが求められています。Unityでは、最近(?)、InputSystemが導入されたことで、手早く設定ができるようになりました。では、当のGodotはどうなのかというと、
「インプットマップ」から、一瞬で登録ができます。ここに関しては、明確に長所だと感じました。違うデバイス同士、複数入力も大丈夫です。
キーボード操作に執着せず、誰でも遊びやすいようにする上でも、重要な点ではあります。
4.その他
他にも、画面サイズの設定や、プロジェクトの出力、2Dと3Dの扱い方など、他のゲームエンジンとは違う点が幾つかありました。逆に、全体的なUIとかはUnityに似ていると思います。
総じて言えることとして、Godotは「本当に必要な機能を扱いやすくしてくれている」と思いました。悪く言えば、機能が少ないとはなりますが。
まとめ
Godotを使ってみて、他のゲームエンジンと似通っている所もあれば、全然違う所もあると感じました。最初にも言った通り、Godotの最大の強みは「軽いこと」だと思っています。どこでも動かせるのは偉いです。オープンソースなので、権利的にも軽いですね。ただ、他のゲームエンジンと比べると、情報が少なかったり、プラグインが足りなかったり、知名度が微妙だったり、どうしても回避できない弱点も多いです。といっても、便利なツールであることは間違いないので、興味が湧いた人は、一回触ってみることをオススメします。
余談
Godot、最近UnityRoomで公開できるようになりました。試しに作ってみたゲームがあるので、リンクを貼っておきます(何か問題あったら消します)。
https://unityroom.com/games/uraomoteshooter
記事の内容は逐次更新予定です。





