Godot
![本页使用了标题或全文手工转换](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此条目的语调或风格或许不合百科全书。 (2019年5月22日) |
![]() | |
开发者 | Juan Linietsky、Ariel Manzur、Rémi Verschelde及使用者社群 |
---|---|
首次发布 | 2014年1月14日[1] |
当前版本 | |
源代码库 | github |
编程语言 | GDScript、VisualScript、C++、C# |
操作系统 | Windows、macOS、Linux、Android |
平台 | Windows、macOS、Linux、BSD、Haiku、iOS、Android、HTML5、WebAssembly、Xbox One、通用Windows平台 |
类型 | 游戏引擎 |
许可协议 | MIT许可证 |
网站 | godotengine |
Godot是一款多功能、跨平台的2D与3D开源游戏引擎。可运行于Windows、macOS、Linux等多种操作系统。而其创建的游戏可运行于PC、Android、iOS、HTML5等平台。
特性
[编辑]Godot在MIT许可证下完全自由开源,且受到软体自由保护组织的支持。改编过的游戏乃至引擎的每一行代码,都属于用户自己所有。Godot的开发是完全独立且由社区驱动的,允许使用者按照自己的期望去雕塑他们的引擎。
引擎的架构是围绕“节点”树设计的。节点组织在“场景”中,场景可以复用、实例化、继承。包括脚本和图形资产在内的所有游戏资源都是作为文件系统中的文件保存的,不依赖于数据库,可以方便使用版本控制的开发团队进行协作。
支持的平台
[编辑]Godot支持进行多平台部署,能够针对不同的平台指定不同的纹理压缩方法和分辨率等设置。官方网站上仅提供适用于编辑器平台的二进制文件,导出到其他平台需要通过编辑器进行。
用于开发游戏的Godot编辑器支持如下平台:
- Linux、macOS、Windows等桌面平台。通过官网、Steam、Itch.io分发。支持BSD,但必须手动编译。
- HTML5平台,提供有Web编辑器[1]。 (页面存档备份,存于互联网档案馆)[4]
- Android手机和平板(实验性质,Godot 3.5起提供)。
使用Godot制作的游戏能够在更多的平台上运行。截止到3.5.1,除了编辑器所支持的平台外,还支持以下平台:
- 移动平台iOS。
- 桌面平台通用Windows平台。
- 虚拟/增强现实平台HTC Vive、Valve Index、Oculus Rift、Oculus Go、Oculus Quest,以及微软MR头戴式设备、苹果的ARKit等。
虽然Godot引擎能够在主机平台运行,但Godot无法提供官方支持。因为Godot是开源项目,无法获得公司授权,也无法将主机平台所需的相关代码按照开源授权发布。可以使用第三方公司的主机平台的移植服务将Godot游戏导出到主机平台。
脚本
[编辑]Godot支持使用不同的编程语言开发游戏,比如Godot自己的GDScript语言、C#、C++等。引擎还提供了GDExtension接口(3.x版本时期为GDNative),可用于创建其他语言的绑定。官方提供的C、C++支持就是通过GDExtension实现的。社区支持的语言包括Rust、Nim、JavaScript、Haskell、Clojure、Swift、D。
GDScript
[编辑]编程范型 | 面向对象 |
---|---|
实作者 | Godot社区 |
当前版本 | |
型态系统 | 动态 |
操作系统 | 跨平台 |
文件扩展名 | .gd |
网站 | docs.godotengine.org |
启发语言 | |
C, C++, Python |
Godot内置的GDScript脚本语言是一种高级动态类型编程语言,语法与Python类似。与Python不同,GDScript是针对Godot的场景架构设计的,一个文件就是一个类,并且可以为变量限定类型。
开发GDScript之前,Godot的开发者尝试使用过Lua、Python、Squirrel等第三方脚本语言,但最终为了优化和编辑器集成选择使用自定义的语言。
简单的Hello World程序如下:
func _ready():
print("Hello World")
而更为复杂的,用于生成斐波那契数列的程序可以写为:
func _ready():
var nterms = 5
print("Fibonacci sequence:")
for i in range(nterms):
print(fibonacci(i))
func fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n - 1) + fibonacci(n - 2)
渲染
[编辑]Godot的图形引擎在所有平台上均使用OpenGL或OpenGL ES。正在开发的Godot 4中将加入Vulkan支持,可以通过MoltenVK支持Metal。
着色器语言使用的是一种自定义的语言,与GLSL类似。着色器可用于材质和渲染。
Godot的2D图形引擎与3D图形引擎是独立的。可以使用“视口节点(Viewport node)”混合2D和3D内容。
其他特性
[编辑]Godot拥有强大的动画系统,可以通过可视化的方式实现骨骼动画、混合、动画树、实时过场动画。游戏实体上的几乎所有变量都能够进行动画。
其他特性包括:
历史
[编辑]Godot最初于2007年由Juan Linietsky(reduz)和Ariel Manzur(punto)开发[5][6]。Linietsky在一次演讲中表示Godot的名称来源于萨缪尔·贝克特的戏剧《等待戈多》,代表向引擎中不断加入新功能的愿望,可以让引擎无限接近全能的状态[7]。2014年2月,Godot在GitHub上开源,使用MIT协议[8]。
2014年12月15日,Godot迎来了首个稳定版本1.0,加入了光线映射、导航网格支持、以及许多着色器[9]。
2015年5月21日,1.1版本发布,重写了2D引擎,完善了代码编辑器的自动补全功能和Blender Collada导出器,加入了可视化着色器编辑器、全新的操作系统窗口及屏幕管理API、全新的2D导航多边形支持、以及暗色主题。[10]重写后的2D引擎支持着色器、材质、各节点独立的Z排序、灯光、基于多边形遮挡的阴影、法线映射、以及距离场字体。2015年11月4日,Godot加入了软件自由保护组织[11]。
2020年1月29日,3.2版本发布,大幅优化了文档以及对C#和glTF 2.0的支持。与此同时,开发组决定正式开始投入4.0版本的开发,3.2版本将作为长期支持版本维护[12]。
由于越来越多4.0版本的功能被移植回3.2开发分支,远远超出了3.2.X版本仅作维护、不添加新功能的意图,开发组于2021年3月17日决定将长期支持版本从3.2改为3.X[13]。原本正处于RC状态的预览版3.2.4 RC 5在后续发布时也随之将版本号改成了3.3 RC 6。
2022年11月1日,Godot建立了自己的基金会,离开了软件自由保护组织[14][15]。
2023年3月1日,在经历了许多beta版本和问题修复后,Godot 4正式发布。这是一次主版本的更新,重写了渲染系统,加入了对Vulkan图形API的支持,提升了GDScript的性能和稳定性,加强了物理和动画系统,还加入了很多其他功能和问题修复。
发布历史
[编辑]旧版本,仍被支援
当前版本
最新预览版本
未来版本
版本 | 发布日期[16] | 备注 | 最新补丁发布 |
---|---|---|---|
1.0 | 2014年12月 | 首个稳定版本 | 1.0 |
1.1 | 2015年5月 | 优化了代码编辑器的自动补全功能,加入了可视化着色器编辑器和2D导航多边形支持,重写了2D引擎。 | 1.1 |
2.0 | 2016年2月 | 更新了UI,增强了调试器 | 2.0.4.1 |
2.1 | 2016年7月 | 加入了素材数据库、性能分析器、以及插件API。 | 2.1.6 |
3.0 | 2018年1月 | 加入了PBR渲染器以及对Mono(C#)的支持。使用Bullet作为默认物理引擎。 | 3.0.6 |
3.1 | 2019年3月 | 为GDScript加入了静态类型支持及脚本类系统,并且加入了OpenGL ES 2.0渲染器。 | 3.1.2 |
3.2 | 2020年1月 | 支持glTF 2.0文件,加入了OpenGL ES 2.0 批量渲染、iOS的C#支持,优化了大量文档。 | 3.2.3 |
3.3 | 2021年4月 | 加入了对ARM macOS、Android AAB、MP3、FBX、WebXR的支持,并且开始提供网页版编辑器。 | 3.3.4 |
3.4 | 2021年11月 | 重写了主题编辑器,优化了ACES色调映射、加入了对PWA、物理输入、glTF 2.0导出的支持。 | 3.4.5 |
3.5 | 2022年8月 | 加入了Android编辑器、着色器异步编译、物理插值、材质覆盖层,改进了导航系统。 | 3.5.2 |
3.6 | 未定[17] | Godot 3.x的下一个次版本更新,为LTS版本。 | 3.6 beta 4[18] |
4.0 | 2023年3月 | 支持Vulkan图形API及最新版Mono。加入基于SDF的全局光照,以及很多编辑器修改和性能提升。 | 4.0.4 |
4.1 | 2023年7月 | 新增实验性的场景多执行绪功能、编辑器强化、和C#性能提升[19] | 4.1.4[20]。 |
4.2 | 2023年11月 | 重新设计动画工具和粒子系统、新增GDExtension功能、改善汇入管线、支援FSR 2.2[21]。 | 4.2.2[20] |
4.3 | 2024年8月15日 | 透过无环图实现GPU同步[22]。 | 4.3.beta1 |
游戏作品
[编辑]- RPG in a Box (2019)
- Brotato (2022)
- Lumencraft (2022)
- Dome Keeper (2022)
- HAYAI (2022)
- Swords and Sandals Immortals (2022)
- Endoparasitic (2022)
- 魔导书幸存者 (2022)
- 文字游戏 (2022)
- 租户赌财运 (2023)
- 周五放克夜 (VR)
- Cruelty Squad (页面存档备份,存于互联网档案馆)
- Kingdoms of the Dump (页面存档备份,存于互联网档案馆)
- Gawr Gura: Quest for Bread
- 刺猬索尼克 缤纷色彩(采用部分引擎原始码)
另见
[编辑]参考资料
[编辑]- ^ Linietsky, Juan. Godot Engine - First public release!. Godot Engine. 2014-01-14 [2019-07-01]. (原始内容存档于2019-07-01).
- ^ 2.0 2.1 https://godotengine.org/article/maintenance-release-godot-3-5-3/.
- ^ 3.0 3.1 Godot 4.3, a shared effort.
- ^ Godot Engine Web Editor. Godot Engine Web Editor. [2023-11-05]. (原始内容存档于2023-10-16) (英语).
- ^ StraToN. SteamLUG Cast. [18 June 2016]. (原始内容存档于2018-06-12).
- ^ reduz. Godot history in images!. [18 June 2016]. (原始内容存档于2021-05-15).
- ^ Juan Linietsky presentation of Godot at RMLL 2015 in Beauvais, France. 7 July 2015 [2021-03-02]. (原始内容存档于2015-10-05).
- ^ liamdawe. Godot Game Engine Is Now Open Source. 14 February 2014 [2021-03-02]. (原始内容存档于2020-06-10).
- ^ Linietsky, Juan. Godot Engine Reaches 1.0, Releases First Stable. Godot Engine. 2014-12-15 [2019-07-01]. (原始内容存档于2019-07-01).
- ^ Linietsky, Juan. Godot 1.1 Out!!. Godot Engine. 2015-05-21 [2019-07-01]. (原始内容存档于2019-07-01).
- ^ Godot Game Engine is Conservancy's Newest Member Project. [13 November 2015]. (原始内容存档于2019-09-18).
- ^ Verschelde, Rémi. Here comes Godot 3.2, with quality as priority. Godot Engine. 2020-01-29 [2021-03-22]. (原始内容存档于2021-04-22).
- ^ Verschelde, Rémi. Versioning change for Godot 3.x. Godot Engine. 2020-03-17 [2021-03-22]. (原始内容存档于2021-05-15).
- ^ Announcing Godot's Graduation from SFC!. Software Freedom Conservancy. 1 November 2022 [2022-11-18]. (原始内容存档于2022-12-01) (英语).
- ^ Godot’s Graduation: Godot moves to a new Foundation. Godot Engine. 1 November 2022 [2022-11-18]. (原始内容存档于2023-01-05) (英语).
- ^ Godot Release Versions. Godot Release Versions. [2021-05-10]. (原始内容存档于2022-11-18) (英语).
- ^ Engine, Godot. Dev snapshot: Godot 3.6 beta 4. Godot Engine. [2024-04-23]. (原始内容存档于2024-03-13) (英语).
- ^ Dev snapshot: Godot 3.6 beta 4. Godot Engine. 2024-01-25 [2023-08-29]. (原始内容存档于2024-03-13) (英语).
- ^ Larabel, Michael. Godot 4.1 Released With More Improvements To This Open-Source Game Engine. Phoronix. 6 July 2023 [9 September 2023]. (原始内容存档于2024-04-17) (英语).
- ^ 20.0 20.1 Maintenance release: Godot 4.2.2 & 4.1.4. Godot Engine. 2024-04-17 [2024-04-18]. (原始内容存档于2024-04-22) (英语).
- ^ Godot 4.2 arrives in style!. Godot Engine. 2023-11-30 [30 November 2023]. (原始内容存档于2024-05-10) (英语).
- ^ Banini, Darío. GPU synchronization in Godot 4.3 is getting a major upgrade. Godot Engine. [2024-02-21]. (原始内容存档于2024-04-05) (英语).
外部链接
[编辑]- 官方网站(英文)
- Godot Docs文件 (繁体中文)
- Godot Docs文件 (简体中文)
- Godot Docs文件 (英文)
|