Skip to content

5.4.216

Compare
Choose a tag to compare
@4ian 4ian released this 17 Oct 18:29
· 35 commits to master since this release
451d525

๐Ÿ“ ๐ŸŽ๏ธ Objects now directly editable from the Properties panel

The object properties panel

When an object is selected (or when "Edit object" is chosen in the Properties panel after choosing an instance), this panel will now show the object properties, behaviors, variables and effects. Everything can be directly edited from there.

This allows for fast edition of most elements of an object: appearance, properties, but also behaviors, variables, effects... Most work and iterations on your game should be faster, from adapting the appearance of a text to tweaking behaviors and updating the preview to check the result in realtime. For example, behaviors can be directly added, removed and configured:

The object properties panel

๐Ÿ’ก If you keep the preview of the game opened, on the desktop app, you can then click on the "Update" button in the toolbar to apply changes to the live game, without restarting the preview.

โœˆ๏ธ Custom objects ("prefabs") can now be created (Experimental)

Custom objects are containers, composed of one or more other objects and having custom logic (made with events, like in a traditional scene) inside them.
In this new version of GDevelop, you can now select a few instances on the scene and extract them into a custom object that will contain them and their associated object:

Extracting objects into a custom object

"Custom objects" are also called "Prefabs" or "Templates" in some game engines.

They almost act like if they are a scene, but available as an object. Like custom behaviors, they can have actions, conditions and expressions, so they can be manipulated by the scene events.
They allow to speed-up development and make games more modular by having an object that can be reused in different scenes.

For example, you can build:

  • A custom object that is a dialog: a background, some text, some buttons. This allows to do all the logic related to this dialog inside the custom object events, without cluttering the scene.
  • A character or some other game objects that is composed of multiple parts. For example,

Read the documentation to learn more about their usage.

You can see here the two buttons extracted into a custom object. Notice the checkered background indicating that this is not a scene but a custom object that can be reused in multiple scenes:

A custom object with two buttons being edited

๐Ÿ’ Improvements

๐Ÿ› Bug fixes

  • A lot of fixes for custom object creation:
    • Fix closing of custom object tabs when they are deleted from their extension
    • Fix autocompletion of layers and points for custom object children
    • Fix object lists not always up-to-date in the extension events editor after adding an object in the custom object editor
    • Fix custom object editor not closed when the extension is renamed
    • Fix mouse and key parameters for functions
    • Fix custom object loading when opening a project
    • Fix extraction to custom object sometimes using an already used name
    • Fix wait action in custom objects
  • Fix objects owned by Multiplayer host not being properly migrated when host changes
  • Avoid intermittent game crash, due to an audio issue, when resuming the game (when focused back again)
  • Fix memory corruption/crashes when events in extensions had errors
  • Prevent players from claiming a leaderboard score as an anonymous user.
  • See also all the bug fixes in version 5.4.215

โš™๏ธ Extensions

  • [Auto typing] Fix the word wrapping

๐ŸŽจ Assets

  • Add a new premium pack: Casual UI and Interface SFX (by @Bouh)
  • Add a new premium pack: 2D Pixel Quest -The Dungeon by BarelyApes

๐Ÿ›  Internal changes (for developers)

  • Fix silent exceptions when resource loading finished after an instance was reset/removed
  • Add clang-tidy and builds with assertions/memory sanitizers for libGD.js
  • Fix missing or wrong arguments in GDevelop.js tests + uninitialized variables
    • These were "silently succeeding" but would create issues when Emscipten is run with SAFE_HEAP=1.