介绍
Godot Engine 是一个功能丰富的跨平台游戏引擎,用于从统一界面创建 2D 和 3D 游戏。 它提供了一套全面的常用工具,使用户可以专注于制作游戏而无需重新发明轮子。 游戏可以一键导出到多个平台,包括主要的桌面平台(Linux、macOS、Windows)、移动平台(Android、iOS),以及基于网络的平台(HTML5)和控制台。
软件截图
软件特点
创新设计
使用 Godot 独特的游戏开发方法轻松创建游戏。
满足您所有需求的节点。 Godot 带有数百个内置节点,使游戏设计变得轻而易举。 您还可以为自定义行为、编辑器等创建自己的。
灵活的场景系统。 创建支持实例化和继承的节点组合。
可视化编辑器将您需要的所有工具打包到美观整洁的上下文相关 UI 中。
为美术师、关卡设计师、动画师以及介于两者之间的每个人提供友好的内容创建管道。
持续的实时编辑,停止游戏后更改不会丢失。 它甚至适用于移动设备!
使用令人难以置信的工具系统轻松创建您自己的自定义工具。
华丽的 3D 画面
基于物理的渲染器具有大量功能,可让您的游戏看起来令人难以置信。
将前向渲染的优点与延迟渲染的效率相结合的创新架构。
基于物理的渲染,具有完整的 MSAA 和 FXAA 支持。
具有次表面散射、反射、折射、各向异性、透明涂层、透射率等的全原理 BSDF。
实时华丽图形的全局照明。 即使在低端设备上,它也可以预先烘焙以获得漂亮的效果。
中后期处理效果,包括支持 HDR 的色调映射器、多标准曲线和自动曝光、屏幕空间反射、雾、光晕、景深等等。
基于 GLSL 的易于使用的着色器语言,具有内置编辑器和代码完成功能。
轻松创建 2D 游戏
Godot 带有一个功能齐全的专用 2D 引擎。
以像素为单位工作,但可以缩放到任何屏幕尺寸和纵横比。
具有自动平铺、旋转、自定义网格形状和多个图层的平铺地图编辑器。
2D 灯光和法线贴图让您的 2D 游戏看起来更逼真。
使用剪切或基于精灵的动画为您的游戏制作动画。
灵活的运动控制器,用于无物理碰撞检测。
动画所有内容
最灵活的动画系统。
从骨骼和对象到函数调用,几乎可以为所有内容制作动画。
使用自定义过渡曲线和补间来创建令人难以置信的动画。
使用骨骼和 IK 为 2D 装备制作动画的助手。
用于打包导入的 3D 动画的高效优化器。
完全自由的脚本
比任何其他引擎更多的选择。
GDScript 类似 Python 的脚本语言,旨在让游戏零麻烦。 了解为什么我们的社区喜欢它。
使用 Mono 的完整 C# 8.0 支持。
完整的 C++ 支持,无需使用 GDNative 重新编译引擎。
使用块和连接的可视化脚本。
社区提供的其他语言支持 Rust、Nim、D 和其他语言。
具有语法高亮、实时解析器和代码完成功能的内置编辑器。
集成文档。 离线浏览和搜索整个 API,无需离开编辑器。
调试和优化
使用内置调试器解决错误和性能瓶颈。
在项目运行时探索和修改项目,即使在移动设备上也是如此。
关闭项目后默认保留更改。
带有图形绘制和时间搜索的内置分析器。
视频内存调试器。
带有完整堆栈跟踪的错误记录器。
具有每节点远程呼叫跟踪和带宽使用估计的网络分析器。
多平台编辑器
在任何桌面操作系统上创建游戏。
适用于 Windows、macOS、Linux 和 *BSD。
编辑器在所有平台上以 32 位和 64 位运行。
小下载(大约 30 MB),您就可以开始了。
易于在任何平台上编译。
多平台部署
到处部署游戏!
导出到桌面平台:Windows、macOS、Linux、UWP 和 *BSD。
导出到移动平台:iOS 和 Android。
游戏机:Nintendo Switch、PlayStation 4、第三方供应商的 Xbox One。
使用 HTML5 和 WebAssembly 导出到 Web。
一键部署和导出到大多数平台。 也可以轻松创建自定义构建。
XR 支持
Godot 使跨平台的增强现实和虚拟现实开发变得容易。
插件结构允许访问各种 SDK,例如 OpenVR、OpenXR 和 Oculus SDK。 Godot 适用于 HTC Vive、Valve Index、Oculus Rift、Oculus Go、Oculus Quest、所有 Microsoft MR 耳机等等。
ARKit 支持在 iOS 版本中直接可用。
轻松的团队合作
Godot 的设计初衷是为了实现顺畅的团队合作。
友好的文件系统使用,非常适合 Git、Subversion、Mercurial 等版本控制系统,你能想到的。
场景实例化使团队合作变得轻而易举。 每个团队成员都可以专注于自己的场景,无论是角色、关卡等,都可以在不互相影响的情况下进行编辑。
基于文本的描述和最佳场景格式。
GitHub 支持的脚本语法。
更新日志
4.0.3
- 2D: Fix RemoteTransform2D could fail to update AnimatableBody2D’s position or rotation (GH-75487).
- 2D: Fix rendering odd-sized tiles (GH-74814).
- 2D: Fix TouchScreenButton not redrawn when texture changes (GH-75016).
- 3D: Fixes to CSG robustness (GH-74771).
- 3D: Fix infinite loop in CSG
Build2DFaces::_find_edge_intersections
(GH-76521). - 3D: Fix
SurfaceTool::create_from_blend_shape()
(GH-76669). - Animation: Fix blend_shape (shapekey) empty name import (GH-75990).
- Audio: Fix crash caused by invalid mix_rate assignment due to bogus project settings (GH-69833).
- Audio: Fix AudioStreamPlayer2D crash when PhysicsServer2D runs on thread (GH-75728).
- Buildsystem: Fix forced optimization in dev_build (GH-75909).
- Buildsystem: Enable shadow warnings and fix raised errors (GH-76946).
- C#: Truncate instead of round in Vector2/3/4 to Vector2I/3I/4I conversion (GH-75477).
- Core: Fix the UID field of the tscn/res file is lost when the external dependency is updated (GH-70234).
- Core: Lift restriction that resource load thread requester has to be the initiator (GH-73862).
- Core: Fix invalid global position when read outside tree (GH-75509).
- Core: Make acos and asin safe (GH-76906).
- Documentation: Improve RenderingServer, RenderingDevice, ShaderGlobalsOverride documentation (GH-76008).
- Editor: Improve editor state initialization (GH-74682, GH-75563).
- Editor: Fix UI responsiveness to touch taps (GH-75703).
- Editor: Fix connect signal dialog not allowing Unicode method name (GH-75814).
- Editor: Fix Node arrays appear as Object arrays in the inspector (GH-76530).
- Editor: Fix CollisionShape2D editor crashes (GH-76546, GH-76798).
- Export: Fix validation of codesigning certificate password on macOS (GH-74326).
- GDScript: Add missing member type check when resolving
extends
(GH-75879). - GDScript: Fix several LSP-related issues (GH-76090, GH-76095).
- GDScript: Fix mixed tabs and spaces issues (GH-76286).
- GDScript: LSP: Don’t send empty completion command (GH-76790).
- GUI: Fix several sizing and positioning issues in RichTextLabel (GH-71S742, GH-75504).
- GUI: Fix commenting collapsed functions (GH-75070).
- GUI: Allow entering named colors in ColorPicker’s hex field (GH-75905).
- GUI: Improve BiDi handling in TextServer (GH-75922, GH-75975).
- GUI: Fix blurry borders on anti-aliased StyleBoxFlat (GH-76132).
- Import: Fix size and scale based errors when importing SVG (GH-75034).
- Import: Fix OBJ mesh importer smoothing handling (GH-75315).
- Import: Expose more compression formats in Image and fix compress check (GH-76014).
- Import: Fix animation silhouette using incorrect index (GH-76499).
- Import: Use DXT1 when compressing PNGs with RGB format (GH-76516).
- Input: Fix guide button detection with XInput and Xbox Series controllers (GH-73200).
- Input: Fix the issue preventing dragging in the 2D editor (GH-75113).
- Input: Fix keycode/physical keycode mix up on web (GH-75738).
- Navigation: Expose NavigationAgent path postprocessing and pathfinding algorithm options (GH-75326).
- Navigation: Fix NavigationObstacles not being added to avoidance simulation (GH-75756).
- Navigation: Fix NavigationMesh baking for HeightMapShape (GH-76212).
- Particles: Properly calculate
lifetime_split
for particles (GH-73S31S3). - Particles: Translate inactive GPUParticles3D particles to -INF (GH-75162).
- Particles: Fix “error X3708: continue cannot be used in a switch” in HTML export (GH-75795).
- Particles: Use angle_rand to calculate base_angle in particles process material (GH-75999).
- Physics: Warn when a concave polygon is assigned to ConvexPolygonShape2D (GH-56671).
- Physics: Fix typo bug in convex-convex separating axis test (GH-75835).
- Porting: Android: Allow concurrent buffering and dispatch of input events (GH-76399).
- This change should fix reports of ANRs (Application Not Responding) that some users have experienced with Godot 4.0. Please test it thoroughly to make sure that it solves your issues without regression.
- Porting: Android: Fix double tap & drag on Android (GH-76791).
- Porting: Android: Downgrade Android gradle plugin to version 7.2.1 (GH-76325).
- Porting: Android: Fix issue with resizing the display when using the compatibility renderer (GH-76464).
- Porting: iOS: Fix loading of GDExtension dylibs auto converted to framework (GH-76S510).
- Porting: Linux: Ensure WindowData minimized/maximized are mutually exclusive (GH-76868).
- Porting: Linux: Don’t use udev for joypad hotloading when running in a sandbox (GH-76961).
- Porting: Windows: Fix clipboard relying on focused window (GH-738S78).
- Porting: Windows: Cleanup COM library initialization/uninitialization (GH-75881).
- This change may fix some of the crashes that happen on project startup. If you were affected before, please give it a try.
- Rendering: Fix GLES3 rendering on Android studio emulator (GH-74945).
- Rendering: Fix interpolation of R0 for metallic and calculation of the Fresnel Shlick term in SSR (GH-75368).
- Rendering: Use MODELVIEW_MATRIX when on double precision (GH-75462).
- Rendering: Ensure that depth write state is updated before transparent pass in OpenGL3 renderer (GH-75968).
- Rendering: Fix issues with Vulkan layout transitions (GH-76315).
- Rendering: Fix breakages of volumetric fog on Voxel GI changes (GH-76437).
- Rendering: Use proper UV in cubemap downsampler raster (GH-76692).
- This fixes reflections when using the mobile renderer.
- Shaders: Fix crashes caused due to missing type specifier in visual shader editor (GH-75809).
- Shaders: Fix rotation issue with
NODE_POSITION_VIEW
shader built-in (GH-76109). - Shaders: Fix Shader Preprocessor line numbering when disabled (GH-76S479).
- XR: Fix incorrect HTC action map entries (GH-74930).
- Thirdparty library updates: astcenc 4.4.0, doctest 2.4.11, mbedtls 2.28.3, thorvg 0.9.0, CA certificates from March 2023.
- As well as many improvements to the documentation.
Some changes previously available in 4.0.3 release candidates have been reverted.
- Editor: Improve the UX of ViewportTexture in the editor (GH-64388).
- This change introduced some new issues, so we rolled it back with the intent to make it available in a future 4.0.x release once it has been better tested and polished.
- Editor: Make EditorToaster’s handler thread-safe (GH-71670).
- This change requires further fixes which are not safe for a patch release, so we rolled it back and intend for this to only be available in Godot 4.1.