Skip to content

Instantly share code, notes, and snippets.

@Calinou Calinou/CHANGELOG.md
Last active May 14, 2019

Embed
What would you like to do?
Godot 3.2 preliminary changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

[Unreleased] (3.2-dev at commit 2bb39ac56e)

Added

  • Support for pseudo-3D depth in 2D.
  • Support for importing 3D scenes using Assimp.
    • Many formats are supported including FBX.
  • Support for generating audio procedurally and analyzing audio spectrums.
  • WebRTC support.
  • Support for automtaically building Android templates before exporting.
    • This makes 3rd-party SDK integration easier.
  • Support for texture atlases in 2D.
  • Major improvements to the visual shader system.
    • Redesigned visual shader editor with drag-and-drop capability.
    • Most functions available in GLSL are now exposed.
    • Support for boolean uniforms.
    • New conditional nodes.
    • Ability to delete multiple nodes at once by pressing Delete.
    • See the complete list of new functions.
  • Support for enabling/disabling parts of the editor or specific nodes.
    • This is helpful for education, or when working with artists to make it harder for them to mess things up.
  • Improved GridMap editor.
    • The copied mesh is now displayed during pasting.
    • The duplication/paste indicator is now rotated correctly around the pivot point.
    • Ability to cancel paste and selection by pressing Escape.
    • Erasing is now done using RMB instead of Shift + RMB.
      • Freelook can still be accessed by pressing Shift + F.
  • Revamped node connection dialog for improved ease of use.
  • Ability to convert a Sprite to a Mesh2D, Polygon2D, CollisionPolygon2D or LightOccluder2D.
  • New convex decomposition using the V-HACD library.
    • Can decompose meshes into multiple convex shapes for increased accuracy.
  • Support for grouping nodes in the 3D editor.
  • MSAA support in the GLES2 renderer.
  • Heightmap collision shape for efficient terrain collisions.
  • Disabled collision shapes can now be added directly, without having to disable them manually after one step.
  • Context menu options to close other scene tabs, scene tabs to the right, or all scene tabs.
  • Precise snapping in the 3D editor when holding Shift.
  • Ability to move a vertex along a single axis when holding Shift in polygon editors.
  • keep_pressed_outside Button property to keep a button pressed when moving the pointer outside while pressed.
  • use_gi_probe Light property to exclude specific lights from GIProbe computations.
  • TranslationServer method get_loaded_locales() to retrieve the list of languages with a translation loaded.
  • FRUSTUM 3D camera mode to create tilted frustums for mirror or portal effects.
  • Vector2 and Vector3 methods direction_to() to retrieve a normalized vector pointing from a vector to another.
    • This is a shorter alternative to (b - a).normalized().
  • AStar functions set_point_disabled() and is_point_disabled() to selectively disable points.
  • Tween now emits a tween_all_completed signal when all tweens are completed.
  • Input.get_current_cursor_shape() to retrieve the current cursor shape.
  • Line2D clear_points() method to clear all points.
  • smoothstep() built-in GDScript function for smooth easing of values.
  • PoolByteArray sha_256() method to get a computed SHA-256 hash.
  • Font method get_wordwrap_string_size() to return the rectangle size needed to draw a word-wrapped text.
  • ColorPicker properties to toggle the visibility and editability of presets.
  • Varible shadowing warning in GDScript.
    • Will be displayed if:
      • a block variable shadows a member variable,
      • a subclass variable shadows a member variable,
      • a function argument shadows a member variable.
  • randfn(mean, deviation) method to generate random numbers following a normal Gaussian distribution.
  • The GridMap editor now offers a search field and size slider.
  • "Ignore" flag to ignore specific tiles when autotiling in the TileMap editor.
  • Ability to create sprite frames in AnimatedSprite from a sprite sheet.
  • Support for FPS snapping in the Animation editor.
  • Autokeying in the Animation editor.
    • Keyframes will be created automatically when translating, rotating or scaling nodes if a track exists already.
    • Keys must be inserted manually for the first time.
  • AnimationNodeBlendTreeEditor improvements.
    • Ability to exclude multiple selected nodes at once.
    • Context menu to add new nodes (activated by right-clicking).
  • OccluderPolygon2D is now draggable in the editor.
  • The tooltip position offset is now configurable.
  • The default cursor used when hovering RichTextLabels can now be changed.
  • Support for emission masks in CPUParticles2D.
  • AnimatedSprites' animations can now be played backwards.
  • TextureRects can now have their texture flipped horizontally or vertically.
  • StyleBoxFlat shadows can now have an offset.
  • Profiler data can now be exported to a CSV file.
  • The 2D polygon editor now displays vertex numbers when hovering vertices.
  • RectangleShapes now have a third handle to drag both axes at once.
  • Global class resources are now displayed in the Resource property inspector.
  • The default audio bus layout file path can now be changed in the Project Settings.
  • "Disabled" attenuation model for AudioStreamPlayer3D, making the sound not fade with distance at all while keeping it positional.
  • TextEdit's tab drawing and folding is now exposed to GDScript.
  • Orphan node monitor in the Performance singleton.
    • Counts the number of nodes that were created but aren't instanced in the scene tree.
  • Ability to change eye height in VR.
  • Support for importing 1-bit, 4-bit and 8-bit BMP files.
    • Size dimensions must be a multiple of 8 for 1-bit images and 2 for 4-bit images.
  • use_lld=yes flag to link with LLD on Linux when compiling with Clang.
    • This results in faster iteration times when developing Godot itself or modules.
  • use_thinlto=yes flag to link with ThinLTO when using Clang.
  • Button to remove all missing projects in the Project Manager.
  • Mono: New DynamicGodotObject class to access dynamic properties from scripts written in GDScript.
  • Mono: Support for resource type hints in exported arrays.
  • Mono: Support for Visual Studio 2019's MSBuild.

