特性列表

本页旨在列出 Godot 当前支持的所有特性。

备注

此页面列出了当前稳定版本的 Godot 所支持的功能。部分功能在 3.x 版本系列 中不可用。

平台

参见

软硬件版本需求见 系统需求

备注

主机支持的更多信息参考 Godot 网站

可以运行编辑器以及导出项目的:

  • Windows (x86 和 ARM, 64位 和 32位).

  • macOS(x86 和 ARM,仅 64 位)。

  • Linux(x86 和 ARM,64 位和 32 位)。

    • 二进制文件是静态链接的,并且如果在足够旧的基本发行版上进行编译,则可以在任何发行版上运行。

    • 官方二进制文件是使用 Godot Engine buildroot 编译的,从而生成可在常见 Linux 发行版上运行的二进制文件。

  • Android(编辑器支持是实验性的)。

  • Web 浏览器 。在 4.0 中是实验性的,当针对 HTML5 时,建议改用 Godot 3.x。

备注

Linux 支持 rv64(RISC-V)、ppc64 和 ppc32(PowerPC)以及 loongarch64 架构。但你需要自行编译该平台的编辑器(以及导出模板),目前不提供官方预编译版本。RISC-V 的编译说明可查阅 为 Linux、*BSD 平台编译 页面。

运行导出的项目:

  • iOS。

Godot 的目标是尽可能地独立于平台,并且可以相对轻松地移植到新平台

备注

在 Godot 4 中用 C# 编写的项目目前无法导出到 Web 平台。如果要在该平台上使用 C#,请考虑使用 Godot 3。(C# 的)Android 和 iOS 平台支持从 Godot 4.2 开始提供,但仍处于实验阶段,并且存在一些限制

编辑器

特性:

  • 场景树编辑器。

  • 内置脚本编辑器。

  • 支持 Visual Studio Code、VIM 等外部文本编辑器

  • GDScript 调试器

    • 从 4.2 版本开始支持多线程调试。

  • 可视化(性能)分析器,能指出在渲染管线中 CPU 与 GPU 在每个步骤花费的时间。

  • 性能监视工具,包括自定义性能监视器

  • 脚本热重载。

  • 场景热编辑。

    • 更改会在编辑器中生效,并会在关闭运行的项目后保留。

  • 远程检查器。

    • 更改不会在编辑器中生效,也不会在关闭运行的项目后保留。

  • 实时相机复制。

    • 移动编辑器中的相机,并在正在运行的项目中查看结果。

  • 内置离线类参考文档。

  • 使用由社区贡献的支持数十种语言的编辑器。

插件:

渲染

Godot 4 包括 三个渲染器:

  • Forward+。最先进的渲染器,仅适合桌面平台,桌面平台默认使用。该渲染器使用 VulkanDirect3D 12Metal 作为渲染驱动,使用 RenderingDevice 后端。

  • Mobile(移动)。功能较少,但渲染简单场景的速度更快。适用于移动平台和桌面平台。移动平台默认使用该渲染器。该渲染器使用 VulkanDirect3D 12Metal 作为渲染驱动,使用 RenderingDevice 后端。

  • Compatibility(兼容),有时被称作 GL Compatibility(GL 兼容)。最低级的渲染器,适合低端桌面和移动平台。在 Web 平台上默认使用。此渲染器使用 OpenGL 作为渲染后端。

请参阅 渲染器概述 以获取详细的渲染方法比较。

