12 votes

Godot 3.1 Alpha 1 released

6 comments

  1. Zeph
    Link
    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...

    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.
    • 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.
    • 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 the 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.
    • String methods trim_prefix(), trim_suffix(), lstrip(), rstrip().
    • Array methods min() and max() to return the smallest and largest value respectively.
    • 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.
    • 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().
    • 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 (<kbd>Ctrl + Shift + F</kbd> 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.
    • 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.
    • Use the mbedtls library instead of OpenSSL.
    • Improved buffer writing performance on Windows and Linux.
    • Removed many debugging prints in the console.
    • 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.
    • 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.
    • 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.
    • The 3D manipulator gizmo now has a smoother, more detailed appearance.
    • The is GDScript keyword can now be used to compare a value against built-in types.
    • Shadowing variables from parent scopes is no longer allowed in GDScript.
    • 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.
    • 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.
    • Increased the caret width in the script editor (1 pixel → 2 pixels).
    • Android: Provide error details when an in-app purchase fails.
    • Linux: OS.alert() now uses Zenity or KDialog if available instead of xmessage.

    Fixed

    • Camera gizmos in the 3D viewport no longer look twice as wide as they actually are.
    • hiDPI is now detected and used if needed in the project manager.
    • Many fixes related to importers (glTF, Collada, audio), physics (Bullet), Mono/C#, GDNative, Android/iOS.

    Removed

    • Support for 32-bit and fat macOS binaries
    5 votes
  2. [2]
    alexandre9099
    Link
    Pretty cool, Godot will be the future, i never used Unity in depth, but since i touched godot there is no going back, godot is way easier to use

    Pretty cool, Godot will be the future, i never used Unity in depth, but since i touched godot there is no going back, godot is way easier to use

    5 votes
    1. Zeph
      Link Parent
      I like Godot more than unity for quite a few reasons but it will be a long while before it overtakes Unity (if it ever does) due to the years of existing experience indie developers have on the...

      I like Godot more than unity for quite a few reasons but it will be a long while before it overtakes Unity (if it ever does) due to the years of existing experience indie developers have on the engine.

      With Unity's ECS/Jobs/Burst combo performance is less of an issue than it ever has been and the knowledge and tutorials around that aspect will surely only grow in time, where as Godot's performance is a bit rough unless you decide to use C++ and even then you're still limited to the slower node-based system (unless you somehow replace that too, but that's a lot of work)

      1 vote
  3. nsz
    (edited )
    Link
    Cool, messed around with godot a few months ago. Very good engine imo, excited for it's future.

    Cool, messed around with godot a few months ago. Very good engine imo, excited for it's future.

    2 votes
  4. [2]
    teaearlgraycold
    Link
    Most interested in the static typing

    Most interested in the static typing

    2 votes
    1. Zeph
      Link Parent
      I haven't used it yet but there's been a lot of work put in to it recently and lots of bugfixes submitted. It'll be a while before we see any performance improvements but it's usable and has...

      I haven't used it yet but there's been a lot of work put in to it recently and lots of bugfixes submitted. It'll be a while before we see any performance improvements but it's usable and has better warnings.

      The pull request can be found here which has some more details if you're interested.

      2 votes