【Godot】Godot Engineをソースコードからビルドする方法

この記事では、Godot Engine をソースコードからビルドする方法する方法を解説します。

ソースコードからのビルドする理由は主に以下の3つになると思います

  • 実行ファイル化されていない最新のビルドを取得したい場合
  • エンジンの挙動をカスタマイズ、不具合をローカルで修正する場合
  • アドオン化されていないプラグインを自分でビルドする場合

例えば、SpineのプラグインDragonbonesのプラグイン はアドオン化されていないので、自分でビルドする必要があります。

ビルドシステムの説明

以下のドキュメントに記載されている方法でビルド可能です。

ここを参考に、今回は Windows環境でのビルドを方法を説明します。

Godot Engineのソースコードの取得する

まずは Githubからソースコードを取得します。

Windows用のコンパイル

Windows環境のビルド方法は、以下のドキュメントに記載されています。

https://docs.godotengine.org/ja/stable/development/compiling/compiling_for_windows.html#doc-compiling-for-windows

■必要条件
Windowsでコンパイルするには、次のことが必要です:

* Studio caveats” below or you will have to run/download the installer again.

* MinGW-w64 with GCC can be used as an alternative to Visual Studio. Be sure to install/configure it to use the posix thread model.

* Python 3.5 以降

* SCons 3.0 build system. If using Visual Studio 2019, you need at least SCons 3.1.1.

* Visual Studio Community, version 2017 or later. VS 2019 is recommended. Make sure to read “Installing Visual

Windows用のコンパイル > 必要条件

ここでは、”Visual Studio 2017″ 以降がインストール済みであるとして説明をしていきます。

Scopeをインストールする

Godot Engineは SCon というビルドツールを使用しています。
そのために “Scoop” をインストールします。

https://scoop.sh/

こちらにページによると、PowerShell でインストールするのが良いようです。
ここでは PowerShell でインストールしていきます。

まずは、PowerShell を起動して以下のコマンドを実行します。

Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')

問題なくインストールできれば良いですが、以下のメッセージが表示されてインストールできない場合があります。

PowerShell requires an execution policy in [Unrestricted, RemoteSigned, ByPass] to run Scoop.
For example, to set the execution policy to 'RemoteSigned' please run :
'Set-ExecutionPolicy RemoteSigned -scope CurrentUser'

これは、実行ポリシーが未設定であるためです。

この場合は、以下のコマンドで Scope の実行ポリシーを有効にします。

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

すると以下のメッセージが表示されるので、「Yキー」を押して変更を行います。

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y

インストールが完了したら、以下のコマンドで正常にインストールされているかどうかを確認をします

scoop help

各種ツールのインストール

次に各種ツールをインストールします。
以下のコマンドを実行するとまとめてインストールしてくれます。

scoop install gcc python scons make

Pythonがインストールされていない場合は別途インストールする必要があるみたいですが、私の環境は問題なくこれでビルド環境は作れました。

ビルドの実行

ビルドの実行は、Godot Engineのソースコードのルートフォルダに移動して以下のコマンドを実行します。

scons platform=windows

ビルド完了までは結構時間がかかります。私の環境では 1時間半ほどかかりました。

ビルド完了

以下のメッセージが表示されればビルド完了です。

[Initial build] Linking Static Library ==> core\core.windows.tools.64.lib
[Initial build] Linking Program ==> bin\godot.windows.tools.64.exe
ライブラリ bin\godot.windows.tools.64.lib とオブジェクト bin\godot.windows.tools.64.exp を作成中
[Initial build] Building compilation database compile_commands.json
[Initial build] Building GLES3 GLSL header: "drivers\gles3\shaders\cube_to_dp.glsl.gen.h"
[Initial build] Building GLES3 GLSL header: "drivers\gles3\shaders\effect_blur.glsl.gen.h"
[Initial build] Building GLES3 GLSL header: "drivers\gles3\shaders\tonemap.glsl.gen.h"
[Initial build] progress_finish(["progress_finish"], [])
[Initial build] Building RD_GLSL header: "servers\rendering\renderer_rd\shaders\giprobe_write.glsl.gen.h"
[Initial build] scons: done building targets.
[Time elapsed: 00:40:02.976]
PS C:\Users\syun77\Downloads\godot-master>

exeファイルはルートディレクトリの「bin」フォルダに作られ、実行可能となります。