2D 图形

  • 精灵、多边形和线条渲染。

    • 用于绘制线和多边形的高级工具,例如 Polygon2DLine2D,支持纹理。

  • AnimatedSprite2D 辅助制作动画精灵。

  • 视差层。

    • 伪 3D 支持,可在编辑器中进行预览。

  • 带有法线贴图和镜面反射贴图的 2D 光照

    • 2D 点光源(全向灯/聚光灯)和定向光源。

    • 硬阴影或软阴影(可根据每个光源进行调整)。

    • 自定义着色器可以访问一个基于 LightOccluder2D 节点的,由实时 SDF 表示的 2D 场景,它可以用于改进 2D 照明效果,包括 2D 全局光源。

  • 字体渲染使用位图,光栅化使用 FreeType 或多通道有符号距离场(MSDF)。

    • 位图字体可以使用 BMFont 等工具导出,也可以从图像导入(仅适用于等宽字体)。

    • 动态字体支持单色字体以及彩色字体(例如用于表情符号)。支持的格式有 TTF、OTF、WOFF1 和 WOFF2。

    • 动态字体支持宽度和颜色可调的可选字体轮廓。

    • 动态字体支持可变字体和 OpenType 功能,包括连字(ligatures)。

    • 当字体文件缺少粗体和斜体样式时,动态字体支持模拟这些样式。

    • 动态字体支持超采样, 以在更高的分辨率下保持字体的清晰度.

    • 动态字体支持亚像素定位(subpixel positioning),使字体在小尺寸下更清晰。

    • 动态字体支持 LCD 亚像素优化,使字体在小尺寸下更加清晰。

    • 带符号距离场字体可以按任意分辨率缩放,而无需重新光栅化。与单色带符号距离场字体相比,利用多通道可使带符号距离场字体能够更好地缩小到较小的大小。

  • 基于 GPU 的粒子,支持自定义粒子着色器

  • 基于 CPU 的粒子。

  • 用于更好的辉光功能的可选 2D HDR 渲染

2D 工具

  • TileMap 用于由 2D 图块构建的关卡设计。

  • 2D 相机,拥有内置平滑和拖动边距。

  • Path2D 节点,用于代表 2D 空间中的一条路径。

    • 可以在编辑器中绘制或者程序化生成。

    • PathFollow2D 节点,用于使节点跟随一个 Path2D。

  • 2D 几何辅助类

2D 物理

物理体:

  • 静态物体。

  • 可动画物体(用于仅通过脚本或动画移动的物体,如门和平台)。

  • 刚体。

  • 角色体。

  • 关节。

  • 区域,用以检测实体进入或离开。

碰撞检测:

  • 内置形状:线条、框体、圆圈、胶囊、世界边界(无限平面)。

  • 碰撞多边形(可以人工绘制,或者在编辑器中根据精灵生成)。

3D 图形

  • 使用 sRGB 进行 HDR 渲染。

  • 透视、正交以及视锥偏移摄像机。

  • 使用 Forward+ 渲染器时,通过深度预通道来提高复杂场景中的性能,从而减少过度绘制的成本。

  • 在 Forward+ 和 Mobile 渲染器中,支持的 GPU 上可以使用 可变速率着色

基于物理的渲染(内置材质特性):

  • 遵循迪士尼 PBR 模型。

  • 支持 Burley、Lambert、Lambert Wrap(half-Lambert)、Toon 漫反射着色模式。

  • 支持 Schlick-GGX、Toon 和 Disabled 镜面反射着色模式。

  • 使用粗糙度金属度工作流,支持 ORM 纹理。

  • 使用地平线镜面反射遮蔽(Filament 模型)提升材质外观。

  • 法线贴图。

  • 具有基于距离的自动细节层次的视差/浮雕贴图。

  • 反照率及法线贴图的细节贴图。

  • 次表面散射和透射率。

  • 支持材质粗糙度的屏幕空间折射(产生模糊折射)。

  • 邻近淡出(柔化粒子)与距离淡出。

  • 距离淡出可以使用透明度混合或抖动以避免穿过透明管线。

  • 抖动可以根据每个像素或每个对象来确定。

实时光照:

  • 定向光(日光/月光)。每个场景最多 4 个。

  • 全向光。

  • 可调整锥角和衰减的聚光。

  • 镜面反射、间接光和体积雾能量可以根据每个光源进行调整。

  • 可调节的灯光 "大小" 用于伪造面光(也会使阴影更模糊)。

  • 可选的距离淡化系统(distance fade system)可以淡化远处的灯光及其阴影,从而提高性能。

  • 使用 Forward+ 渲染器(桌面平台默认)时,光源通过集群前向优化渲染,以减少其单独的成本。集群渲染还消除了对网格上可使用的光源数量的任何限制。

  • 使用 Mobile 渲染器时,每个网格资源最多可以显示 8 个全向光源和 8 个聚光灯。如果需要,可以使用烘焙光照来克服这一限制。