Changed

  • Improved 3D KinematicBody performance and reliability.
  • Keys and actions are now released when the window loses focus.
  • One-click deploy to Android now requires just one click if only one device is connected.
  • ColorPicker, OptionButton and MenuButton now use toggle mode, making them appear pressed when clicked.
  • Increased the Light2D height range from -100..100 to -2048..2048.
    • Lower and higher values can be entered manually too.
  • The default RichTextLabel color is now #ffffff, matching the default Label color for better consistency.
  • Saved resources no longer contain dependency indices and metadata such as node folding, resulting in more VCS-friendly files.
  • The script editor state (such as breakpoints or the current line) is now preserved across editor sessions.
  • Tweaked the asset library detail page layout for better readability.
  • Audio mixer faders now use a non-linear algorithm to better fit human hearing.
  • Tooltips now appear faster when hovering elements in the editor (0.7 seconds → 0.5 seconds).
  • Tree scrolling when dragging now uses a larger drag margin, making drag-and-drop more convenient.
  • The Animation editor's line widths are now resized to match the editor scale.
  • Some TileMap editor options were moved to the toolbar.
  • Brackets are now only inserted when necessary when autocompleting methods in the script editor.
  • Whitespace-only selections no longer cause the script editor to highlight all occurrences.
  • Editor help is now accessed using Shift + F1, for consistency with other applications.
  • The script editor's Find in Files dialog is now always available, even when no script is opened.
  • Pressing Shift + Enter in the script editor Find dialog will now go to the previous match.
  • 2D/3D selections, rotations and selected texts are now highlighted with the editor theme's accent color.
  • The TextEdit caret color now matches the default font color, making it easier to see.
  • Empty exported NodePath properties now return null instead of self.
  • Built-in scripts are no longer allowed to use class_name as it wasn't working properly.
  • More editor actions can now have shortcuts assigned (such as Revert Scene or Export).
  • Items in the FileSystem dock can now be deselected by clicking empty space.
  • Warning-ignore comments now allow whitespace after the # character.
  • UTF-8 characters are now supported in input action names.
  • Windows: Drive letters in file paths are now capitalized.
  • macOS: Control + H and Control + D in TextEdit now delete the character at the left and right of the cursor (respectively).
  • macOS: Command + Left in TextEdit now moves the cursor to the first non-whitespace character.
  • macOS: Non-resizable windows are now allowed to enter fullscreen mode.
  • macOS: The editor's title bar now uses dark mode on Mojave.
  • X11: OS.set_window_postion() now takes window decorations into account.

