【Godot】エンジンをデバッグビルドしてみよう

Godot Engine Advent Calendar 2022 3日目の記事になります。

はじめに

Godot Engineはオープンソースで開発されているため、GitHubに行けばソースコードにアクセスし放題です。 そこでソースコードを眺めているのも楽しいですが、ちょっといじってみたいと思うときもあると思います。

例えば次のような理由です。

  • Godot Engineのお気持ちをもっと知りたい
  • Godot Engineのバグを調査したい
  • Godot Engineの開発に貢献したい

これらを行うには、エンジンをビルドしてデバッグ実行できるようにする必要がありますね。

本記事はGodot Engineのデバッグビルドをして、デバッグ実行するところまで紹介したいと思います。

基本的には公式ドキュメントに書かれています。より詳しく知りたい時はそちらを参照してもらえればと思います。

環境準備

今回はWindowsVisual Studioを使うことを前提とします。

エンジンをビルドするには次のソフトのインストールが必要です。

インストール済みの場合はスキップしてください。

ある程度の経験者向けのザックリ解説になっているため、不明点などありましたら逐次ググって対処するようお願いします。

Gitのインストール

GitはGitHubからソースコードを入手するために使用します。 今回はCUIで説明するため、Git for Windowsをインストールします。 GUIツールが良ければ、ForkやSourceTreeでも構いません。

Visual Studioのインストール

もし仕事でしたら会社にVisual Studio Professionalを用意してもらいましょう。

個人なら無料でVisual Studio Communityをインストールして使うことができます。

https://visualstudio.microsoft.com/ja/vs/

Pythonのインストール

Godot EngineのビルドするためにSConsと呼ばれるビルドツールが必要です。 SConsをインストールする前にPythonをインストールする必要があります。

https://www.python.org

インストーラでインストールすると、pythonへのPATHがセットされて、どこでもpythonコマンドが使えるようになると思います。

python
Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Sconsのインストール

Pythonをインストールすると付いてくるpipコマンドを使用してSConsをインストールします。

コマンドプロンプトでインストールを行います。

pip install scons

上手くいくと次のメッセージが出力されると思います。

Collecting scons
  Using cached SCons-4.4.0-py3-none-any.whl (4.2 MB)
Requirement already satisfied: setuptools in c:\devel\python\lib\site-packages (from scons) (65.5.0)
Installing collected packages: scons
Successfully installed scons-4.4.0

Godotのビルド

ビルド手順はGodot3系とGodot4系で微妙に違うため、それぞれ解説したいと思います。

Godot3編

ソースコードを入手する

現在Godot3系は3.xブランチで開発されています。 そのままgit cloneするとGodot4系のmasterブランチが取れてしまいます。(後でブランチを切り替えればいい話ではありますが…)

そこで今回は、3.xブランチを指定してcloneします。

git clone https://github.com/godotengine/godot.git -b 3.x

また、3.5ブランチ、3.4ブランチなども存在しているので、既存のエンジンバージョンに合わせてソースコードを取得することもできます。

エンジンをデバッグビルドする

git cloneして作成されたgodotフォルダに移動してsconsコマンドでビルドします。

cd godot
scons platform=windows vsproj=yes

vsproj=yesを追加するとVisual Studioプロジェクトファイルを作ってくれるため、ぜひ付けましょう。

上手くいけばgodot/binフォルダ内にgodot.windows.tools.64.exeが出力されていると思います。

Godot4編

ソースコードを入手する

現在Godot4系はmasterブランチで開発されています。 そのままgit cloneすればOKです。

git clone https://github.com/godotengine/godot.git

エンジンをデバッグビルドする

Godot3版と違うところは、デバッグビルドすることを示すdev_build=yesを付けることです。

cd godot
scons platform=windows vsproj=yes dev_build=yes

vsproj=yesを追加するとVisual Studioプロジェクトファイルを作ってくれるため、ぜひ付けましょう。

上手くいけばgodot/binフォルダ内にgodot.windows.editor.dev.x86_64.exeが出力されていると思います。

Godotのデバッグ実行

vsproj=yesを付けてsconsすると、godot.slnが作成されています。

こちらをVisual Studioで開いてみましょう。

この状態でデバッグ実行することはできますが、プロジェクトランチャーが起動するだけで、プロジェクトを開いているときのエディタやゲーム実行時のデバッグはできません。(プロジェクトを開いたりゲーム実行するのは別プロセスになるため)

それらを行うにはデバッグオプションのコマンド引数を設定する必要があります。

まずソリューションエクスプローラのgodotを右クリック → プロパティ で次のダイアログが開きます。 コマンド引数のところを変更します。

エディタをデバッグ実行する

プロジェクトを開いたエディタをデバッグするには、次のコマンド引数を設定します。

-e D:\MyProj\project.godot

エディタがデバッグ実行できています。

Visual Studioからブレークポイントを貼ってブレークできることを確認します。

ゲームをデバッグ実行する

プロジェクトのゲーム実行しながらエンジンをデバッグするには、次のコマンド引数を設定します。

--path D:\MyProj

project.godotは付けません。

メインシーンが実行されます。

任意のシーン実行したい時は、次のコマンド引数を指定します。

--path D:\MyProj scene.tscn

その他オプションを使うときは、こちらを参照してください。

まとめ

今回は次の内容を紹介しました。

  • Godot 3.xとGodot 4.xのビルド
  • プロジェクトを開いたエディタのデバッグ
  • ゲーム実行時のエンジンのデバッグ

Godot Engineはオープンソースで活発に開発が進められている、現在勢いのあるゲームエンジンです。

比較的簡単にソースコードを見ていじれる。手元で動かして試せるというエンジンです。

バグを直してGitHubでPull Requestすることもできれば、機能追加して提案することもできます。 もし開発者にMergeされればそれはエンジンの一部になり、あなたはコントリビュータの一員になります。

そんな一歩に繋がる?かもしれない記事でした。