阴影贴图:

  • DirectionalLight:正交(最快)、PSSM 2 分割和 4 分割。支持分割之间的混合。

  • OmniLight:双抛物面(快速)或立方映射(较慢但更精确)。支持全景形式的彩色投影纹理。

  • SpotLight:单个纹理。支持彩色投影纹理。

  • 要缓解可见的阴影失真和阴影悬浮的情况,可以调整阴影的法线偏移量偏置以及阴影压平。

  • 类似 PCSS 的阴影模糊是基于光源大小和距阴影投射表面的距离。

  • 根据每个灯光调整阴影模糊。

具有间接照明的全局光照:

  • 烘焙光照贴图(快速,但无法在运行时更新)。

    • 支持仅烘焙间接光照,或者同时烘焙直接和间接光照。可以根据每个灯光调整烘焙模式,以允许混合光照烘焙设置。

    • 支持使用自动和手动放置的探针照明动态物体。

    • 可选支持基于球谐函数的平行光和粗糙反射。

    • 光照贴图使用计算着色器在 GPU 上烘焙(与 CPU 光照贴图相比速度更快)。烘焙只能从编辑器执行,而不能在导出的项目中执行。

    • 支持使用 JNLM 进行基于 GPU 的降噪,或使用 OIDN 进行基于 CPU/GPU 的降噪。

  • 基于体素的 GI 探针。支持动态灯光动态遮挡器,同时还支持反射。需要执行快速烘焙步骤,该步骤可在编辑器中或运行时(包括从导出的项目中)执行。

  • 为大型开放世界设计的有符号距离场 GI。支持动态光照,不支持动态遮挡器。支持反射。无需烘焙。

  • 以半分辨率或全分辨率进行的屏幕空间间接光照(SSIL)。完全实时并支持任何类型的自发光光源(包括贴花)。

  • VoxelGI 和 SDFGI 使用延迟渲染通道,可以在半分辨率下渲染全局光照,以提高性能(同时还支持 MSAA 抗锯齿)。

反射:

  • 基于体素的反射(使用 GI 探针时)和基于 SDF 的反射(使用符号距离场 GI 时)。基于体素的反射在透明表面上可见,而基于粗糙 SDF 的反射在透明表面上可见。

  • 使用 ReflectionProbe 实现较快的烘焙反射或较慢的实时反射。可以选择启用视差盒校正。

  • 支持材料粗糙度的屏幕空间反射。

  • 可以混用反射技术,以获得更高的准确性或可扩展性。

  • 使用 Forward+ 渲染器(桌面平台默认)时,反射探针通过集群前向优化渲染,以减少其单独的成本。集群渲染还消除了对网格上可使用的反射探针数量的任何限制。

  • 使用移动渲染器时,每个网格资源最多可以显示 8 个反射探针。使用兼容渲染器时,每个网格资源最多可以显示 2 个反射探针。

贴花:

  • 支持反照率、自发光、ORM 和法线贴图。

  • 纹理通道平滑地叠加在底层材质之上,并支持普通/仅 ORM 贴花。

  • 支持法线淡化,以根据入射角度来淡化贴花。

  • 不依赖于实时网格生成。这意味着即使贴花每帧都在移动,也可以在复杂的蒙皮网格上使用贴花,而不会影响性能。

  • 支持最近邻、双线性、三线性、各向异性纹理过滤(全局设置)。

  • 可选的距离淡化系统(distance fade system)以淡化远处的贴花,提高性能。

  • 使用 Forward+ 渲染器(桌面平台默认)时,贴花通过集群前向优化渲染,以减少其单独的成本。集群渲染还消除了对网格上可使用的贴花数量的任何限制。

  • 使用移动渲染器时,每个网格资源最多可以显示 8 个贴花。

天空:

  • 全景天空(使用 HDRI)。

  • 程序天空和基于物理的天空,用于响应场景中的定向光。

  • 支持可以动画化的自定义天空着色器

  • 取决于所选的质量设置,用于环境光和镜面反射光的辐射图可以实时更新。

雾:

  • 指数深度雾。

  • 指数高度雾。

  • 支持根据天空颜色自动调整雾的颜色(使用大气透视)。

  • 支持雾中的太阳散射。

  • 支持控制雾的渲染对天空的影响程度,对传统的雾和体积雾进行单独控制。

  • 支持使特定材质忽略雾。

