github 4ian/GDevelop v5.4.216
5.4.216

21 hours ago

📝 🏎️ 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.

Don't miss a new GDevelop release

NewReleases is sending notifications on new releases.