0.はじめに
この連載は、Godot Engineでのゲーム開発を始めて、簡単なミニゲームを作るまでを、順を追ってたどるものです。
「Godot」は「ゴドー」と読みます。Godot Engineは、クロスプラットフォームで、オープンソース(MITライセンス)のゲームエンジンです。

連載は全6回で、次のように進んでいきます。
- 第1回 Godot Engine のゲーム開発はじめの一歩(今回の記事)
- 第2回 Godot Engine の2Dゲームのサンプルを試そう
- 第3回 Godot Engine で2Dゲームを作ろう1 主人公を出そう
- 第4回 Godot Engine で2Dゲームを作ろう2 迷路をつくろう
- 第5回 Godot Engine で2Dゲームを作ろう3 複数の画面を移動しよう
- 第6回 Godot Engine で2Dゲームを作ろう4 リストダイアログをつくろう
最初の2回は入り口的な内容です。3~5回ではオリジナルのシンプルなゲームを作っていきます。6回目は、Godot Engineの部品を上手く活用していく方法を示します。
それでは、まずは、Godot Engineとは何なのかを見ていきましょう。

1.Godot Engineとは何?
まずは、Godot Engineの公式ページを見てみましょう。

Godot Engineは、アルゼンチン発のゲームエンジンです。2014年に一般公開され、この記事を書いている時点でのバージョンは4.4です。WindowsやMac、Linux、Web、Androidに対応しており、ゲームの開発や実行ができます。
私自身はWindowsで開発をおこなっています。そのため、この連載で掲載するスクリーンショットや動作の説明はWindowsでの内容になります。
Godot Engineはクロスプラットフォームで、オープンソース(MITライセンス)です。オープンソースなのでコードをたどることができます。何かトラブルがあった際には自分で原因を調べることができます。
Godot Engineは、Unityなどのゲームエンジンの仲間です。実際にUnityに似ているところもありますが、違うところもあります。

それでは、Godot Engineの特徴を見ていきましょう。
軽量な実行環境
Godot Engineの開発に必要なのは、Godot_v4.4.1-stable_win64.exe
のような実行ファイル1つです。v4.4.1
のファイルサイズは149MBです。公式ページからダウンロードするだけで、すぐにゲームを開発できます。
このダウンロードしたファイル(開発エディター)自体もGodot Engineでできています。そのためスクリプトを書いて機能を拡張できます。
Godot Engineでは、ゲーム用のデータも軽量です。スクリプトがテキストファイルなのは当然として、画像などを読み込んだ時に作られる設定ファイルも全てテキストファイルです。
自分で設定ファイルをテキストエディタで開くと分かるのですが、iniファイルのようなシンプルな内容です。行ごとに設定が書いてあるためにGitとも相性がよいです。差分のバックアップも簡単におこなえます。
ファイルの合計サイズは、軽いゲームなら数MBや数10MBで済ますこともできます。Unityのようにすぐに数GBに達することはないです。そのため趣味のゲーム開発を手軽におこなえます。
2Dと3Dの分離
2Dゲームの開発者に嬉しいことに、Godot Engineは専用の2Dエンジンを備えています。そのためピクセル単位の操作が簡単におこなえます。
たとえばUnityでは、3Dエンジンで2Dを無理矢理動かしているために、2Dゲームとしてはいびつなところがあります。しかしGodot Engineでは、専用2Dエンジンを搭載しているため、そうしたストレスが解消されています。
3Dゲームの開発者には特にメリットがない部分ですが、2Dゲームの開発が主目的なら、Godot Engineは選択肢に入ってくるでしょう。
GDScriptという専用スクリプト
これはどちらかというとネガティブな特徴です。Godot Engineでは主に、GDScriptという独自のスクリプト言語を使って開発します。
C#など他の言語でも開発可能ですが、あくまでも従属的な位置づけです。この記事を書いている時点では、C#はWebで実行する場合はまだ未対応で、古いバージョン3を利用する必要があります。
GDScriptはPythonに似ているとされていますが、実際に書いてみると細かな部分で異なります。ちょくちょくと書き方が分からない点が出てきて調べることになります。
ただ、基本的にはPythonの書き方が分かっていれば、それほど難しくはありません。Pythonのように型ヒントも書けます。型ヒントは書かなくてもよいです。
文法的には、普段プログラムを書いている人なら、特に違和感なく読み書きできます。そのため細かな文法の説明は飛ばして先に進みます。もし迷うようでしたら、公式のGDScriptのページをチェックするとよいでしょう。
Godot Engineは、メジャーバージョンが3から4に上がるタイミングで破壊的な変更が多く入っています。そのためネットで情報を調べるときは、メジャーバージョンを気にする必要があります。
設計
シンプルなオブジェクト構造を持っています。ノード(クラスやオブジェクトに相当するもの)の入れ子により、全ての部品が構成されています。リストなどの部品も、さまざまな部品を配置したシーンも、全てノードとして別の場所で再利用できます。
たとえばUnityでは、部品として使うには部品用の形式(プレハブ)にします。そうした過程がなく、どんどん開発をおこない、あとで中身をいじることができます。
体感的には、デザイナーよりもプログラマー寄りの設計と感じます。また、チーム開発よりは個人開発に向いている印象があります。
また、各ノード間の連絡は、シグナルを使っておこないます。ゲームの部品はそれぞれ独立しており、シグナルを送ったり受け取ったりすることで協調的に動作します。
ユーザーコードによるメインループがなく、こうした方法でゲームを開発するのは、ゲームエンジンではよく見られる方法です。
ドキュメント
ドキュメントは公式のページにあります。
各言語のページがあり、日本語版もあります。しかしあまり日本語化されていません。必要に応じて英語を読むか、Webブラウザーの翻訳機能を使い、日本語にして読むとよいでしょう。
ドキュメントの全てに目を通す必要はないですが、読んでおいたほうがよいページもあります。目次からそれらを抜粋します。
- 概要
-
入門
- はじめに
- ステップ・バイ・ステップ
- 最初の2Dゲーム
- 最初の3Dゲーム(もし3Dゲームを作るなら)
概要は「はじめに」だけ目を通しておけばよいです。
入門については、この連載で似たようなことを扱います。特に「最初の2Dゲーム」については連載の第2回で詳しく扱います。「最初の3Dゲーム」は、2Dゲームしか作らない場合は目を通さなくてもよいでしょう。
ドキュメントの通りにやればよいはずですが、引っ掛かって先に進むのが難しい部分もあります。また省略も多いです。連載では、そうした部分も含めて丁寧に解説していきます。
入門のあとに続く「マニュアル」や「クラスリファレンス」は、必要に応じて読むとよいです。
マニュアルの中には「GDScript」についての説明もあります。Godot Engine向けの専用言語です。こちらは、プログラムを書き始めた段階で、項目だけでも軽くながめておくとよいです。かなりボリュームがあるので、必要に応じて内容を読むとよいです。
-
マニュアル
- スクリプト