体积雾:

  • 对光影做出反应的全局体积雾

  • 在使用 VoxelGI 或 SDFGI 时体积雾可以受间接光影响。

  • 可以放置雾体积节点以向特定区域添加雾(或从特定区域去除雾)。支持的形状包括盒状、椭圆形、圆锥体、圆柱体和基于 3D 纹理的密度图。

  • 每个雾体积都可以有自己的自定义着色器。

  • 可与传统雾一起使用。

粒子:

  • 基于 GPU 的粒子,支持子发射器(2D + 3D)、尾迹(2D + 3D)、吸引器(仅 3D)和碰撞(2D + 3D)。

    • 支持 3D 粒子吸引器形状:盒状、球体和 3D 向量场。

    • 支持 3D 粒子碰撞形状:盒状、球体、烘焙带符号距离场和实时高度图(适用于开放世界天气效果)。

    • 2D 粒子碰撞是使用基于场景中的 LightOccluder2D 节点实时生成的带符号距离场来处理的。

    • 尾迹可以使用内置的带状尾迹和管状尾迹网格,也可以使用带有骨架的自定义网格。

    • 支持手动发射的自定义粒子着色器。

  • 基于 CPU 的粒子。

后期处理:

  • 色调映射(线性、Reinhard、Filmic、ACES、AgX)。

  • 根据视口亮度自动调整曝光(或使用手动曝光覆盖)。

  • 可以通过景深的远近调节对焦外散斑的模拟(方框、六边形、圆形)。

  • 半分辨率或全分辨率的屏幕空间环境光遮蔽(SSAO)。

  • 辉光/泛光,可以使用可选的双三次放大和多种混合模式:滤色(Screen)、柔光(Soft Light)、添加(Add)、替换(Replace)、融合(Mix)。

  • 辉光可以使用彩色污渍贴图纹理,实现镜头脏污效果。

  • 辉光可用作屏幕空间模糊效果

  • 使用一维渐变或 3D LUT 纹理进行颜色校正。

  • 可减少镜面反射锯齿的影响的粗糙度限幅器。

  • 亮度,对比度和饱和度调整。

纹理过滤:

  • 最近邻、双线性、三线性、各向异性过滤。

  • 过滤选项是根据每个用途定义的,而不是根据每个纹理定义的。

纹理压缩:

  • Basis Universal(速度较慢,但文件较小)。

  • 用于高质量压缩的 BPTC(macOS 不支持)。

  • ETC2(macOS 不支持)。

  • S3TC(不支持网页和移动平台)。

抗锯齿:

  • 时间抗锯齿(TAA)。

  • AMD FidelityFX Super Resolution 2.2 抗锯齿(FSR2)可在原始分辨率下用作高质量的时间抗锯齿。

  • 多重采样抗锯齿( MSAA ),同时适用于 2D 抗锯齿3D 抗锯齿

  • 快速近似抗锯齿(FXAA)。

  • 使用双线性三维缩放和高于 1.0 的三维分辨率比例进行超采样抗锯齿 (SSAA)。

  • 在每种材质基础上的 Alpha 抗锯齿、基于多重采样(MSAA)的 Alpha 覆盖(Alpha-To-Coverage)和 Alpha 哈希。

分辨率缩放:

  • 支持以较低分辨率渲染 3D,同时保持原始比例的 2D 渲染。 这可用于提高低端系统的性能或改善高端系统的视觉效果。

  • 分辨率缩放使用了双线性过滤、 AMD FidelityFX Super Resolution 1.0 (FSR1)和 AMD FidelityFX Super Resolution 2.2 (FSR2)。

  • 多级渐远纹理 LOD 偏置会自动调整,以提高较低分辨率比例下的质量。也可以通过手动偏移进行修改。

上述效果中的大多数都可以进行调整,从而提升性能、提高质量。这在使用 Godot 进行脱机渲染时非常有用。

