特性列表

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

备注

这个页面列出了当前稳定版本的 Godot 所支持的特性。其中一些功能可能在LTS 版本系列 (3.x)中不可用。

平台

参见

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

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

  • Windows(x86、64 位和 32 位)。

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

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

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

    • 官方可执行文件使用 Godot Engine buildroot 编译,可执行文件能够在常见 Linux 发行版(包括对应的 LTS 版本)上正常运行。

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

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

运行导出的项目:

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

备注

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

编辑器

特性:

  • 场景树编辑器。

  • 内置脚本编辑器。

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

  • GDScript 调试器

    • 从 4.2 版本开始支持多线程调试。
  • 可视化(性能)分析器能指出在渲染管线中 CPU 与 GPU 在每个步骤花费的时间。

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

  • 脚本热重载。

  • 场景热编辑。

    • 更改会在编辑器中生效并且会在关闭当前项目后保留。
  • 远程检查器。

    • 在关闭正在运行的项目后,更改不会被反映在编辑器中,也不会被保留。
  • 实时摄像机复制。

    • 移动编辑器中的摄像头,并在正在运行的项目中查看结果。
  • 内置离线类参考文档。

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

插件:

渲染

提供 3 种渲染方法(运行在 2 种渲染驱动上):

  • Forward+,在Vulkan 1.0 以上运行(具备可选的 Vulkan 1.1和 1.2 功能)。仅适用于桌面平台的最先进图形后端。在桌面平台上默认使用。

  • Forward Mobile,在 Vulkan 1.0 以上运行(带有可选的 Vulkan 1.1 和 1.2 功能)。该功能较少,但渲染简单场景更快。适用于移动和桌面平台。在移动平台上默认使用。

  • Compatibility(兼容),在 OpenGL 3.3、OpenGL ES 3.0 和 WebGL 2.0 以上运行。最低级的图形后端,适合低端桌面和移动平台。在 Web 平台上默认使用。

2D 图形

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

    • 用于绘制线和多边形的高级工具,例如Polygon2DLine2D,支持纹理。
  • AnimatedSprite2D 辅助制作动画精灵。

  • 视差层。

    • 伪 3D 支持,可在编辑器中进行预览。
  • 带有法线贴图和镜面反射贴图的 2D 光照

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

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

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

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

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

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

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

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

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

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

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

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

    • 带符号距离场字体可以在任何分辨率下进行缩放,而无需重新光栅化。与单色带符号距离场字体相比,利用多通道可使带符号距离场字体更好地缩放至更小尺寸。

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

  • 基于 CPU 的粒子。

  • 为了更好的辉光功能,可选择 2D HDR 渲染

2D 工具

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

  • 内置平滑和拖动边距的 2D 相机.

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

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

    • 用于使节点跟随一条Path2D的PathFollow2D 节点.

  • 2D 几何辅助类

2D 物理

物理体:

  • 静态物体。

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

  • 刚体。

  • 角色体。

  • 关节。

  • 用以检测实体进入或离开的区域.

碰撞检测:

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

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

3D 图形

  • 使用 sRGB 进行 HDR 渲染。

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

  • 在使用 Forward+ 后端时,可利用深度预处理(depth prepass)降低过度绘制成本从而提高复杂场景的性能。

  • 可变速率着色 可在支持的 GPU 并且 Forward+ 和 Forward Mobile 模式下使用。

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

  • 遵循迪士尼 PBR 模型。

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

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

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

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

  • 法线贴图。

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

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

  • 次表面散射和透射率。

  • 支持材质粗糙度的屏幕空间折射(达到模糊折射的效果)。

  • 邻近淡出(软粒子)和距离淡出。

  • 远离时淡出可以使用透明度混合(alpha blending)或颜色抖动(dithering)避免穿过透明管线。

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

实时光照:

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

  • 全向光。

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

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

  • 可调节的灯光 “大小” 来帮助虚拟区域打光(也会使阴影更模糊)。

  • 可以选择距离渐变系统(distance fade system)来渐变远处的灯光及其阴影,提高性能。

  • 当使用 Forward+ 后端(桌面上的默认设置)时,灯光将使用集群前向优化进行渲染,以降低其单独成本。集群渲染还取消了对网格上可以使用的灯光数量的任何限制。

  • 使用 Forward 移动后端时,每个网格资源最多可以显示 8 个泛光灯和 8 个聚光灯。如果需要,可以使用烘焙照明来克服这一限制。

阴影贴图:

  • DirectionLight:正交(最快)、二分和四分 PSSM。支持在分割之间做混合。

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

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

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

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

  • 可以单独调整各个光源的阴影模糊。

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

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

    • 支持仅烘焙间接光照,或者同时烘焙直接和间接光照。可以给各个光源单独设置烘焙模式,从而实现混合光照烘焙。

    • 支持动态对象照明采用自动和手动布置探针。

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

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

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

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

  • 有符号距离场 GI 是为大型开放世界设计的一种全局照明技术。支持动态光照,不支持动态遮挡器。可以支持反射效果。不需要进行烘焙操作。

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

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

反射:

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

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

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

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

  • 使用 Forward+ 后端时(桌面平台的默认设置),反射探针会使用集群前向优化来降低它们的单独开销。集群渲染也消除了在一个网格上使用的反射探针的数量限制。

  • 使用Forward Mobile后端时,每个网格资源最多可以显示8个反射探针。

