Releases: 4ian/GDevelop
5.2.176
💝 Improvements
- Animation names in a dropdown are not sorted by name anymore for consistency
- Add possibility to set Z offset when creating instances from external layout
- Allow to properly use variables/properties/parameters in brackets to access a structure variable
- This means expressions like
MyStructure[SomeIndexVariable]
will work properly for a structure ifSomeIndexVariable
is a string variable. Gdevelop now properly uses the type of the variable/property/parameter (to avoid considering what's inside the brackets as a number if it's a string). Remember to declare your variables in the variables editor so that you can use them in expressions.
- This means expressions like
- Allow to use the new variable syntax for groups
- You can write
MyObjectGroup.SomeVariable
in the expressions as long as all the objects of the groups have this variable declared in the objects variable editor.
- You can write
⚙️ Extensions, 🎨 assets and 🕹 examples
- [Community] [Movement animator] Fix the animation changes with GDevelop 5.2.172+ and update examples accordingly
- [Downhill bike] Fix game reset button to avoid to reload the game more than once
🐛 Bug fixes
- Fix a bug where mouse events where triggered on mobile, introducing unwanted interactions like vibrations.
- Fix adding multiple assets after navigating into a pack folder, correctly taking the assets into account.
- Fix Ctrl+Z closing project on Azerty keyboards
- Fix particle emitter rotation speed not being taken into account
- Fix completions in expressions not being case insensitive and limited for objects/variables/properties/parameters
- Fix shape painter drawing stars crashing games
- Fix usage of string properties and parameters wrongly interpreted as a number using the new simplified syntax
Developer changelog
- Deactivate PixiJS accessibility plugin in the Editor and Runtime.
- This isn't used and adds unnecessary elements in the Dom, which can cause crashes of the editor when Pixi tries to manipulate them.
5.2.175
👥 Introducing project collaboration for Cloud projects
Cloud projects can now be shared with other accounts, to easily collaborate on a game.
All users with a Startup subscription can share their projects with one or more collaborators having a Startup subscription too. 1 Guest (having no subscription, or an individual Silver or Gold subscription) can also be added on each project.
After your share a project, it will simply appear on the projects list of all collaborators you added. They will be able to open it and modify it.
Important
⚠️ Real time collaboration for projects is not ready yet. A warning will appear if you are trying to save a project that someone else modified, to avoid losing changes. In a team, ensure you don't work on the same time on a same project to avoid losing changes.
Even without this, this feature is useful to contribute on the same project without relying on manual, error prone solutions.
You can read more information about this new collaboration feature, as well as planned improvements on the documentation page.
🐇 Making life way easier for all: a new simplified syntax for using variables (and properties and parameters in extensions)
We added a new, simplified way to use variables in expressions. In addition to this, any variable being renamed in a variables editor will automatically update the rest of the project to use the new name of the variable (this is done automatically so you don't have to care about it).
- You can now simply write the name of the scene or global variable in an expression to use it:
1 + MyVariable
(instead of1 + Variable(MyVariable)
). - Objects can also have their variables accessed like this:
MyObject.MyVariable
(instead ofMyObject.Variable(MyVariable)
. This does not work for object groups yet. - This also works for properties inside functions of behaviors or custom objects. For example, you can write
Speed
instead ofObject.Behavior::PropertySpeed()
. - This syntax will also handle all types of variables without the need to write ToString. For example, you can now write
"Score: " + CoinsEarned
instead of"Score: " + ToString(Variable(CoinsEarned))
.
Important
This syntax will only work (and autocompletions will be shown) if you add the variable in the variables editor of the scene, the project or in the variables of the object. It's a good practice to always declare your variables here and give them a default value - do it to benefit from this new simplified syntax, which will make your formulas and expressions much more readable.
When you rename a variable in an editor, it will now rename the variables everywhere in the events of the project. This makes it much easier to change the name of a variable if you find a better one. Note that this works for "root" variables, but not for variables inside structures or arrays.
⚙️ Steamworks support
A new built-in extension adds support for Steamworks (thanks @arthuro555!). When you publish your game for Steam, this extension allows you to work with the Steam APIs:
- All Steamworks features require the steam client being opened. Steamworks features only work on PC builds and previews of the game.
- Steamworks features require a Steam App ID. For testing purposes, the Valve provided App ID 480 can be used, but most Steamworks features will be limited (e.g. you cannot create your own achievements)
🌟 New on the Asset Store: premium game templates
Premium game templates are being introduced in the Asset Store:
- They are fully-fledged games, with menu, options, character selection, leaderboard, credits, etc... They can be published on all platforms: desktop, web and mobile.
- They are easy to modify and adapt for your need.
- They have been built with quality in mind, by a GDevelop expert, using features and extensions reviewed by the GDevelop team.
- You can publish any number of games with this template, for personal or professional usage.
Note that community made paid game templates will also be introduced in the short term future on the asset store.
🎓 Classrooms team view
- Administrators with an education plan can now have a view of their team and its groups (classrooms)
- They can move students in different teams, for organisation purpose.
- The admin can also open the project of their students, in read-only, to check their progress and help them.
💝 Improvements
- The variables editor has been reworked so that it's more performant and comfortable to use:
- The editor is now way faster to open when lots of variables are present. It's also way faster when editing and when lots of variables are present.
- Variable names that have forbidden characters are automatically fixed, not breaking your workflow.
- Allow editing text variables in a separate window (more comfortable and faster)
- Add missing text parameter types for event-based extensions
- Replace "effect parameter" with "effect property" in the UI and documentation.
- Inline property fields for effect name and property.
- Add an expression, a condition and an action for objects center on Z axis
- Upgrade games 2D rendering engine (PixiJS) to version 7.3.0. This opens the path to multiple performance improvements (faster WebGL rendering, and then WebGPU rendering) as well as optimised resources loading in the future.
- Allow sprite animations to play backward with a negative speed scale.
- Improve documentation in the wiki of expressions by showing parameter in a human readable way.
- The editor now remembers collapsed state of object behaviors configuration panels.
- Improvement for mobile and small screens: the navigation bar of the homepage is now displayed at the bottom.
- Display a message if a subscription is valid but will expire in the future.
- The Debugger is now more resilient to errors (thanks @arthuro555!)
- Deprecate "Always" condition, which was considered misleading
- Improve autocomplete options height on mobile
⚙️ Extensions
Reviewed
- [Curved movement] Add a condition to check the number of loop
- [Platformer character animator] Handle 3D models
- [Button states and effects] New behaviors added that change the way a button looks based on the state of the button
- [Object Picking Tools] Add actions and conditions to pick objects with the highest or lowest value of an object variable
- [Values of multiple objects] Updated to include min/max z-order (Thanks @Uiles!)
- [Object Spawner] Updated to include a property for capacity
- [Marching squares] Fix the mode that only draws the visible part for portrait screens
- [3D object shake] Unify the behaviors for 3D models and 3D boxes and allow the shake to start automatically
- [Mouse pointer lock] Add handling of touches
- [Recolorizer] Avoid to process transparent pixels
- [ArrayTools] Update extension to v2 (thanks @arthuro555)
- Use scene variable parameters instead of string parameters (allows using nested arrays)
- Add actions/conditions for Global and Object variables
- Multiple UX/UI improvements (icon, categories, wordings)
- [InAppPurchase] Upgrade in-app-purchase version to use cordova-plugin-purchase:13.8.0, which uses Google Play Billing v5
- [FaceForward] Update to allow an angle offset (for images that don't face right)
Community
- New extension: SecretCode - An extension to trigger a condition when a sequence of keys have been pressed. Thanks @george-gca !
- New Extension: Maze Generator - Thanks @scottfergusson and @Luxon5 !
- [WithThreeJs] Upgrade to 1.0.0 - Thanks @PANDAKO-GitHub
- Supports built-in 3D
- Add support for lighting
- Support PixiJS v7.3.0
- [3D particle emitter] Handle layers and fix the size of particles that were 3 times too small
- [Top-down movement animator] Change the animation according to the top-down movement direction
- Misc. fixes to the submission pipeline - Thanks @st-Wook!
- Allow creating a new extension submission from a GitHub issue even when some quality checks fail
- New extension: GamePix SDK (thanks @caiiiycuk!)
🎨 Assets
Free
- 5 3D packs from Quaternius (Ships, Classical Buildings, Sushi Restaurant, Space Station, Animated Robots)
- 3D City Kit (Roads) by Kenney
- Tileable Ground Textures By Cethiel (Thanks @Entr0py404! )
- Objects have been simplified in the pack "Rolling Ball Pack".
Premium packs
- Add 11 premium volumes of audio and sound effects by Khron Studio: Elemental Spells Vol 1, Fantasy Magic Weapons Vol 1, Fight Fury Vol 1, Futuristic Weapons Vol 1, Interdimensional Interface Vol 1, Monster Library Vol 1, 2, 3, 4, Puzzle Games Vol 1, The Sound Of Survival Vol 1.
- Add a bundle: Bestiary Bundle by Khron Studio! Including Monsters Volumes 1, 2, 3, 4
- Add Dungeon Castle Mighty Bundle, Dungeon Castle Cave and Castle Dungeon Stone & Plank by Sortodedd
- Add City Tileset by ELV
- Add Puppet Farmer by João Baltieri
🕹 Examples
- [Button effects] Show new behaviors to make juicy buttons with animated responses to user input
- [Object Spawner] Learn how to use the Object Spawner extension to spawn waves of enemies in stages in this new example.
- [InAppPurchase] Update InAppPurchase example with latest extension version
- ...
5.2.174
Warning
This version was initially a patch for the version v5.2.173 but it also contains a few bugs. Please use the version v5.2.175.
5.2.173
Warning
This version contains a few bugs regarding tilemaps, videos and particle emitters. Please use the version v5.2.174.
5.2.172
💝 Improvements
- Reduce "layout shifts" in Events Sheet when adding events or modifying them
- Browsing the events sheet and editing events should be a bit more comfortable now.
🐛 Bug fixes
- Fix link in disabled events still processed internally
- This could generate infinite loop crashs even when a link is included as
a sub event of a disabled event.
- This could generate infinite loop crashs even when a link is included as
- Fix missing effect tab on some objects
- Fix a performance regression on scenes with a lot of sprites
- Fix scene editor window rectangle color
⚙️ Developer tools
- Add
clearCanvas
flag toRuntimeScene
for multi-scene rendering support (Thanks @malec-palec!)- This prop is passed to
PIXI.Renderer.render
asclear
option to support multi-scene rendering.
- This prop is passed to
5.2.171
Warning
This version contains known performance issues and bugs that are now fixed. Please prefer using v5.2.172 and above.
Important
Games being created with this version of GDevelop won't work on previous versions of GDevelop (as a new, cleaner version of some actions/conditions have been introduced internally). Make sure to backup your game so that you can go back to a previous version of GDevelop while this version is being tested.
Support for Unicode (emojis, accented characters, Arab, Cyrillic, Chinese, Korean, Japanese...) in object names, as well as in any name in the editor
Objects, groups, behaviors, extensions, and functions now have support for Unicode names.
- This allows to use emojis, accented characters, CJK languages and any word from any language to name anything in GDevelop. This should be very useful for Non-English speaking users.
- As this is still experimental, this must be activated in the preferences of GDevelop. This will be activated by default once this is proven to work without bugs.
Autosave for Cloud projects
A new autosave feature is automatically enabled for Cloud projects:
- Cloud projects are now autosaved on each game preview. Should the editor crash, it will help recover your project.
- The saved project is stored on the device for performance reasons.
Warning
If you're using GDevelop online on a public computer, this feature saves a copy of your project in the browser storage. To make sure no one can access it, make sure to log out the editor when you leave the computer.
Simplified list of actions/conditions (no more duplicated actions/conditions that are in common between objects)
- Actions, conditions and expressions related to opacity, size (width/height), scale, animations and other common features are now visible only once when you search for them in actions/conditions (instead of being shown once for every type of object supporting them). This reduces the risk of confusion for new or existing users, notably when multiple versions of the same action were returned by the search and was making it difficult to choose the proper one.
- Internally, this works thanks to default, built-in behaviors that are supported by the objects.
Important
Games being created with this version of GDevelop won't work on previous versions of GDevelop (as a new, cleaner version of actions/conditions have been introduced internally). Make sure to backup your game so that you can go back to a previous version of GDevelop while this version is being tested.
💝 Improvements
- Improvements for 3D:
- When resizing a 3D object with Shift pressed (or when resizing multiple objects), the depth of the object is also scaled proportionally This will make the authoring of 3D levels easier.
- Add a default 3D light on any new layer (this won't affect performance for 2D games).
- UX improvements:
- At project opening, reopen the tabs that were opened when it was closed.
- The editor will now automatically fix object, group, function, behavior, or property names when an incorrect one is entered - instead of displaying an error message and losing the name that was entered. Same for scenes, external events, external layouts and extension names in the project manager.
This is easier to understand and avoids breaking the creative workflow (for example: if you enter a space, it will be automatically removed without asking you to rewrite the entire name). - Improve asset store with asset pack search, filters and navigation.
- Simplify the context menus in the Events Sheet. Also display shortcuts for the most used commands, both in the menus and in the toolbar.
- Simplify confirmation of deletion of leaderboards by asking to type "delete" instead of the full leaderboard name.
- Filter autocompleted tags according to community visibility setting. This avoids to show tags that gives no results.
- Allow JavaScript extensions to use resource parameters.
- Deprecate actions that uses an expression for resources (instead, a field will be shown to select a resource, like in an object).
- Move some Tween actions in "Size" and "Visibility" groups.
- Improved autocompletions of behavior functions on object in expressions: the behavior icon is now shown.
- Add a shortcut (Cmd/Ctrl+G) to move selected events in a new group
⚙️ Extensions, 🎨 assets and 🕹 examples
Extensions
Reviewed
- [Sticker] Allow to destroy stuck objects with their parent
- [Screen wrap] Fix physics version that had copy/paste errors from non-physics version (thanks @MelonDev!)
- [Flash] Removed deprecated lifecycle function
- [Object Slicer] Fix bug in parameter name for condition to delete object
- [Flash object] Add ability to flash color tint, object effect, and opacity (fade)
- Added FlashColor, FlashEffect, and FlashOpacity behaviors
- When "Flash object" action is used during a pre-existing flash, simply extend the duration of the flashing. Previously, it always performed "hide object", potentially causing the object to be hidden too much. (Thanks @Entr0py404!)
- [Rectangle Movement] Update: Add option to select the position on the border (inside, center, outside)
Community
- [Advanced HTTP] A new extension for creating advanced HTTP requests, with FormData/JSON requests, Custom Headers, CORS Bypass, advanced response handling, and more! (thanks @arthuro555!)
- [3D particle emitter] This add a new object that display a large number of particles to create visual effects in 3D.
- New extension: SelectionTools
- This provides functionality to draw different types of selections in order to select object instances present on the scene.
- This allows to do a rectangular selection, a polygonal selection, or a lasso selection.
- This extension is perfect to let the player selects units or items on the screen.
- [3D tween] Smoothly animate scale and rotation of 3d models
Assets
- Add a new premium 3D pack: KayKit Adventurers Character by Kay Lousberg
- Add a new premium 3D pack: KayKit Dungeon Remastered by Kay Lousberg
- Add Mega Bundle By Reactocore
- Add a panel sprite object in the free Western RPG pack.
- Add multiple 9-patch objects for the terrain to the Pixel Adventure Pack.
Examples
- [3D Lane Runner] Add leaderboards
- [3D Car Coin Hunt] Add leaderboards
- [Object Slicer] Fix a bug in parameter name in the condition to delete an object
- [Load Testing] Add ability to drag red hero and to change scenes repeatedly.
- [Flash Object] Learn how to use the "Flash object" extension
🐛 Bug fixes
- Fix project file name when creating a new project.
- Fix effects on objects composing custom objects that weren't displayed at runtime.
- Fix 3D filters making 2D games crash.
- Fix actions disappearing when wrongly translated with the same name in a non english language translation
- Fix "Share your extension" not redirecting to the proper page on the documentation (Thanks @st-Wook!)
- Fix unused resources clean up to keep resources used in effects.
- Fix missing tags for installed extensions in the behavior list.
- Fix layers deletion when instances are in several external layouts.
- Fix the "Select instances on scene" menu action in external layouts.
- Fix the information icon color in the new behavior dialog.
- Show warning and revert to automatic collision mask if deleting the last frame of a sprite object.
- No longer automatically fill the behavior parameter from "activate behavior" actions when there are multiple choices
🛠 Internal changes (for developers)
- Create a devcontainer to do some basic development task via GitHub codespaces.
5.2.170
5.2.169
💝 Improvements
- Prevent saving in the same folder as GDevelop's executable
- Some users have mentioned their project disappear after a GDevelop's update. This is a safe-guard to avoid projects from being saved in the executable folder, as it gets deleted on every update.
- Rework the asset store to show bundles and owned packs first
- Also slightly improve the size of dialogs on large screens
🐛 Bug fixes
- Fix multiple flaws in collision masks & points management:
- Adding a new sprite in a new animation will now correctly copy points and collision masks defined in others if "sharing with all animations" is toggled
- Automatic collision mask will now be automatically applied when adding multiple sprites, or when editing with piskel
- Collision mask will be applied correctly for new sprites, when the default (full image mask) is set
- Fix a bug where renaming project elements wouldn't work when an action is using the default layer
Note
Thanks Rusher_go, H0ndred and @VegeTato for your involvement regarding collision masks usage!
⚙️ Extensions
- [Reviewed] [FPS] Update: Provide more accurate values for frames per second
- Improved FPS accuracy by using a sliding window (thanks @arthuro555)
- [Community] [CheatCode] New extension: Adds a condition to check if a specific cheat code was entered with the keyboard
Thanks to @ayushbhardwas
🎨 Assets
Free asset packs
By Reactorcore:
Premium asset packs
By Barely Apes:
By Reactorcore:
- Muzzle Effects
- Base Modules
- Big Weaponry
- Core Machines
- Fire Smoke Animations
- Foxwing Starfighter
- Gore Blood Gibs
- Lamps
- Melee Bludgeon
- Motocross Bike
- Nature Aquatic
- Nature Surface
- Orbital Cannon
- Plasma Electric Animations
- Ragdoll Human
- Rocket Thruster Animations
- Rough Props
- Smooth Civilian Vehicles
- Smooth Physics Props
- Turbojet Fighter
- Vehicles Aerial
- Vehicle Dropship
- Vehicles Ground
- Vehicle Tank
🕹 Examples
- [load-testing] New example: Test how GDevelop performs under load
- Create thousands of objects to see how they impact the performance of the game.
5.2.168
💝 Improvements
- Show extensions from the store at the end of the behavior list, with information about their authors.
- Improve the effects UI by separating 2D and 3D effects in 2 different lists.
- Various improvements to the leaderboards and score handling:
- Leaderboards will now display the score of the player, if a score was just sent before displaying the leaderboard.
- If the score is being sent, the leaderboard will wait for it to be sent before showing the leaderboard.
- Important change: a player name can now be empty when a score is sent. In this case, the leaderboard will auto-generate a name.
- Leaderboard administration was improved to allow to customise the prefix used to generate automatically player names (when no name is entered by the player). You can also now choose to disallow any custom player name to prevent abuse (in this case, all non-connected player names will be auto-generated)
- Allow to use custom CSS to fully customize the leaderboard. This is only available for business users (reach out if you need this). Play with it here.
- Add possibility to insert a function parameter when editing an extension's function
- Enable search and replace in For each object events and Javascript events
⚙️ Extensions
Reviewed
- [Curved Movement] The extension is now reviewed!
- Fix the action to append paths
- Add an action to duplicate a path.
- Add expressions for the origin position of a speed-based movement
- [Object stack] Add quality of life features
- Add an action to check an object at an exact height
- Add an action to insert the content of a stack into another stack
- Add an operator to the stack height condition
Community
- [Slot System] Slot system for inventories and board games (Thanks @infokub)
- [Audio Context] Procedural audio generation (Thanks @aliustaoglu!)
- [Countdown Timer] Provides a countdown timer (Thanks to @cvault-g)
🎨 Assets
New premium asset packs:
- Pixel Lab Mayhem by SlumberParty_Games
- Pixel Horror Tales of the Boarding School by SlumberParty_Games
- Dungeon castle decor by sortodedd
- Gamer Girl Character by Barely Apes
🕹 Examples
- [3D Racing game] Allow to build tracks from tiles
- Add 3 new levels with leaderboards.
- [3D Lane Runner] A 3D lane runner game
- A 3D lane runner game that shows how to use the platformer behavior in a 3D space.
- [3D Car Coin Hunt] A top-down 3D racing game
- A top-down 3D racing game with 360° controls where players chase coins that are spread in a city.
- [Smoothy] Zuma-like example
🐛 Bug fixes
- Fix automatic collision mask not working when adding a new sprite
- Fix options in Points Editor disappearing when automatic collision mask is activated
- Fix Safari not being able to open .glb files on iPad/iPhone
- Fix: Avoid purchasing twice the same asset pack
- Fix keyboard undesired openings on mobile
- Prevent installing too many assets at a time
- Installing more than 100 assets from a pack can cause failures on some low connections
🛠 Internal changes (for developers)
- Remove unnecessary dependencies in the Editor and GDJS (Thanks @st-Wook!)
5.2.167
💝 Improvements
Improved scene editor on mobile
The panels of the scene editor are now accessible from a bottom bar. You can now easily swipe up and down the panel without any lags.
Note
Thanks @Jurfix, @arthuro555, @Silver-Streak, Flidude, ZeroX4, Coder75 and H0ndred for their feedbacks about this feature.
Automatic collision mask
Sprites now have an option to calculate their collision mask automatically, based on the first image of their first animation.
This option is enabled by default for all new sprites, and can be disabled to create a custom collision mask like before.
When enabled, the mask will adapt automatically when the first image is updated.
Other improvements
- Add possibility to subscribe to a startup plan from the profile
- Add a listing of actions and conditions in community extension reference pages on the documentation.
⚙️ Extensions
- [Reviewed] New extension: Share extension
- Take advantage of the player device built-in sharing options to share your own content.
- [Community] New extension: Character game feel (Thanks @VegeTato!)
- Give your platformer character game feel animations (squash and stretch)
- [Community] [Make it rain] Updated to V1.0.6 (Thanks @VegeTato!)
- Lots of bugs fixed
🎨 Assets
New premium asset packs
By GDevelop:
- Salad Ninja
- Placeholder Top View
- Placeholder Side View
- Cyberpunk Bundle
- Sci-Fi Bundle
- Pixel Dark Fantasy Bundle
- GDevelop Mega Bundle
By Slumber Party Games:
By Reactorcore:
New free asset packs
By Kenney:
- 3D Mini Dungeon
- 3D Cars
- 3D Platformer Kit
- 3D Pirate Pack
- 3D Food
- 3D Medieval Hexagon Pack
- 3D Commercial City
- 3D Suburban City
- 3D Furniture
By Quaternius:
- 3D Animated Characters
- 3D Animated Animals
- 3D Animated Dinosaurs
- 3D Fantasy RTS
- 3D Platformer Pack
- 3D Farm Buildings
- 3D Medieval Village
- 3D Colorful Monsters
- 3D Rocks and Trees
By Elv:
Updates
- Add new monsters into RPG Monster packs 1, 2 and 3 (by Elv)
Examples
- [3D City Builder] Fix 3D model colors
- Remove deprecated example "Racing Game"
🐛 Bug fixes
- Fix the editor hanging when opening a scene with hundreds of instances of 3D model objects
- This should also speed up project opening for projects with lots of instances of 3D model objects
- Fix SetPosition action that was missing parenthesis creating math errors
- Fix autofocus of searchbar on tablets in landscape
- Fix images selectors not updating on Box 3D editor after an image has been created with Piskel
🛠 Internal changes (for developers)
- Fix Node.js 18 compatibility, upgrade to create-react-app v5 and make mac build universal
- Upgrade CMake minimum version and improve CMake code (Thanks @st-Wook!)
- Move event-based extension metadata generation from newIDE to GDJS