3D 工具

  • 内置网格:立方体、圆柱体/圆锥体、(半)球体、棱柱体、平面、四边形、圆环面、条带、管状。

  • GridMaps 用于由 3D 图块构建的关卡设计。

  • 构造实体几何(用于原型制作)。

  • 程序式几何体生成工具。

  • Path3D 节点表示 3D 空间中的路径。

    • 可以在编辑器中绘制或者程序化生成。

    • PathFollow3D 节点使节点沿 Path3D 运动。

  • 3D 几何体辅助类

  • 支持在编辑器中、或在导出项目的运行时中,将当前场景导出为 glTF 2.0 文件。

3D 物理学

物理体:

  • 静态物体。

  • 可动画物体(用于仅通过脚本或动画移动的物体,如门和平台)。

  • 刚体。

  • 角色体。

  • 车身(用于街机物理,而非模拟)。

  • 关节。

  • Soft bodies.

  • Ragdolls.

  • 区域,用以检测实体进入或离开。

碰撞检测:

  • 内置形状:立方体、球体、胶囊体、圆柱体、世界边界(无限平面)。

  • 从编辑器中为任意网格生成三角形碰撞形状。

  • 从编辑器中为任意网格生成一个或多个凸碰撞形状。

着色器

脚本

常规:

  • 具有脚本扩展节点的面向对象设计模式。

  • 用于脚本之间通信的信号和组。

  • 支持跨语言脚本编程

  • 多种 2D、3D 以及 4D 线性代数数据类型,比如向量和变换。

GDScript:

C#:

  • 打包成单个单独的二进制文件,以降低文件大小和依赖关系。

  • 支持 .NET 8 及更高版本。

    • 完全支持 C# 12.0 语法和特性。

  • 支持 Windows、Linux 和 macOS。从 Godot 4.2 开始,也提供对 Android 和 iOS 的实验性支持。

    • 在 iOS 平台上仅支持部分架构:arm64

    • 目前不支持 Web 平台。要在该平台上使用 C# ,请考虑改用 Godot 3。

  • 建议使用外部编辑器以从 IDE 功能中获益。

GDExtension(C、C++、Rust、D……):

  • 按需链接到本机库以获得更高的性能和第三方集成。

    • 对于编写游戏逻辑脚本,如果性能合适,建议使用 GDScript 或 C#。

  • 用于 CC++ 的官方 GDExtension 绑定。

    • 使用你希望的任意构建系统和语言特性。

  • 社区提供的积极开发中的 GDExtension 绑定包括 DSwiftRust。 (这些绑定中的一些可能是实验性的,尚不适用于生产环境)。

音频

特性:

  • 单声道、立体声、5.1 和 7.1 输出。

  • 2D 和 3D 的非定位和定位播放。

    • 2D 或 3D 中可选的多普勒效应。

  • 支持可重路由的音频总线和包含数十种效果的效果。

  • 支持复调(使用单个 AudioStreamPlayer 节点播放多个声音)。

  • 支持随机音量和音高。

  • 支持实时音高缩放。

  • 支持顺序 / 随机采样,包括在随机采样时的重复预防。

  • Listener2D 和 Listener3D 节点从不同于摄像机的位置进行侦听。

  • 支持程序式音频生成

  • 录制麦克风的音频输入。

  • Text to speech using platform-provided TTS engines.

  • MIDI 输入。

    • 尚不支持 MIDI 输出。

使用的 API:

  • Windows: WASAPI。

  • macOS: CoreAudio。

  • Linux: PulseAudio 或 ALSA。

导入

格式:

  • 图片:导入图像

  • 音频:

    • WAV,可选 IMA-ADPCM 压缩。

    • Ogg Vorbis。

    • MP3。

  • 3D 场景:导入 3D 场景

    • glTF 2.0 (推荐)

    • .blend(通过透明调用 Blender 的 glTF 导出功能)。

    • FBX (通过透明调用 FBX2glTF)。

    • Collada(.dae)。

    • Wavefront OBJ(仅静态场景,可直接被加载为网格或导入为 3D 场景)。

  • 支持在运行时以及导出项目中加载 glTF 2.0 场景。

  • 在导入时使用 Mikktspace 为 3D 网格生成切线,保证与 Blender 等其他 3D 应用的一致性。

