Skip to content

Instantly share code, notes, and snippets.

@Calinou Calinou/CHANGELOG.md
Last active Jan 29, 2019

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

3.1 (preliminary changelog)

Added

  • OpenGL ES 2.0 renderer.
  • Visual shader editor.
    • 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.
  • 3D ragdoll system.
  • Constructive solid geometry in 3D.
  • 2D meshes and skeletal deformation.
  • Various improvements to KinematicBody2D.
    • 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.
  • Revamped 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.
    • 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.
    • 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.
  • OpenSimplexNoise and NoiseTexture resources.
  • Optional static typing in 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.
  • Simple expression language independent from GDScript, used by inspector boxes that accept numeric values.
    • Can also be used in projects.
  • 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.
  • Revamped TileSet editor.
  • RandomNumberGenerator class that allows for multiple instances at once.
  • Dictionary method get(key[, default]) where default is returned if the key does not exist.
  • String methods trim_prefix(), trim_suffix(), lstrip(), rstrip().
  • Array methods min() and max() to return the smallest and largest value respectively.
  • OS method get_system_time_msecs() to return the system time with milliseconds.
  • 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 PopupMenus.
  • 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.
  • APIs to list audio devices, as well as set/get the currently active audio device.
  • 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.
  • 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.
  • Find & replace in files (Ctrl + Shift + F by default).
  • Batch node renaming tool (Ctrl + F2 by default).
  • More editor scaling options to support HiDPI displays.
  • 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.
  • --print-fps command line option to display frames per second to standard output.
  • editor and standalone feature tags to check whether the project is running from an editor or non-editor binary.

Changed

  • Built-in vector types now use copy-on-write mode as originally intended, resulting in increased engine performance.
  • The mbedtls 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.
  • 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.

Removed

  • Support for 32-bit and fat macOS binaries.

Fixed

  • move_and_slide() now behaves differently at low velocities, 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.
  • Camera gizmos in the 3D viewport no longer look twice as wide as they actually are.
  • 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.
  • Many fixes related to importers (glTF, Collada, audio), physics (Bullet), Mono/C#, GDNative, Android/iOS.
@glinesbdev

This comment has been minimized.

Copy link

glinesbdev 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

suptoasty 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

Calinou 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

flamendless commented Nov 3, 2018

I am really waiting for the opengl 2.0 compatibility

@aaronfranke

This comment has been minimized.

Copy link

aaronfranke commented Nov 5, 2018

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

@Calinou

This comment has been minimized.

Copy link
Owner Author

Calinou 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

CereEnder 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

Calinou 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

peterorme 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

Calinou 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

motorsep 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

Olm-e 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

ZZKJInc 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

Jummit 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

skarmiglione commented Jan 8, 2019

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

@uldall

This comment has been minimized.

Copy link

uldall commented Jan 18, 2019

@vini-guerrero

This comment has been minimized.

Copy link

vini-guerrero 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

Olm-e 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... )

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.