(原) Godot 免费跨平台游戏引擎(十一、源码编译)

原创文章,请后转载,并注明出处。

Godot 免费跨平台游戏引擎 (一、初见)

Godot 免费跨平台游戏引擎(二、第一个游戏)

Godot 免费跨平台游戏引擎(三、理论是实践的基础)

Godot 免费跨平台游戏引擎 (四、脚本GDScript)

Godot 免费跨平台游戏引擎(五、常用英文)

Godot 免费跨平台游戏引擎(六、一些收集)

Godot 免费跨平台游戏引擎(七、2D)

Godot 免费跨平台游戏引擎(八、网络)

Godot 免费跨平台游戏引擎(九、GUI外观)

Godot 免费跨平台游戏引擎(十、相关资源)

Godot 免费跨平台游戏引擎(十一、源码编译)

Godot 免费跨平台游戏引擎(十二、软件GUI)

Godot简单制作残影效果

Godot ParallaxBackground 视差背景

Godot 使用Light2D实现遮罩效果

码农家的孩子:学字母(Godot改版中)


官方文档已有介绍如何通过源码编译为Godot运行程序 http://i.scwy.net/godot/zh_CN/latest/development/compiling/index.html

我是通过Ubuntu进行编译的,首先使用了19.10系统,编译出现较多问题,也或许源代码有关(源代码是之前从何而来,已不得而知)。然后使用了16.04版本进行编译,过程就比较顺利了。

本文主要是作记录,且记录并不完全,尚有部份问题没有解决,后续补充。

为什么要自己编译?

之前看到有网友做了一个Win版的中文Godot,界面中及帮助文档基本都为中文。而Linux版却没有,我的工作环境是Ubuntu。毕竟英文能还是不够,所以…

编译工作

  1. 虚拟机安装Ubuntu16.04

  2. 源码发布页下载当前版本V3.2.1

  3. 安装一些依赖 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

  4. 还有一些问题:

    1. 编译时,说缺少xxxxx,先安装这个 subo apt install mingw-w64

    2. 缺少freetype2,安装 libfreetype6-dev,即 sudo apt install libfreetype6-dev

    3. sudo apt install libssl-dev

  5. 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后,界面中依然大部份的英文。

  1. 帮助文档在源码 doc/classes 目录下,将xml分别翻译后编译,即可在IDE中看到中文帮助文档。

  2. 至于界面中的文字要如何汉化,还不得其法。看起来是 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上最新版本已经要求更新的编译环境了

  1. 安装更新的gcc
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get gcc-9

不过遗憾的是,我即使安装了7和9,它依然提示我版太低。看起来是哪个环境变量不对的样子。

  1. 安装更新的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的场景载入也出现错误。等待…

相关文章