This is a testing version that will be made available as an auto-update if no major issues are found.
Thanks to our many contributors that brought new features, capabilities, examples and bug fixes!
If you want to take part in GDevelop, read this page on the wiki.
✨ New features
-
Add Array and Boolean variables (Thanks @arthuro555!)
- In the list of variables (of the scene, of an object or global variables), you can now specify the type of the variable: number, text, boolean, array or structure.
- Boolean variables can be "true" or "false. They can have their values checked with conditions, and updated with actions. They are a good way to store information about if something is enabled or not (is an item equipped, is something selected, etc...).
- Array variables can contain multiple values, indexed by a number. New values, including any kind of variables, can be appended to an array during the game. Arrays can also have a value removed, and using the event "For each child variable", you can run conditions and actions for each value that is present in the array.
- Boolean and arrays are also supported when you transform a variable from or to the JSON format - which is ideal to send web requests, read configuration files or store any kind of arbitrary data.
- Finally, note that array values can themselves be arrays, structures or any variable. This can be useful to construct advanced logic. You can also access arrays (as well as any variable) from JavaScript code block events.
-
Improvements to the Top-down movement behavior (Thanks @D8H!):
- Add "simulate stick" action to the Top-down movement behavior
- This allows to easily add joystick control to an object having the "Top-down Movement" behavior, by using this with the expressions from the Gamepad extension.
- Add the "movement angle offset" property to the Top-down movement behavior
- This is useful for the Isometry viewpoint, so that when player press "up", the movement is going "up" on the screen (rather than diagonally).
- Add "simulate stick" action to the Top-down movement behavior
-
Allow audio sounds and musics to be preloaded (Thanks @arthuro555!)
- When marked as preloaded in the Resources editor, the audio file is loaded in memory and ready to play. When played using an action, it will start almost immediately.
- There are also new actions to unload some or all audio files from memory. This can be useful when switching between levels in large games.
-
Add support for spatial sounds (Thanks @arthuro555!)
- This allows to set the position of a sound in a 3D space. The stereo system of the device is used to simulate the position of the sound and to give the impression that the sound is located somewhere around the player.
-
The isometric game starter was replaced with a brand new example (Thanks Mickael Hoarau!)
💝 Improvements
- Editor speed improvements:
- Improve preview speed by 10%-20%
- Improve speed of auto-save/save/load of projects. Autosave is 70% faster, saving a project 30% faster, preview slighlty faster to start.
- Add support for private functions for extensions made in the editor (Thanks @arthuro555!)
- Actions/conditions/expressions made with events in the editor can be marked "private": they can be used inside the extension (or inside the behavior), but can't be used in the scene events sheet.
- This is useful to share some "internal" logic that you don't want to make available from the events sheet.
- Allow to move selection in the scene editor fast with arrow keys + Shift key pressed (Thanks @Bouh!)
- New section for guides, documentation and tutorials on start page. (Thanks @Bouh!)
- Add AAC to the list of supported audio files when choosing an audio file.
- Video object is now not experimental anymore (Thanks @Bouh!)
- File must be a .mp4 format encoded with H264 for the video and AAC for the audio.
- Before a video can be played, you have to ensure that the player interacted first with your game.
- You can now enter numbers when accessing to a variable child with brackets notation (e.g:
MyVariable[2]
). This is useful for arrays. - Use Nord as the default theme when the system settings are set to a dark theme, including on the web-app (Thanks @arthuro555!)
- Add scale support for Tweens for Tiled sprite objects (Thanks @Bouh!)
- Add a warning shown when exporting a game with a default package name (Thanks @arthuro555!)
- Fixed some games installed on Windows erasing another game (Thanks @arthuro555!)
- Make sure to properly fill the "package name" in your game properties.
- Make the export dialog remember the last export dialog for a project
- Many thanks to @Entr0py404 for bundling more asset packs in the Asset Store!
🐛 Bug fixes
- Fix compilation on iOS of exported games failing.
- This was because an SDK related to AdMob was wrongly included and would trigger a compiler error in XCode.
- Fix hitboxes of some objects not properly updated when some objects were resized.
- This includes BBText, Text, Tilemap, Tiled Sprite, Panel Sprite and the Video objects.
- Also add support for tweening the scale of a Panel Sprite object.
- Fix collision (and raycast) not always triggered with sprite having a non default center.
- Fix animation of rotated/flipped tiles not working in the Tilemap object
- Fix events not working on objects just created in extensions made in the editor (Thanks @arthuro555!)
- Fix slowness in the points and collision masks editor for objects with lots of images
- Fix a rendering issue making objects sometimes invisible/not shown in the scene editor
- Fix mouse wheel handling in Firefox, in the editor and in games (Thanks @Bouh!)
- Fix "Parse JSON from API" example (Thanks @arthuro555!)
- Fix object name not being correctly cleared in the object group editor (Thanks @arthuro555!)
- Fix errors in expressions from the gamepad example (Thanks @Bouh!)
- Fix lights shown during one frame at a wrong position after their creation (Thanks @HarsimranVirk!)
- Fix the expression to get the particles count of a particle emitter (Thanks @Bouh!)
🛠 Internal changes (for developers)
- Build the Core with WebAssembly even in production
- This should speed up CPU intensive operations (saving/loading/preview).
- WebAssembly is now supported by all modern browsers, including on iOS and Android.
- Add new functions to declare expressions, conditions and actions at the same time:
addExpressionAndCondition
andaddExpressionAndConditionAndAction
. Please use these in priority when working on new (or reworking existing) extensions. - Rework path finding to use RBush instead of HSHG (Thanks @D8H!)
- Also add many tests to check the good working of the pathfinding in multiple situations.
- Switch to RapidJSON for faster serialization inside the Core.
- Add more tests on the platformer extension (Thanks @D8H!): jumping to grab platforms or ladders, walking on platforms, performance.
- Improve overall GDJS typing (Thanks @arthuro555!)
- Allow extensions made in the editor to specify dependencies on Cordova libraries or NPM packages (Thanks @arthuro555!)
- Add more tests for the Platformer extension (Thanks @D8H!)