- Position: a "Z position" action and condition for 3D objects, an optional Z position in the position and center position actions (left unchanged when empty) and in the object creation actions (0 by default), ignored for 2D objects.
- Size: an optional depth in the size action, left unchanged when empty and ignored for 2D objects.
- Rotation: an action changing the X, Y and Z rotations at once, a Z rotation action and condition for 3D objects (their angle), and turns around the local X, Y and Z axes of the object, next to the turns around the global axes.
- Base object instructions can require a capability (like the 3D one): they are skipped by the code generation for objects without it.
- The position, size, scale and rotation actions and conditions are grouped (Position, Center, Size, Scale, Rotation, Turn around local/global axis) and named after their axis. The expressions keep their name, description and group.
- Tweens can now use a custom easing curve, in addition to the built-in named easings (`linear`, `easeInQuad`, ...). A custom curve is written like in CSS: `"cubic-bezier(x1,y1,x2,y2)"`.
- The easing field gets a Custom curve... entry that opens a visual curve editor.
- New custom easing can be named and reused across the project (or across an extension)
Co-authored-by: Viktor Vovk <[email protected]>
- Point lights and spot lights now uses a realistic decay. It's not possible to find the exact same result as before, but you can tweak the intensity and the decay properties. Hemisphere lights, directional lights and ambient lights still work the same as before.
- The 3D particle emitter must be updated to the last version to handle the new 3D renderer world scale property.
- Ensure any 3D extension you use is also updated to the latest version.
- Add autocompletion with brackets access for structures and arrays.
- Improve error messages when brackets are empty.
- Fix autocompletion of variable parameters in function calls wrongly
suggesting objects and functions.
- Only display relevant variables in autocompletion according to their
type.
- Display an error when string, number or boolean variable is used and a
structure or an array is expected and the other way around.
A gameplay test plays a game: it presses keys, moves the mouse, touches the screen, then checks that what should happen actually happens. For example, if the coin is collected, the score goes up, the enemy hurts the player... Tests run in a preview of the game, usually much faster than real time. [Read more about them on this page](https://wiki.gdevelop.io/gdevelop5/interface/gameplay-tests/)
- When activated, the JSON of the project is saved with properties always in alphabetical order. Fields in events are also never omitted.
- The preference is controlled via `gdevelop-settings.yaml` (already read
by the IDE on project open):
```yaml
# gdevelop-settings.yaml
preferences:
canonicalEventSerialization: true
```
Only show in developer changelog
Co-authored-by: Viktor Vovk <[email protected]>
Complex expressions and formula will now be shown using multiple colors, like the rest of events. This allows to identify objects, numbers, strings in a long formula.
Verify that a behavior's custom action whose events Create the object
passed as parameter (FireBullet-style) leads to the newly created
instances being picked in the calling scope, while a previously created
instance of the same object remains untouched.
Don't show in changelog
- This is an advanced, experimental feature which is subject to changes. It's in most cases not useful, unless you have a large game or low end devices for which controlling memory usage is important. It's mostly useful to delay loading of large custom objects.
- Objects can be configured so that its resources are not loaded when the scene is loaded. Instead, you can use an action to manually load the resources used by it. When the loading is done (this can be checked using a condition), the object can then be created.
Be careful: if an object assets are not loaded, it will be broken when displayed on screen.
* Before, this was set as 0 even though displaying as empty in the
variablesList.
* Projects created before 5.6.267 will keep the same behavior (0 as default value for string variables) with an option to move to the new behavior (empty as default value) in the project properties dialog.
* Projects created from 5.6.267 will use the new default behavior (empty as default value)
https://github.com/user-attachments/assets/0d885c70-b68a-431f-8dcb-08e4e193b8a1