Godot 免费跨平台游戏引擎 (四、脚本GDScript)
官方文档已有介绍如何通过源码编译为Godot运行程序 http://i.scwy.net/godot/zh_CN/latest/development/compiling/index.html
我是通过Ubuntu进行编译的,首先使用了19.10系统,编译出现较多问题,也或许源代码有关(源代码是之前从何而来,已不得而知)。然后使用了16.04版本进行编译,过程就比较顺利了。
本文主要是作记录,且记录并不完全,尚有部份问题没有解决,后续补充。
为什么要自己编译?
之前看到有网友做了一个Win版的中文Godot,界面中及帮助文档基本都为中文。而Linux版却没有,我的工作环境是Ubuntu。毕竟英文能还是不够,所以…
编译工作
-
虚拟机安装Ubuntu16.04
-
安装一些依赖 sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm
-
还有一些问题:
-
编译时,说缺少xxxxx,先安装这个 subo apt install mingw-w64
-
缺少freetype2,安装 libfreetype6-dev,即 sudo apt install libfreetype6-dev
-
sudo apt install libssl-dev
-
-
Godot使用 SCons 来构建。这个是什么东东暂时没有管,官方比较推崇。
命令 scons platform=list 可列出可编译的平台,Ubuntu选择X11。
命令 scons platform=x11 编译Linux平台,其实不用参数它也会自动选择。
若想多核心同时编译,可以用命令 scons platform=x11 -j 4
编译后的可执行文件274MB,经过UPX压缩到了98MB。这样就差不多了,至于什么release_debug、release、debug,暂时不用了。
试了试编译Windows下的程序,没成功。暂时也用不着,有机会再试。
汉化相关
基本这样就编译成功了。运行和官方的差不多,选择zh_CN后,界面中依然大部份的英文。
-
帮助文档在源码 doc/classes 目录下,将xml分别翻译后编译,即可在IDE中看到中文帮助文档。
-
至于界面中的文字要如何汉化,还不得其法。看起来是 editor/translations 中的po文件。例如 zh_CN.po 就是对应的中文,但试了一下没成功。不过在修改后的编译却是比较简单,不需要完全重来。
#: editor/animation_bezier_editor.cpp
msgid "Free"
msgstr "自由"
#: editor/animation_bezier_editor.cpp editor/editor_profiler.cpp
msgid "Time:"
msgstr "时间:"
看起来第一行是指翻译的哪个源文件,msgid指翻译的词,msgstr指译文。
源文件有 core 目录下的,editor 目录下的,以及 modules、scene 目录。应该是指的核心代码,编辑器代码,模块代码。
另外还有部份没有指向源文件,只有源词与译文部份。似乎是指编译器界面本身的翻译。
官方解释在这里:http://i.scwy.net/godot/zh_CN/latest/tutorials/i18n/localization_using_gettext.html
git上最新版本已经要求更新的编译环境了
- 安装更新的gcc
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get gcc-9
不过遗憾的是,我即使安装了7和9,它依然提示我版太低。看起来是哪个环境变量不对的样子。
- 安装更新的scons
安装Ubuntu19.10系统,下载Godoto3.2.1版源码,直接安装信赖即正常编译,还是很简单了。
中途遇到一个ld中断错误,扩大内存(原来设置的2G,看来内存小了不行)后就没问题了。
拉了git当前版本,scons告诉我需要python3.7或者更高,当前用的是2.7。尝试改了链接,直接运行python也提示为3.7了,但scons就是不认帐。最终手工安装scons3.1.2版本,指定它安装的路径运行scons(即用最新安装这个版本),现在正在编译中。
编译时间比较久,编译完成后upx,150MB大小的godot4版本。想必编译为发布版本,再upx应该小于100MB。
可能由于虚拟机资源的问题,虚拟机本身运行不了,在主机上运行成功。
试运行了一下,有些功能还运行不了,3的场景载入也出现错误。等待…