为Windows平台编译Godot
注:以下未明确指明适用版本的都是针对Godot 3.5分支。
用Visual Studio编译
- 安装Visual Studio
- 安装Python
- 安装SCons
py -m pip install --upgrade pip scons
- 安装Pywin32 Python Extension
注:从Scons 4.1.0起无需安装。
py -m pip install --upgrade pywin32
- 编译
假设Python安装在目录D:\Python3,Godot代码库在目录D:\prj\godotengine\godot。
如果是在x64平台上编译x64游戏,那么启动"x64 Native Tools Command Prompt for VS"并执行命令:
set PATH="D:\Python3";"D:\Python3\Scripts";%PATH%
cd /d D:\prj\godotengine\godot
scons -h
scons -H
:: scons -c 再带入之前版本所使用的参数执行清理
:: WARNING: MSVC LTO doesn't work reliably for Godot.
:: Set `debug_symbols=no use_lto=no` instead of the `production=yes` option.
:: MinGW w/ GCC/Clang is better for production.
:: 编译发布版本
scons p=windows tools=no target=release use_lto=no deprecated=no vsproj=no debug_symbols=no
:: 编译导出模板(及项目管理器和编辑器)
scons p=windows tools=yes target=release_debug use_lto=no deprecated=no vsproj=yes debug_symbols=no
将在目录bin下分别生成可执行文件:
godot.windows.opt.64.exe
godot.windows.opt.tools.64.exe
用MinGW-w64编译
- 启动MSYS2 MinGW 64-bit shell(D:\msys64\msys2_shell.cmd -mingw64)
- 准备编译环境
pacman -S --needed mingw-w64-x86_64-python-pip mingw-w64-x86_64-gcc make
pip install --upgrade scons
- 编译
cd /d/prj/godotengine/godot
# scons -c 再带入之前版本所使用的参数执行清理
# 编译发布版本
scons p=windows tools=no target=release production=yes use_lto=yes deprecated=no debug_symbols=no use_mingw=yes
strip bin/godot.windows.opt.64.exe
# 编译项目管理器和编辑器
scons p=windows tools=yes target=release_debug use_lto=yes deprecated=no debug_symbols=no use_mingw=yes
输出的可执行文件名和用Visual Studio编译的相同。
- 例子
一个实际产品的例子(裁剪掉不需要的模块):
scons p=windows tools=no target=release production=yes use_lto=yes deprecated=no debug_symbols=no use_mingw=yes minizip=no disable_advanced_gui=yes module_bmp_enabled=no module_bullet_enabled=no module_camera_enabled=no module_csg_enabled=no module_cvtt_enabled=no module_dds_enabled=no module_denoise_enabled=no module_enet_enabled=no module_etc_enabled=no module_fbx_enabled=no module_gltf_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_jpg_enabled=no module_jsonrpc_enabled=no module_lightmapper_cpu_enabled=no module_mbedtls_enabled=no module_minimp3_enabled=no module_mobile_vr_enabled=no module_mono_enabled=no module_ogg_enabled=no module_opensimplex_enabled=no module_opus_enabled=no module_pvr_enabled=no module_raycast_enabled=no module_regex_enabled=no module_squish_enabled=no module_stb_vorbis_enabled=no module_svg_enabled=no module_tga_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_upnp_enabled=no module_vhacd_enabled=no module_visual_script_enabled=no module_vorbis_enabled=no module_webm_enabled=no module_webrtc_enabled=no module_websocket_enabled=no module_webxr_enabled=no module_xatlas_unwrap_enabled=no builtin_bullet=no builtin_certs=no builtin_embree=no builtin_enet=no builtin_libogg=no builtin_libtheora=no builtin_libvorbis=no builtin_libvpx=no builtin_wslay=no builtin_mbedtls=no builtin_miniupnpc=no builtin_opus=no builtin_pcre2=no builtin_pcre2_with_jit=no builtin_squish=no builtin_xatlas=no
以下模块参数取缺省值(=yes):
module_freetype_enabled
module_gdnative_enabled
module_gdscript_enabled
module_navigation_enabled
module_webp_enabled
builtin_freetype
builtin_libpng
builtin_libwebp
builtin_recast
builtin_rvo2
builtin_zlib
builtin_zstd
- 编译4.0分支
对于4.0分支:
cd /d/prj/godotengine/godot
# 编译编辑器
scons arch=x86_64 lto=auto deprecated=no use_mingw=yes
# 编译发布版本
scons target=template_release arch=x86_64 lto=auto production=yes deprecated=no use_mingw=yes
strip bin/godot.windows.template_release.x86_64.exe
将在目录bin下分别生成可执行文件:
godot.windows.editor.x86_64.exe
godot.windows.editor.x86_64.console.exe
godot.windows.template_release.x86_64.exe
godot.windows.template_release.x86_64.console.exe
- 编译godot-cpp(4.0分支)
假设godot-cpp代码库在目录D:\prj\godotengine\godot-cpp。
对于4.0分支4.0.1-stable版本,需应用#1078补丁。
然后执行命令:
cd /d/prj/godotengine/godot-cpp
# 编译开发版本
scons target=editor gdextension_dir=gdextension custom_api_file=gdextension/extension_api.json use_mingw=yes arch=x86_64 debug_symbols=no
# 编译发布版本
scons target=template_release gdextension_dir=gdextension custom_api_file=gdextension/extension_api.json use_mingw=yes arch=x86_64 debug_symbols=no
将在目录bin下分别生成静态库文件:
libgodot-cpp.windows.editor.x86_64.a
libgodot-cpp.windows.template_release.x86_64.a
为Android平台编译Godot
- 安装Python
- 安装SCons
- 安装Android Studio
- 下载Gradle
- 修改distributionUrl
修改D:\prj\godotengine\godot\platform\android\java\gradle\wrapper\gradle-wrapper.properties,将distributionUrl指向已下载的gradle包,例如:
distributionUrl=file:///D:/android/gradle/gradle-8.0.2-all.zip
- 一些软件版本号在D:\prj\godotengine\godot\platform\android\java\app\config.gradle中指定
- 编译
假设Android Studio安装在目录“D:\android\Android Studio”;Android SDK安装在目录D:\android\android-sdk。
在命令提示符窗口执行:
set ANDROID_SDK_ROOT=D:\android\android-sdk
set JAVA_HOME=D:\android\Android Studio\jbr\
cd /d D:\prj\godotengine\godot
:: scons -c 再带入之前版本所使用的参数执行清理(或git clean -fixd)
scons p=android tools=no target=release production=yes use_lto=yes deprecated=no debug_symbols=no android_arch=arm64v8
cd platform\android\java
gradlew generateGodotTemplates
如果首次编译generateGodotTemplates失败(提示“BUILD FAILED”),可能是因为下载依赖包失败导致,可以多试几次。
将在目录D:\prj\godotengine\godot\bin下生成三个文件:
android_release.apk
android_source.zip
godot-lib.release.aar
另,编译调试用模板:
cd /d D:\prj\godotengine\godot\platform\android\java
gradlew cleanGodotTemplates
cd /d D:\prj\godotengine\godot
:: scons -c 再带入之前版本所使用的参数执行清理(或git clean -fixd)
scons p=android tools=no target=release_debug use_lto=yes deprecated=no debug_symbols=no android_arch=arm64v8
cd platform\android\java
gradlew generateGodotTemplates
将在目录D:\prj\godotengine\godot\bin下生成三个文件:
android_debug.apk
android_source.zip
godot-lib.debug.aar
编译目标可参考D:\prj\godotengine\godot\platform\android\java\build.gradle文件。