Removed

  • Unused Panel panelf and panelnc styles.
  • thekla_atlas dependency, as light baking now relies on xatlas for UV unwrapping.

Fixed

  • The BRDF implementation is now energy-conserving, making rough materials less dark.
  • Radiance is now generated when using a clear color sky.
  • The AMBIENT_LIGHT_DISABLED and SHADOWS_DISABLED flags now work when using the GLES2 renderer.
  • Fixed transparency order when using the GLES2 renderer.
  • Fixed issues in WebM colorspace corrections, resulting in better color output.
  • LineEdit and TextEdit's context menus no longer display editing options if they are read-only.
  • Buttons' state is now reset when they exit the scene tree.
    • This prevents them from lingering in a "hovered" or "pressed" state.
  • Tooltips now disappear when hiding the node they belong to.
  • Encoded packet flags are no longer sent in the ENet multiplayer protocol, as ENet itself already sends that data.
    • This saves 4 bytes per packet.
  • Audio trimming is now less aggressive, cutting at -50 dB instead of -30 dB.
  • Audio trimming now has a small fade-out period, preventing audible pops.
  • Audio mix rate and output latency settings are now consistenly applied on all platforms.
  • Typed arrays and dictionaries no longer have their values shared across instances.
  • Fixed to_lower() conversion with Cyrillic characters.
  • Large rotation offset/snap values no longer appear to be cut off in the Configure Snap dialog.
  • The script editor can now autocomplete node paths starting with $" or $'.
  • Custom script editor templates can now use type hints.
  • Documentation tooltips in the editor now wrap to multiple lines correctly.
  • The 3D editor's View Information pane now displays statistics correctly when using the GLES2 renderer.
  • Getting the path to the Downloads directory on Windows using OS.get_system_dir() now works correctly.
  • The Show in File Manager context menu option now works with files marked as favorite.
  • The random number generator's seed is now properly set up.
  • Antialiased and rounded StyleBoxFlat corners now handle different border widths correctly.
  • Text resources no longer contain an extraneous line break at the end of file.
  • Transform's FLIP_Y and FLIP_Z constants now work as expected.
  • Windows: Line endings are now converted to CRLF when setting clipboard content.
    • This fixes line endings being invisible when pasting into other applications.
  • macOS: OS.get_real_window_size() and OS.set_window_size() are now handled correctly on hiDPI displays.
  • X11: OS.get_window_position() now returns absolute coordinates.
@glinesbdev

This comment has been minimized.

Copy link

commented Sep 8, 2018

So after 3.1 is released, computers with a 32 bit architecture will no longer be able to run Godot?

@suptoasty

This comment has been minimized.

Copy link

commented Sep 9, 2018

@glinesbdev the way i read it is that only mac os will no longer have 32-bit and fat godot support. and this commit helps godotengine/godot@f04958c support that. Your question makes it sound like all 32-bit will be removed

@Calinou

This comment has been minimized.

Copy link
Owner Author

commented Sep 10, 2018

@glinesbdev 32-bit will continue to be supported on Windows and Linux, but Apple dropped 32-bit support from macOS several years ago (the last macOS version available as 32-bit was 10.7, which is EOL since November 2014).

@flamendless

This comment has been minimized.

Copy link

commented Nov 3, 2018

I am really waiting for the opengl 2.0 compatibility

@aaronfranke

This comment has been minimized.

Copy link

commented Nov 5, 2018

Don't forget about Typed GDScript (var x : int etc)

@Calinou

This comment has been minimized.

Copy link
Owner Author

commented Nov 5, 2018

@aaronfranke It's already mentioned 🙂

  • Optional static typing in GDScript.
    • Does not currently improve performance, but helps write more robust code.
@CereEnder

This comment has been minimized.

Copy link

commented Nov 14, 2018

Really excited about those improvements. Excited to see OpenGL2.0 too. Any new about WebGL?

