Files
qingshuige-hugo/content/blog/浅论-godot:成也社区败也社区.md
xianliticn fb217bf343
All checks were successful
Build and Deploy Qingshuige / build-deploy (push) Successful in 46s
Create 文章 “浅论-godot:成也社区败也社区”
2026-02-24 22:13:24 +08:00

3.5 KiB
Raw Permalink Blame History

title, date, author
title date author
浅论 Godot成也社区败也社区 2024-05-21T01:02:00.000+08:00 线粒体

现在做游戏用的引擎也是比较多了像Unity和虚幻这类都是常用的网上有大把大把的资料。最近正在准备开发游戏自然要选一选引擎。过去我常用Unity这几年不用手生了想着不如趁机用点新的。于是就发现了开源游戏引擎Godot。有中文文档支持C#,跨全平台,还免费,实在是好。于是兴致勃勃下载,新建项目一条龙。然而体验了一会,感觉还是不尽人意。

支持C#,但没完全支持

Godot用的是自己开发的脚本语言叫GDScript跟Python和Lua差不多不过针对游戏开发专门优化过。这个GDScript和引擎的集成度是比较高的毕竟是官方首推的编程语言。不过我对C#很熟悉所以并没想着去学GDScript而是直接使用C#编写脚本。

然而这时候问题就来了GDScript直接可以在引擎编辑器内编辑代码但C#只能在外部编辑器如VSCode内编辑。这还没什么问题毕竟Unity也是用外部编辑器的。但是Godot对VSCode几乎没任何集成。比如说Godot有个概念叫“信号”就像C#里的事件一样一个游戏对象可以监听另一个游戏对象的信号。当使用GDScript监听的时候可以直接生成监听用的函数而且有内置GUI管理这些函数。然而换上C#,完全不能自动生成,你得自己把方法名和参数一个一个敲上去,还必须和信号源上设置的一模一样,相当于没有任何自动代码补全。这种情况下,出错的概率可想而知。

所以实际上Godot最好的甚至唯一适合的开发语言是GDScript其他语言的体验简直折磨。

版本控制相当简陋

Visual Studio现在集成Git体验很不错Unity用Plastic SCM专业性是到位的。然而Godot没有内置版本控制系统只有几个版本控制的实现插件供用户下载。

我下载了GitPlugin即Git的版本控制插件。易用性实在是感人就像搭积木一样什么都得自己配置。不像Visual Studio直接登录GitHub一键上传Unity的Plastic SCM也是一键上传。这GitPlugin光是连接仓库就花了我半小时什么SSH公钥私钥、GitHub的token之类的东西简直要命。好不容易配置好又特别容易出错。而且最搞笑的是这个插件的推送和拉取都是阻塞的也就是说推送或拉取的时候你的编辑器是无响应的只有成功后才能恢复响应但你并不知道超时时间是多少有时候无响应一分多钟还不好只能强制关闭整个编辑器。

拼阳寿的Git我是向来不用的。

总评

Godot主要的优点就在于灵活、轻量就一个exe可执行文件装就装删就删没包袱。而且用的库基本都是开源的不用担心产权问题。构建也利索没有那么多杂七杂八的事。

社区的东西虽然灵活但易用性上毕竟不如商业软件。我对Godot总体的感觉就是专门提供给游戏开发爱好者或者小工作室用的引擎有那个时间去折腾不追求太多稳健性。这就像Mac和Windows、iOS和Android一样你很难说哪个好哪个坏只能说适合不同的人群。

我最终还是选择复习我的老本行Unity社区引擎等我有空再折腾吧。