输入

  • 输入映射系统使用硬编码的输入事件或可重映射的输入动作。

    • 轴值可以映射到具有可配置死区的两个不同的动作。

    • 使用相同的代码来支持键盘和游戏手柄。

  • 键盘输入。

    • 按键可以以“物理”模式映射,以独立于键盘布局。

  • 鼠标输入。

    • 鼠标光标可以是可见的、隐藏的、被捕获的或被限制在窗口内的。

    • 捕获输入时,在 Windows 和 Linux 平台会使用原始输入,回避操作系统的鼠标加速度设置。

  • 手柄输入(最多同时支持 8 个控制器)。

  • 支持带压感的绘图笔和平板输入。

网络

  • 使用 StreamPeerTCPServer 进行低阶 TCP 网络通信。

  • 使用 PacketPeerUDPServer 进行低阶 UDP 网络通信。

  • 使用 HTTPClient 进行低阶 HTTP 请求。

  • 使用 HTTPRequest 进行高阶 HTTP 请求。

    • 使用捆绑证书支持开箱即用的 HTTPS。

  • 使用 UDP 和 ENet 的高级联机API。

    • 使用远程过程调用(RPC)进行自动复制。

    • 支持不可靠、可靠和有序传输。

  • WebSocket 客户端和服务器,全平台可用。

  • WebRTC 客户端和服务器,全平台可用。

  • 当在 NAT 后托管服务器时,支持使用 UPnP 来避免转发端口的需求。

国际化

  • 完全支持 Unicode,包括表情符号。

  • Support for loading system fonts on Windows, macOS, and Linux.

    • By default, system fonts are used as a fallback to display unsupported characters. This allows proper display of multilingual text without having to bundle large font files with a project.

  • 使用 CSVgettext 存储本地化字符串。

    • 支持从编辑器中生成 gettext POT 和 PO 文件。

  • 在你的项目中自动在 GUI 元素中或通过使用 tr() 函数使用本地化的字符串。

  • Support for pluralization and translation contexts.

  • 支持双向排版、文本整形和 OpenType 本地化表单。

  • 用于从右到左区域设置的自动 UI 镜像。

  • 支持伪本地化,以测试你的项目对 i18n 的友好性。

窗口功能与操作系统整合

  • 在单个进程中生成多个独立窗口。

  • 移动、调整大小、最小化和最大化由项目产生的窗口。

  • 更改窗口标题和图标。

  • Create transparent windows to use as overlays, with polygon-based mouse passthrough support.

  • 吸引注意(在大多数平台上表现为标题栏闪烁)。

  • 全屏模式。

    • 在 Windows 上,默认情况下使用无边框全屏进行快速切换,但也可以选择使用独占全屏来减少输入滞后。

  • 无边框窗口(全屏或非全屏)。

  • Keep a window always on top.

  • Make a window ignore focus (useful for overlays).

  • Declare a window as a popup (hidden from task switcher) or exclusive (prevents interacting with other windows from the same process).

  • Native file dialog support on Windows, macOS, Linux, and Android.

  • Tray icon support on Windows and macOS.

  • macOS 上的全局菜单整合。

  • Client-side decorations on macOS.

  • 以阻塞或非阻塞方式执行命令(包括运行同一项目的多个实例)。

  • 使用默认或自定义(已在系统上注册)协议处理程序打开文件路径和 URL。

  • 解析自定义命令行参数。

  • Support for screen readers on Windows, macOS, and Linux.

  • 通过用 --headless 命令行参数启动它,任何 Godot 二进制文件(编辑器或导出的项目)都可以用作无头服务器。这允许在没有 GPU 或显示服务器的情况下运行引擎。

参见

See Creating applications for details on using these features.

移动端

  • AndroidiOS 上的应用内购。

  • 支持使用第三方模块的广告。

XR 支持(AR 和 VR)

  • 开箱即用的 OpenXR 支持

    • 包括对流行的桌面 VR 头显的支持,例如 Valve Index、WMR 头显和 Quest over Link。

  • 通过插件,使用 OpenXR 支持基于 Android 的头显

    • 包括对流行的独立头显的支持,例如 Meta Quest 1/2/3 和 Pro、Pico 4、Magic Leap 2 和 Lynx R1。

  • 对 Apple visionOS 头戴式设备的开箱即用支持有限。

    • 目前仅支持导出一个在头显内部的平面上使用的应用程序,不支持沉浸式体验。

  • 通过 XR 插件结构支持的其他设备。

  • 可以使用各种高级工具包来实现 XR 应用程序所需的常见功能。

