Windows用のコンパイル

必要条件

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

  • Visual Studio Community, version 2017 or later. VS 2019 is recommended. Make sure to read "Installing Visual 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.
  • 任意 - 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の使い方については、ビルドシステムの説明を参照してください。

Setting up Python

First you need to install Python 3.5 or newer. Make sure to enable the option to add Python to the PATH in the Python installer. The SCons installer should then detect and use the existing Python installation.

SConsの設定

To install SCons open the command prompt and run the following command.

python -m pip install scons

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

In general, it is OK to have at least as many threads compiling Godot as you have cores in your CPU, if not one or two more. Feel free to add the -j option to any SCons command you see below.

注釈

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

If all goes well, the resulting binary executable will be placed in C:\godot\bin\ with the name godot.windows.tools.32.exe or godot.windows.tools.64.exe. By default, SCons will build a binary matching your CPU architecture, but this can be overridden using bits=64 or bits=32.

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

注釈

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

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

注釈

If you want to use separate editor settings for your own Godot builds and official releases, you can enable 自己完結型モード by creating a file called ._sc_ or _sc_ in the bin/ folder.

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のクロスコンパイル

If you are a Linux or macOS user, you need to install MinGW-w64, which typically comes in 32-bit and 64-bit variants. The package names may differ based on your distribution, here are some known ones:

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-"

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

${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\ ディレクトリに出力されたファイルを指定するだけです。こうすれば、次にビルドした時も、自動的にカスタム テンプレートを参照するようになります。