贴花:

  • 支持漫反射,自发光, ORM 和法线贴图。

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

  • 支持根据入射角度来淡出贴花的法线淡出效果。

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

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

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

  • 使用 Forward+ 后端时(桌面平台的默认设置),贴花会使用集群前向优化来降低它们的单独开销。集群渲染也消除了在一个网格上使用的贴花的数量限制。

  • 使用Forward Mobile后端时,每个网格资源最多可以显示8个贴花。

天空:

  • 全景天空(使用 HDRI)。

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

  • 支持 自定义天空着色器 可以进行动画处理。

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

雾:

  • 指数深度雾。

  • 指数高度雾。

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

  • 支持雾中的太阳散射。

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

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

体积雾:

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

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

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

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

  • 可与传统雾一起使用。

粒子:

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

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

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

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

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

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

  • 基于 CPU 的粒子。

后期处理:

  • 色调映射(线性, Reinhard, Filmic, ACES).

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

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

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

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

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

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

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

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

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

纹理过滤:

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

  • 过滤项是基于每次使用定义的,而不是基于每个纹理。

纹理压缩:

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

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

  • ETC2(macOS 不支持)。

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

抗锯齿:

  • 时间抗锯齿(TAA)。

  • AMD FidelityFX Super Resolution 2.2 antialiasing (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 物理学

物理体:

  • 静态物体。

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

  • 刚体。

  • 角色体。

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

  • 关节。

  • 柔体。

  • 布娃娃。

  • 用以检测实体进入或离开的区域.

碰撞检测:

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

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

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

着色器

  • 2D:自定义顶点、片段和灯光着色器。

  • 3D:自定义顶点、片段、灯光和天空着色器。

  • 基于文本的着色器,使用由 GLSL 启发的着色器语言

  • 可视化着色器编辑器。

    • 支持可视化着色器插件。

编写脚本

常规:

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

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

  • 支持跨语言脚本编程

  • 多种二维、三维以及四维线性代数数据类型,比如向量和变换。

GDScript:

C#:

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

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

    • 完全支持C#10.0语法和功能.
  • 支持 Windows、Linux 和 macOS。从 4.2 开始,还提供对 Android 和 iOS 的实验性支持(需要适用于 Android 的 .NET 7.0 项目和适用于 iOS 的 .NET 8.0 项目)。

    • 在 Android 平台上,仅支持部分架构: arm64x64

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

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

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

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

  • 在需要时, 可以链接到本机库以获得更高的性能和第三方集成.

    • 对于脚本游戏逻辑,如果性能足够,建议使用 GDScript 或 C#。
  • 官方对 CC++ 的 GDExtension 绑定。

    • 使用任何你想要的构建系统和语言功能.
  • 社区积极开发对 DHaxeSwiftRust 的 GDExtension 绑定(其中一些绑定可能是实验性的,不适合生产)。

音频

特性:

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

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

    • 选择 2D 或 3D 的多普勒效应。
  • 支持重路由 音频总线 以及大量其它效果.

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

  • 支持随机音量和音高。

  • 支持实时音高缩放。

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

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

  • 支持程序式音频生成

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

  • 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 个控制器)。

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

导航

  • A* 算法在 2D3D 里。

  • 具有动态避障功能的导航网格在 2D3D 里。

  • 在编辑器内或运行时生成导航网格(包括导出的项目)。

网络

  • 使用 StreamPeerTCPServer 开发底层TCP网络通信.

  • 使用 PacketPeerUDPServer 开发底层UDP网络通信.

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

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

    • 使用打包的证书相关工具, 支持开箱即用的HTTPS功能.
  • 使用UDP和ENet的 高级联机API.

    • 使用远程过程调用(RPCS)实现的自动同步复制功能.

    • 支持不可靠, 可靠和有序传输模型.

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

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

  • 当在NAT后部署服务器时, 支持使用 UPnP来避免对转发端口的需求.

国际化

  • 对包含emoji的Unicode完整支持.

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

    • 支持从编辑器中生成 gettext POT 和 PO 文件。
  • 在你的项目中自动在GUI元素中或通过使用 tr() 函数使用本地化的字符串.

  • 当使用 gettext 翻译时,支持多元化和翻译上下文。

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

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

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

窗口功能与操作系统整合

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

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

  • 更改窗口标题和图标.

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

  • 全屏模式。

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

  • 窗口置顶功能。

  • macOS上的全局菜单整合.

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

  • 使用默认或自定义(已注册在系统中的)协议处理器打开文件路径或URL.

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

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

移动端

  • AndroidiOS 上的应用内购。

  • 支持第三方广告组件.

XR 支持(AR 和 VR)

  • 开箱即用的 OpenXR 支持

    • 包括对流行的桌面 VR 头戴式设备的支持,例如 Valve Index、WMR 头戴式显示器和 Quest over Link。
  • 通过插件,使用 OpenXR 支持 基于 Android 的头戴式设备

    • 包括对流行的一体式 VR 头戴设备的支持,例如 Meta Quest 1/2/3 和 Pro、Pico 4、Magic Leap 2 和 Lynx R1。
  • 通过 XR 插件结构支持的其他设备。

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

GUI 系统

Godot 的 GUI 也是使用 Control 节点搭建的,和制作游戏时所使用的节点一致。编辑器 UI 可以通过插件轻松地进行各种扩展。

节点:

  • 按钮。

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

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

  • 使用 PopupMenuOptionButton 实现下拉菜单。

  • 滚动条。

  • 标签。

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

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

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

  • 控件可以旋转和缩放。

调整大小:

  • 锚点可将固定GUI元素在特定的角落, 边缘, 或者居中.

  • 容器可根据特定规则自动放置UI元素.

  • 使用 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 版本中实现的功能。