Windows用のコンパイル

必要条件

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

  • バージョン2015以降の Visual Studio Community。VS 2019を推奨。必ず、下記にある『Visual Studioのインストールに関する注意事項』を読んでください。でないと、インストーラーを再実行あるいは再ダウンロードしなければならなくなるでしょう。
  • MinGW-w64上でのGCCも、Visual Studioの代わりに使うことができます。posixスレッドモデルでインストールおよび設定がなされていることを確認してください。
  • Python 3.5以上 (推奨) あるいは Python 2.7以上。
  • SCons ビルドシステム。Visual Studio 2019の場合は、SCons 3.1.1以上が必須です。
  • 任意 - yasm (WebM SIMD最適化のため)

注釈

もし Scoop がインストールされていれば、MinGWや他の依存関係を、次のコマンドで簡単にインストールできます:

scoop install gcc python scons yasm make

注釈

もし MSYS2 がインストールされていれば、MinGWや他の依存関係を、次のコマンドで簡単にインストールできます:

pacman -S mingw-w64-x86_64-python3-pip \
    mingw-w64-x86_64-gcc mingw-w64-x86_64-yasm \
    mingw-w64-i686-python3-pip mingw-w64-i686-gcc \
    mingw-w64-i686-yasm make

For each MSYS2 MinGW subsystem, you should then run
`pip install scons` in its shell.

参考

Godotにおける基本的なSconsの使い方については、ビルドシステムの説明を参照してください。

SConsの設定

始めに、Pythonインストーラーにて、PythonをPATHに含めるオプションを有効にしているか確認してください。そうすれば、SConsインストーラーはインストールされたPythonを検出して使用できるようになるはずです。

PythonとSConsがきちんとインストールされたかどうか確認するには、コマンドプロンプト (cmd.exe) にてpython --versionおよびscons --versionとタイプしてみてください。

上記のコマンドが失敗した場合は、インストール後にPythonを環境変数PATHに含めてから、ふたたび確認してください。そうするには、Pythonインストーラーを再実行して、PythonをPATHに含めるオプションを有効にすればできます。

Visual Studioのインストールに関する注意事項

Visual Studio 2017あるいは2019をインストールする場合は、ワークロードのリストから C++ を有効しなければなりません。

Visual Studio 2015をインストールする場合は、標準ではなくカスタムを選択し、言語から C++ を選んでください。

もし間違ってC++サポート無しでVisual Studioをインストールしてしまったなら、ふたたびインストーラーを実行してください。変更 (Modify)ボタンが表示されるはずです。プログラムの追加と削除 からインストーラーを起動しても、修復オプションしか表示されず、C++ツールはインストールできません。

Godotのソースをダウンロードする

GodotのソースコードはGitHubでホストされています。ダウンロード (クローン) するには、Gitの利用をおすすめします。

ここからのチュートリアルは、ソースコードをC:\godotに置いたとして進めます。

コンパイル

コンパイラの選択

SConsは、インストールされたVisual Studioを自動的に探します。もしVisual Studioがインストールされていなければ、代わりにMinGWが使えるか試します。もし、Visual StudioがインストールされていてもMinGWを使用したいときは、SConsのコマンドラインにuse_mingw=yesを渡してください。

開発版には、MinGWよりも早くGodotバイナリをリンクできるVisual Studioのほうが、通常は好ましいでしょう。しかし、MinGWはリンク時最適化を用いることにより、さらに最適化されたバイナリを出力できるので (下記を参照)、製品版ではより良い選択肢になるでしょう。

SConsの実行

コマンド プロンプトを開き、エンジンのソースコードがあるディレクトリのルートに移動して (cdを使用)、次のように打ちます:

C:\godot> scons platform=windows

ビルド速度を上げるためにCPUスレッド数を指定できます:

C:\godot> scons -j6 platform=windows

通常は、GodotのコンパイルにはCPUのコア数だけスレッドを割り当ててOKです。そこからさらに一つか二つ追加してもいいでしょう。下記にあるSConsコマンドのいずれにも自由に -j オプションを付けてください。

注釈

複数CPUスレッドでコンパイルするとき、pywin32が無いという警告をSConsは出すかもしれません。しかし、これは無視しても大丈夫です。

すべて問題なければ、出力された実行可能なバイナリは godot.windows.tools.32.exe あるいは godot.windows.tools.64.exe の名前で C:\godot\bin\ に置かれます。

注釈

標準では、SConsはあなたのマシンのCPUアーキテクチャに合ったバイナリをビルドしますが、bits=64 あるいは bits=32 でこれを上書きできます。

この実行ファイルにはエンジン全体が含まれていて、単体で起動できます。実行すると、プロジェクト マネージャーが現れます。

注釈

制作に使うGodotをコンパイルするなら、SConsのオプション target=release_debug を追加すれば、より小さくて高速な実行ファイルにすることができます。

GodotをMinGWでコンパイルするなら、SConsのオプション use_lto=yes を追加すれば、さらに小さくて高速なバイナリにすることができます。リンク時最適化には大量のメモリを消費するので、およそ 3GB の使用可能なRAMを必要とします。