GUI 系统

Godot 的 GUI 也是使用与用于在 Godot 中制作游戏相同的 Control 节点构建的。编辑器 UI 可以使用插件以多种方式轻松扩展。

节点:

  • 按钮。

  • 复选框、复选按钮、单选按钮。

  • 使用 LineEdit(单行)和 TextEdit(多行)进行文本输入。TextEdit 还支持代码编辑功能,例如显示行号和语法高亮。

  • 使用 PopupMenuOptionButton 实现下拉菜单。

  • 滚动条。

  • 标签。

  • 用于使用 BBCode 的格式化文本的 RichTextLabel,支持自定义动画效果。

  • 树(也可用于显示表格)。

  • 支持 RGB 及 HSV 模式的取色器。

  • 控件可以被旋转和缩放。

调整大小:

  • 锚点将 GUI 元素保持在特定的角落、边缘或中心。

  • 容器按照特定规则自动放置 GUI 元素。

  • 使用 canvas_itemsviewport 拉伸模式,缩放至多种分辨率

  • 使用锚点和 expand 拉伸比例,支持任意纵横比。

主题:

  • 内置主题编辑器。

    • 根据当前的编辑器主题设置生成主题。

  • 使用 StyleBoxFlat 进行基于向量的程序式主题设计。

    • 支持圆角/斜角、阴影、各边框宽度、抗锯齿。

  • 使用 StyleBoxTexture 进行基于纹理的主题设计。

Godot 较小的发行包大小,使其适合成为 Electron 或 Qt 等框架的替代品。

动画

  • 正向运动学与反向运动学。

  • 支持使用可自定义插值动画化任意属性。

  • 支持在动画轨道中调用方法。

  • 支持在动画轨道中播放声音。

  • 支持在动画中使用贝塞尔曲线。

文件格式

  • 场景和资源可保存为文本或二进制格式。

    • 基于文本的格式易于阅读,并且对版本控制更友好。

    • 二进制格式保存/加载大型场景/资源的速度更快。

  • 使用 FileAccess 读写文本或二进制文件。

    • 可选择使用压缩或加密。

  • 读写 JSON 文件。

  • 使用 ConfigFile 读写 INI 样式的配置文件。

    • 可以(反)序列化任何 Godot 数据类型,包括 Vector2/3、Color 等。

  • 使用 XMLParser 读取 XML 文件。

  • 无需通过 Godot 的导入系统, 即可在导出的项目中加载和保存图像、音频/视频、字体和 ZIP 存档

  • 将游戏数据打包到 PCK 文件(针对快速搜索优化的自定义格式)、ZIP 存档或直接打包到可执行文件中以进行单文件分发。

  • 导出额外的 PCK 文件,引擎可以读取这些文件以支持 mod 和 DLC。

杂项

  • 视频播放内置支持 Ogg Theora。

  • Movie Maker 模式可从正在运行的项目中录制视频,并具有同步音频和完美的帧同步。

  • 对服务器的低级别访问,能够在必要时绕过场景树的开销。

  • 使用命令行接口进行自动化。

    • 使用持续集成平台导出和部署项目。

    • 适用于 Bash、zsh 和 fish 的 Shell 补全脚本

    • 在所有平台使用 print_rich 将彩色文本打印至标准输出。

  • 编辑器可以 检测项目所用到的功能并建立一个编译配置,该配置可用于创建关闭了多余功能、二进制文件体积更小的导出模板。

  • 支持将 C++ 模块静态链接到引擎二进制文件中。

    • 大多数引擎内置功能模块均可在编译时禁用,以减少自行编译版本的二进制文件体积,详情请参阅 为尺寸优化构建 页面。

  • 引擎和编辑器以 C++17 编写。

    • 可使用 GCC、Clang、MSVC 进行编译。同样支持 MinGW。

    • 对打包者友好。通常情况下,可以使用系统库代替 Godot 提供的库。构建系统不会下载任何东西。构建完全可重现。

  • 使用宽松的 MIT 许可。

参见

Godot 提案库列出了社区要求的、可能在未来 Godot 版本中实现的功能。