@Calinou

This comment has been minimized.

Copy link
Owner Author

commented Nov 14, 2018

Any new about WebGL?

The plan is to remove WebGL 2.0 support and re-add WebGL 1.0 based on the OpenGL ES 2.0 renderer, which is faster and more compatible.

@peterorme

This comment has been minimized.

Copy link

commented Dec 16, 2018

Are there any updates about targeting single-board computers like the Raspberry Pi in Godot 3.1?

@Calinou

This comment has been minimized.

Copy link
Owner Author

commented Jan 2, 2019

@peterorme This will be possible again in 3.1 thanks to the OpenGL ES 2.0 renderer. You will still have to provide an export template for ARMv7 (which you can compile yourself), though. I can't make any guarantees about its performance on SBCs, but give it a try anyway 🙂

@motorsep

This comment has been minimized.

Copy link

commented Jan 3, 2019

Is there anything in this release for blazing fast PC VR and mobile VR (Oculus Rift/Oculus Go/Quest) ?

@Olm-e

This comment has been minimized.

Copy link

commented Jan 3, 2019

@peterorme : it is already working : you can compile godot-master on Raspi3, I've done it and it works with 2D games at least ... ;)
(be sure to not compile Webm as it does crash the compilation, to have > 1Gb of pseudo-swap file, and be patient ;) )

@ZZKJInc

This comment has been minimized.

Copy link

commented Jan 5, 2019

Still no terrain object. Even though the screenshot provided for 3.1 shows a terrain.

@Jummit

This comment has been minimized.

Copy link

commented Jan 6, 2019

@ZZKJInc 3d terrain is too high level and would add something most people would not use, which is against Godot's philosophy.
If you want a 3d terrain editor, use this plugin: https://github.com/Zylann/godot_terrain_plugin

@skarmiglione

This comment has been minimized.

Copy link

commented Jan 8, 2019

Hello! where can i see the status about c#?

@uldall

This comment has been minimized.

Copy link

commented Jan 18, 2019

@vini-guerrero

This comment has been minimized.

Copy link

commented Jan 18, 2019

Are there any tutorials on the websockets feature? I saw the documentation but couldn’t make it work properly yet...

@Olm-e

This comment has been minimized.

Copy link

commented Jan 28, 2019

@motorsep : I read "Improved buffer writing performance on Windows and Linux." and could see great improvement in fps on previously crawling scenes, specifically with shadows, now getting 90fps where I had 15 ... :) (on linux and vive openvr)
so yes, some blazing VR is now more possible on PC (still pay attention to your project setup, disabling VSync, hiding 3d window when editing, etc... )

@Calinou

This comment has been minimized.

Copy link
Owner Author

commented Apr 7, 2019

I updated this changelog for the current state of 3.2-dev (up to godotengine/godot@3dabe86).

By the way, if you have Tig installed, you can use tig +10000 3.1-stable..master --no-merges to preview all commits that have been done since 3.1's release in a convenient way.

@Antokolos

This comment has been minimized.

Copy link

commented Apr 8, 2019

I don't mean to be pressing and all that, but please take a note at this few issues:

  1. Shaders caching: without that feature we'll be experiencing freezes any time new material will appear in the camera
    godotengine/godot#13954
    "Ouch. I don't know why this isn't as high of a priority as literally (in the literal sense) anything else in 3.1. Having your game freeze every time a new object that hasn't been used yet enters the screen is an enormous deal-breaker for most people, and asking people to use hacky solutions that work sometimes is honestly pretty awful." (c)
  2. LOD is not working:
    godotengine/godot#8806
  3. 3D occluders. It is REALLY, REALLY important and MUST HAVE feature for any 3D engine.
    godotengine/godot#9786
    All this features are extremely important for 3D games' optimization. Gamers don't care if the game was created in Godot or in Unreal Engine, but gamers care a lot about 60 FPS. So, please, place all these features (with or without Vulkan, it is really not that important) on the top of the list for 3D in 3.2.
@samvila

This comment has been minimized.

Copy link

commented Apr 10, 2019

How about this?: godotengine/godot#24086

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.