Visual Studioまたはその他のIDEでの開発

ほとんどのプロジェクトでは、スクリプトのみを使用するだけで十分ですが、モジュールの作成やエンジンの拡張のためにC++ での開発が必要な場合は、IDEを使用することをお勧めします。

SConsを vsproj=yes パラメータとともに実行すれば、Visual Studioソリューションを生成できます:

scons p=windows vsproj=yes

これでGodotのソースをVisual Studioのソリューションとして開けるようになり、Visual Studioのビルド (Build)ボタンでビルドできます。

ビルド コマンドを編集したいときは、NMAKEシートの "Godot" プロジェクト設定にて行えます。SConsはこれらコマンドの最後に呼び出されます。もし間違えた場合、ほかのビルド設定 (debug, release_debug, release) あるいはアーキテクチャ (Win32/64) からコピーしてください。いずれも同じです。

他のオペレーティングシステムからのWindowsのクロスコンパイル

もしあなたがLinuxまたはmacOSユーザーなら、MinGW-w64 のインストールが必要になります。通常、32ビット版と64ビット版が用意されています。パッケージ名はディストリビューションによって異なる場合がありますが、以下はいくつかの知られている例です:

Arch Linux Install mingw-w64-gcc from the AUR (AURからmingw-w64-gccをインストール)。
Debian / Ubuntu
apt install mingw-w64
Fedora
dnf install mingw64-gcc-c++ mingw64-winpthreads-static \
            mingw32-gcc-c++ mingw32-winpthreads-static
macOS
brew install mingw-w64
Mageia
urpmi mingw64-gcc-c++ mingw64-winpthreads-static \
      mingw32-gcc-c++ mingw32-winpthreads-static

コンパイルする前に、SConsは下記のバイナリが PATH 環境変数にあるかチェックします:

i686-w64-mingw32-gcc
x86_64-w64-mingw32-gcc

もしバイナリが PATH``(たとえば ``/usr/bin)になかった場合、このように環境変数を設定することでビルドシステムに教えられます:

export MINGW32_PREFIX="/path/to/i686-w64-mingw32-"
export MINGW64_PREFIX="/path/to/x86_64-w64-mingw32-"

正しく設定できたか確認するには、下記のシェルを実行することで動くコンパイラが呼ばれるはずです (バージョン表示はシステムにより異なります):

[email protected]:~$ ${MINGW32_PREFIX}gcc --version
i686-w64-mingw32-gcc (GCC) 6.1.0 20160427 (Mageia MinGW 6.1.0-1.mga6)

トラブルシューティング

Ubuntuのいくつかのバージョンでは、標準設定でPOSIXスレッディングが有効になっていないので、クロスコンパイルするとこのバグ (英語) が発生する可能性があります。

下記のとおりにすれば設定を変更できます。64ビットの場合 (それぞれ実行してから、リストにある x86_64-w64-mingw32-gcc-posix および x86_64-w64-mingw32-g++-posix を選択する):

sudo update-alternatives --config x86_64-w64-mingw32-gcc
<choose x86_64-w64-mingw32-gcc-posix from the list>
sudo update-alternatives --config x86_64-w64-mingw32-g++
<choose x86_64-w64-mingw32-g++-posix from the list>

そして32ビットの場合 (それぞれ実行してから、リストにある i686-w64-mingw32-gcc-posix および i686-w64-mingw32-g++-posix を選択する):

sudo update-alternatives --config i686-w64-mingw32-gcc
<choose i686-w64-mingw32-gcc-posix from the list>
sudo update-alternatives --config i686-w64-mingw32-g++
<choose i686-w64-mingw32-g++-posix from the list>

Windowsエクスポートテンプレートの作成

Windowsのエクスポート テンプレートは、Godotをエディタ無しでコンパイルすることで作成します。次のフラグを使用してください:

C:\godot> scons platform=windows tools=no target=release_debug bits=32
C:\godot> scons platform=windows tools=no target=release bits=32
C:\godot> scons platform=windows tools=no target=release_debug bits=64
C:\godot> scons platform=windows tools=no target=release bits=64

もし標準のエクスポート テンプレートを置き換えるつもりであるなら、それらを下記の場所にコピーしてください。<version> の部分はバージョン識別子で置き換えます (3.1.1.stable3.2.dev のように):

%USERPROFILE%\AppData\Roaming\Godot\templates\<version>\

名前は次のようにします:

windows_32_debug.exe
windows_32_release.exe
windows_64_debug.exe
windows_64_release.exe

一方、もしカスタム モジュールやカスタム エンジンコードを使用しているなら、バイナリをカスタムのエクスポート テンプレートとして指定することもできます。

../../_images/wintemplates.png

この場合はコピーする必要はなく、Godotのソースフォルダ内にある bin\ ディレクトリに出力されたファイルを指定するだけです。こうすれば、次にビルドした時も、自動的にカスタム テンプレートを参照するようになります。