mirror of
https://github.com/godotengine/godot.git
synced 2024-11-27 09:16:35 +08:00
Update the changelog with new features added in 3.1
[ci skip]
This commit is contained in:
parent
35bb52011a
commit
9ed7096aae
246
CHANGELOG.md
246
CHANGELOG.md
@ -4,6 +4,251 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- OpenGL ES 2.0 renderer.
|
||||
- [Visual shader editor.](https://godotengine.org/article/visual-shader-editor-back)
|
||||
- New PBR output nodes.
|
||||
- Conversion between Vector3 and scalar types is now automatic.
|
||||
- Ability to create custom nodes via scripting.
|
||||
- Ports can now be previewed.
|
||||
- [3D soft body physics.](https://godotengine.org/article/soft-body)
|
||||
- [3D ragdoll system.](https://godotengine.org/article/godot-ragdoll-system)
|
||||
- [Constructive solid geometry in 3D.](https://godotengine.org/article/godot-gets-csg-support)
|
||||
- [2D meshes and skeletal deformation.](https://godotengine.org/article/godot-gets-2d-skeletal-deform)
|
||||
- [Various improvements to KinematicBody2D.](https://godotengine.org/article/godot-31-will-get-many-improvements-kinematicbody)
|
||||
- Support for snapping the body to the floor.
|
||||
- Support for RayCast shapes in kinematic bodies.
|
||||
- Support for synchronizing kinematic movement to physics, avoiding an one-frame delay.
|
||||
- WebSockets support using [libwebsockets](https://libwebsockets.org/).
|
||||
- [Revamped inspector.](https://godotengine.org/article/godot-gets-new-inspector)
|
||||
- Improved visualization and editing of numeric properties.
|
||||
- Vector and matrix types can now be edited directly (no pop-ups).
|
||||
- Subresources can now be edited directly within the same inspector.
|
||||
- Layer names can now be displayed in the inspector.
|
||||
- Proper editing of arrays and dictionaries.
|
||||
- Ability to reset any property to its default value.
|
||||
- [Improved animation editor.](https://godotengine.org/article/godot-gets-brand-new-animation-editor-cinematic-support)
|
||||
- Simpler, less cluttered layout.
|
||||
- New Bezier, Audio and Animation tracks.
|
||||
- Several key types can be previewed directly in the track editor.
|
||||
- Tracks can now be grouped and filtered on a per-node basis.
|
||||
- Copying and pasting tracks between animations is now possible.
|
||||
- New Capture mode to blend from a node's current value to the first key in a track.
|
||||
- [Improved animation tree and new state machine.](https://godotengine.org/article/godot-gets-new-animation-tree-state-machine)
|
||||
- More visual feedback in the blend tree editor.
|
||||
- 1D and 2D blend spaces are now supported.
|
||||
- Ability to write custom blending logic.
|
||||
- Support for root motion.
|
||||
- [New FileSystem dock.](https://godotengine.org/article/godot-gets-new-filesystem-dock-3-1)
|
||||
- Unified view of folders and files in the same panel.
|
||||
- Files can now be marked as favorites, not only folders.
|
||||
- Files now have icons representing their type, or thumbnail previews when relevant.
|
||||
- New search field to filter entries in the tree.
|
||||
- [OpenSimplexNoise and NoiseTexture resources.](https://godotengine.org/article/simplex-noise-lands-godot-31)
|
||||
- [Optional static typing in GDScript.](https://godotengine.org/article/optional-typing-gdscript)
|
||||
- Does not currently improve performance, but helps write more robust code.
|
||||
- Warning system in GDScript.
|
||||
- Reports potential code issues such as:
|
||||
- unused variables,
|
||||
- standalone expressions,
|
||||
- discarded return values from functions,
|
||||
- unreachable code after a `return` statement,
|
||||
- …
|
||||
- Warnings can be disabled in the Project Settings or by writing special comments.
|
||||
- [GDScript keyword `class_name` to register scripts as classes.](http://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting_continued.html#register-scripts-as-classes)
|
||||
- Simple expression language independent from GDScript, used by inspector boxes that accept numeric values.
|
||||
- Can also be used in projects.
|
||||
- C# projects can now be exported for Windows, Linux, and macOS targets.
|
||||
- The `server` platform is back as it was in Godot 2.1.
|
||||
- It is now again possible to run a headless Godot instance on Linux.
|
||||
- Support for BPTC texture compression on desktop platforms.
|
||||
- New properties for SpatialMaterial.
|
||||
- Dithering-based distance fade, for fading materials without making them transparent.
|
||||
- Disable ambient light on a per-material basis.
|
||||
- Option to link Mono statically on Windows.
|
||||
- Unified class and reference search in the editor.
|
||||
- Revamped TileSet editor with support for undo/redo operations.
|
||||
- Various quality-of-life improvements to the Polygon2D and TextureRegion editors.
|
||||
- RandomNumberGenerator class that allows for multiple instances at once.
|
||||
- Array methods `min()` and `max()` to return the smallest and largest value respectively.
|
||||
- Dictionary method `get(key[, default])` where `default` is returned if the key does not exist.
|
||||
- Node method `print_tree_pretty()` to print a graphical view of the scene tree.
|
||||
- String methods `trim_prefix()`, `trim_suffix()`, `lstrip()`, `rstrip()`.
|
||||
- OS methods:
|
||||
- `get_system_time_msecs()`: Return the system time with milliseconds.
|
||||
- `get_audio_driver_name()` and `get_audio_driver_count()` to query audio driver information.
|
||||
- `get_video_driver_count()` and `get_video_driver_name()` to query renderer information.
|
||||
- `center_window()`: Center the window on the screen.
|
||||
- `move_window_to_foreground()`: Move the window to the foreground.
|
||||
- StreamPeerTCP method `set_no_delay()` to enable the `TCP_NODELAY` option.
|
||||
- EditorPlugin method `remove_control_from_container()`.
|
||||
- Ability to set Godot windows as "always on top".
|
||||
- Ability to create windows with per-pixel transparency.
|
||||
- New GLSL built-in functions in the shader language:
|
||||
- `radians()`
|
||||
- `degrees()`
|
||||
- `asinh()`
|
||||
- `acosh()`
|
||||
- `atanh()`
|
||||
- `exp2()`
|
||||
- `log2()`
|
||||
- `roundEven()`
|
||||
- New command-line options:
|
||||
- `--build-solutions`: Build C# solutions without starting the editor.
|
||||
- `--print-fps`: Display frames per second to standard output.
|
||||
- `--quit`: Quit the engine after the first main loop iteration.
|
||||
- Debugger button to copy error messages.
|
||||
- Support for `.escn` scenes has been added for use with the new Blender exporter.
|
||||
- It is now possible to scale an OBJ mesh when importing.
|
||||
- `popup_closed` signal for `ColorPickerButton`.
|
||||
- Methods that are deprecated can now print warnings.
|
||||
- Input actions can now provide an analog value.
|
||||
- Input actions can now be mapped to either a specific device or all devices.
|
||||
- DNS resolution for high-level networking.
|
||||
- Servers can now kick/disconnect peers in high-level networking.
|
||||
- Servers can now access IP and port information of peers in high-level networking.
|
||||
- High-level multiplayer API decoupled from SceneTree (see `SceneTree.multiplayer_api`/`SceneTree.custom_multiplayer_api`), can now be extended.
|
||||
- `Input.set_default_cursor_shape()` to change the default shape in the viewport.
|
||||
- Custom cursors can now be as large as 256×256 (needed to be exactly 32×32 before).
|
||||
- Support for radio-looking items with icon in `PopupMenu`s.
|
||||
- Drag and drop to rearrange Editor docks.
|
||||
- TileSet's `TileMode` is now exposed to GDScript.
|
||||
- `OS.get_ticks_usec()` is now exposed to GDScript.
|
||||
- Normals can now be flipped when generated via `SurfaceTool`.
|
||||
- TextureProgress bars can now be bilinear (extending in both directions).
|
||||
- The character used for masking secrets in LineEdit can now be changed.
|
||||
- Improved DynamicFont:
|
||||
- DynamicFonts can now use high-quality outlines generated by FreeType.
|
||||
- DynamicFonts can now have their anti-aliasing disabled.
|
||||
- DynamicFonts can now have their hinting tweaked ("Normal", "Light" or "None").
|
||||
- Colored glyphs such as emoji are now supported.
|
||||
- Universal translation of touch input to mouse input.
|
||||
- AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D now have a pitch scale property.
|
||||
- Support for MIDI input.
|
||||
- `GROW_DIRECTION_BOTH` for Controls.
|
||||
- Selected tiles can be moved in the tile map editor.
|
||||
- The editor can now be configured to display the project window on the previous or next monitor (relative to the editor).
|
||||
- If either end is reached, then the project will start on the last or first monitor (respectively).
|
||||
- Signal in VideoPlayer to notify when the video finished playing.
|
||||
- `Image.bumpmap_to_normalmap()` to convert bump maps to normal maps.
|
||||
- `File.get_path()` and `File.get_path_absolute()`.
|
||||
- Unselected tabs in the editor now have a subtle background for easier identification.
|
||||
- The depth fog's end distance is now configurable independently of the far plane distance.
|
||||
- The alpha component of the fog color can now be used to control fog density.
|
||||
- The 3D editor's information panel now displays the camera's coordinates.
|
||||
- New options to hide the origin and viewport in the 2D editor.
|
||||
- Improved 3D editor grid:
|
||||
- The grid size and number of subdivisions can now be configured.
|
||||
- Its primary and secondary colors can now also be changed.
|
||||
- <kbd>Ctrl</kbd> now toggles snapping in the 3D viewport.
|
||||
- Find & replace in files (<kbd>Ctrl + Shift + F</kbd> by default).
|
||||
- Batch node renaming tool (<kbd>Ctrl + F2</kbd> by default).
|
||||
- More editor scaling options to support HiDPI displays.
|
||||
- Type icons can now be enabled in the editor again.
|
||||
- Buttons in the editor to open common directories in the OS file manager:
|
||||
- project data directory,
|
||||
- user data directory,
|
||||
- user settings directory.
|
||||
- Projects can now be sorted by name or modification date in the project manager.
|
||||
- Projects can now be imported from ZIP archives in the project manager.
|
||||
- Improved autocompletion.
|
||||
- Keywords are now present in autocompletion results.
|
||||
- `editor` and `standalone` feature tags to check whether the project is running from an editor or non-editor binary.
|
||||
- `android_add_asset_dir("...")` method to Android module Gradle build configuration.
|
||||
- **iOS:** Support for exporting to the iPhone X.
|
||||
- **iOS:** Readded support for in-app purchases.
|
||||
|
||||
### Changed
|
||||
|
||||
- [Built-in vector types now use copy-on-write mode as originally intended](https://godotengine.org/article/why-we-broke-your-pr), resulting in increased engine performance.
|
||||
- The [mbedtls](https://tls.mbed.org/) library is now used instead of OpenSSL.
|
||||
- SSL certificates are now bundled in exported projects unless a custom bundle is specified.
|
||||
- Improved buffer writing performance on Windows and Linux.
|
||||
- Removed many debugging prints in the console.
|
||||
- Export templates now display an error dialog if no project was found when starting.
|
||||
- DynamicFont oversampling is now enabled by default.
|
||||
- Nodes' internal logic now consistently use internal physics processing.
|
||||
- Allow attaching and clearing scripts on multiple nodes at once.
|
||||
- Default values are no longer saved in scene and resource files.
|
||||
- The selection rectangle of 2D nodes is now hidden when not pertinent (no more rectangle for collision shapes).
|
||||
- SSE2 is now enabled in libsquish, resulting in improved S3TC encoding performance.
|
||||
- Tangent and binormal coordinates are now more consistent across mesh types (primitive/imported), resulting in more predictable normal map and depth map appearance.
|
||||
- Better defaults for 3D scenes.
|
||||
- The default procedural sky now has a more neutral blue tone.
|
||||
- The default SpatialMaterial now has a roughness value of 1 and metallic value of 0.
|
||||
- The fallback material now uses the same values as the default SpatialMaterial.
|
||||
- Text editor themes are now sorted alphabetically in the selection dropdown.
|
||||
- The 3D manipulator gizmo now has a smoother, more detailed appearance.
|
||||
- The 3D viewport menu button now has a background to make it easier to read.
|
||||
- Controls inside containers are no longer movable or resizable but can still be selected.
|
||||
- The `is` GDScript keyword can now be used to compare a value against built-in types.
|
||||
- Named enums in GDScript no longer create script constants.
|
||||
- This means `enum Name { VALUE }` must now be accessed with `Name.VALUE` instead of `VALUE`.
|
||||
- Shadowing variables from parent scopes is no longer allowed in GDScript.
|
||||
- Function parameters' default values can no longer depend on other parameters in GDScript.
|
||||
- Indentation guides are now displayed in a more subtle way in the script editor.
|
||||
- Indentation guides are now displayed when indenting using spaces.
|
||||
- Multi-line strings are now highlighted as strings rather than as comments in the script editor.
|
||||
- This is because GDScript does not officially support multiline comments.
|
||||
- Increased the script editor's line spacing (4 pixels → 6 pixels).
|
||||
- Increased the caret width in the script editor (1 pixel → 2 pixels).
|
||||
- The project manager window is now resized to match the editor scale.
|
||||
- The asset library now makes use of threading, making loading more responsive.
|
||||
- Line spacing in the script editor, underlines and caret widths are now resized to match the editor scale.
|
||||
- Replaced editor icons for checkboxes and radio buttons with simpler designs.
|
||||
- Tweaked the editor's success, error, and warning text colors for better readability and consistency.
|
||||
- **Android:** Custom permissions are now stored in an array and their amount is no longer limited to 20.
|
||||
- Custom permissions will have to be redefined in projects imported from older versions.
|
||||
- **Android:** Provide error details when an in-app purchase fails.
|
||||
- **Linux:** `OS.alert()` now uses Zenity or KDialog if available instead of xmessage.
|
||||
- **Mono:** Display stack traces for inner exceptions.
|
||||
- **Mono:** Bundle `mscorlib.dll` with Godot to improve portability.
|
||||
|
||||
### Removed
|
||||
|
||||
- **macOS:** Support for 32-bit and fat binaries.
|
||||
|
||||
### Fixed
|
||||
|
||||
- [`move_and_slide()` now behaves differently at low velocities](https://github.com/godotengine/godot/issues/21683), which makes it function as originally intended.
|
||||
- AnimatedSprite2D's `animation_finished` signal is now triggered at the end of the animation, instead of as soon as the last frame displays.
|
||||
- Audio buses can now be removed in the editor while they are used by AudioStreamPlayer2D/3D nodes.
|
||||
- Do not show the project manager unless no project was found at all.
|
||||
- The animation editor time offset indicator no longer "walks" when resizing the editor.
|
||||
- Allow creation of a built-in GDScript file even if the filename suggested already exists.
|
||||
- Show tooltips in the editor when physics object picking is disabled.
|
||||
- Fix a serialization bug that could cause TSCN files to grow very large.
|
||||
- Gizmos are now properly hidden on scene load if the object they control is hidden.
|
||||
- Camera gizmos in the 3D viewport no longer look twice as wide as they actually are.
|
||||
- Copy/pasting from the editor on X11 will now work more reliably.
|
||||
- `libgcc_s` and `libstdc++` are now linked statically for better Linux binary portability.
|
||||
- The FPS cap set by `force_fps` in the Project Settings is no longer applied to the editor.
|
||||
- Low FPS caps no longer cause the editor to feel sluggish.
|
||||
- hiDPI is now detected and used if needed in the project manager.
|
||||
- The Visual Studio Code external editor option now recognizes more binary names such as `code-oss`, making detection more reliable.
|
||||
- The `-ffast-math` flag is no longer used when compiling Godot, resulting in increased floating-point determinism.
|
||||
- Fix spelling of `apply_torque_impulse()` and deprecate the misspelled method.
|
||||
- Remove spurious errors when using a PanoramaSky without textures.
|
||||
- The lightmap baker will now use all available cores on Windows.
|
||||
- Bullet physics now correctly calculates effective gravity on KinematicBodies.
|
||||
- Setting the color `v` member now correctly sets the `s` member.
|
||||
- RichTextLabels now correctly determine the baseline for all fonts.
|
||||
- SpinBoxes now correctly calculate their initial size.
|
||||
- OGG streams now correctly signal the end of playback.
|
||||
- Android exporter no longer writes unnecessary permissions to the exported APK.
|
||||
- Debugger "focus stealing" now works more reliably.
|
||||
- Subresources are now always saved when saving a scene.
|
||||
- Many fixes related to importers (glTF, Collada, audio), physics (Bullet), Mono/C#, GDNative, Android/iOS.
|
||||
- **Mono:** Many fixes and improvements to C# support (including a `[Signal]` attribute).
|
||||
- **WebAssembly:** Supply proper CORS headers.
|
||||
|
||||
### Security
|
||||
|
||||
- Fixed a security issue relating to deserializing Variants.
|
||||
|
||||
## [3.0] - 2018-01-29
|
||||
|
||||
### Added
|
||||
@ -137,4 +382,5 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
|
||||
- HTML5 export using asm.js.
|
||||
- Only WebAssembly is supported now, since all browsers supporting WebGL 2.0 also support WebAssembly.
|
||||
|
||||
[Unreleased]: https://github.com/godotengine/godot/compare/3.0-stable...HEAD
|
||||
[3.0]: https://github.com/godotengine/godot/compare/2.1-stable...3.0-stable
|
||||
|
Loading…
Reference in New Issue
Block a user