Skip to content

Releases: 4ian/GDevelop

5.4.213

17 Sep 15:21
6cda5d0
Compare
Choose a tag to compare

💝 Improvements

  • You can now change Opacity & Flip of instances directly in the Properties Panel:
    • This allows playing around with instances directly on the canvas instead of relying on the actions to flip or change opacity and needing to start a preview.
      Flip instance in editor
  • Custom object layouting support: Instances in a custom object can now use the anchor behavior and, when used in another scene (or another custom object), the custom object will dynamically adapt the position of its instances according to its size.
  • The teacher educational resources list have been updated to show the upcoming lessons we're preparing.
  • Various Tilemap improvements:
    • Improve performance display when painting tiles,
    • Allow atlas size to be something else than a tile size multiple and ignore last column and row,
    • Display error message only when the the tile size is greater than the atlas image,
    • Add object name in actions and conditions.

🐛 Bug fixes

  • Tilemap fixes:
    • Fix tiles preview when tilemap instance is rotated
    • Do not crash preview if tilemap object badly configured
  • Fix a crash in the new behavior dialog (the crash happened when the extensions didn't load as expected).
  • Fix hot reload of object variables in object instances.
  • Fix store UI (wrong centering of items)

⚙️ Extensions

  • [Reviewed] [Rolling counter] Smoothly change a counter value of a text object (Thanks @Jurfix!)

🕹 Examples

🕹 Premium Game Templates

  • [Cubic world] Fix fonts

🛠 Internal changes (for developers)

  • Remove warnings during C++ emscripten compilation

5.4.212

12 Sep 16:03
1bce13f
Compare
Choose a tag to compare

🐛 Bug fixes

  • Fix tilemap object edge cases causing crashes
  • Fix scrolling an input with the mouse wheel even if it was not focused

⚙️ Extensions

Reviewed

  • [3D object shake] Fix the translation on Z

Community

  • [3D tween] Add a tween action to tint 3D models - Thanks @Jurfix

🕹 Premium Game Templates

  • Add a new premium game template: Land Maker, a game like Mario Maker! (by @VegeTato)

🛠 Internal changes (for developers)

  • Catch callback functions of Firebase preventing JS crashes
  • Catch errors when handling electron browser window preventing JS crashes

5.4.211

09 Sep 13:43
6a7c3da
Compare
Choose a tag to compare

🐛 Bug fixes

  • Fix instance number properties which could not be saved to 0
    • Also add back the ability to use keyboard arrows and mouse wheel to control the value precisely
  • Show a loading texture when a Panel Sprite is loading, instead of an error texture
  • Fix crash in the scene editor when changing the Panel Sprite tiled/stretched option
  • Fix checkered background in collision and points editor
  • Fix exception when changing an external tilemap file after it was initially missing

🛠 Internal changes (for developers)

  • Avoid unnecessary recompilation of many C++ files at each build

5.4.210

05 Sep 14:33
e9b4de2
Compare
Choose a tag to compare

Warning

This version has a known issue where the number 0 could not be used in the instance properties panel.
Please use the version 5.4.211 instead.

🎮 Multiplayer games improvements: Play as Guest + more

image
Play Stranded on a Raft on gd.games

  • Introducing Play as Guest: players can now join as a "guest" player, without having sign up anymore. This should increase the number of players that are willing to try your multiplayer games. Anyone can join a game in a few seconds!
  • Performance improvements with a new automatic "host migration" when the host player leaves:
    • The host of a multiplayer game is now automatically migrated to a new one, picked from the list of players (the one with the lowest ping).
    • A new condition "Is host migrating" is now available - in case you want to do something special in the gamewhile the migration happens. This can take up to a few seconds. If your game has no interactions between players, you can just do nothing. Otherwise, you may want to pause the game while the host is changing.
    • A new action is available to configure the lobby game to end instead of migrating when the host leaves. This is useful if you prefer the host not changing during your game.
  • Allow changing the synchronization rate of objects:
    • The default "sync rate" of objects is set to 30 times per second - which is enough for most games.
    • A new action can be used to update this value depending on the type of your game, at the cost of bandwidth. Fast-paced competitive? Go for 60. Slow turn-based game? 5 or 10 is probably enough.

Read more about all multiplayer features on the GDevelop Multiplayer documentation page.

➕ Formulas in the instance properties

image

You can now write simple math formula in the property fields of an instance: for example, you can enter 100 + 50 or 100 + 70/2 or ToDeg(sin(2.3)) in the instance editor fields. This is helpful when you need to precisely set up the position of instances in a menu, UI or level.

🪙 gd.games ads earnings (Revenue Sharing) in your game dashboard

image

You can now see the earnings of the games you've published on gd.games at the top of your Games dashboard.
You can either cash out that amount if you reach a certain threshold, or exchange your balance (at a preferential rate) for GDevelop credits that can be used on the asset store.

Read more about revenue sharing on this forum thread.

🛠️ Work-in-progress, experimental visual editor for custom objects ("prefabs")

image

An experimental, still work-in-progress, editor to build objects inside GDevelop - from small, reusable UI objects to larger parts of your game - is being finalized.

We're still improving the anchor behavior so that it can be used to position dynamically objects inside a Custom Object (which will be perfect for UI elements like dialogs, popups...). A bunch of bugs and limitations, listed below, are being worked on, so we only recommend advanced users to try this (and if you do, please give feedback on Discord "engine-development" channel).

List of limitations or bugs being worked on:

  • Effects should be disabled for layers
  • Hot reloading mostly works but needs some extra work
  • Add a "Extract as a custom object ("prefab")" when selecting instances in a scene.
  • Ensure physics and pathfinding behaviors work properly.
  • New expressions to translate coordinates from the parent to the local custom object.
  • Ensure deletion of a custom object is gracefully handled by the editor

👥 New interface for teachers to manage students and other teachers

Administrators and teachers having a GDevelop for Education subscription can now create new anonymous accounts for students, invite new teachers and enable or disable user accounts.

Read more about administration of student/teachers on the documentation page.

💝 Improvements

  • Add a new expression to get Spine point attachments positions (Thanks @f0nar!)
  • Various Tilemap improvements:
    • Improved Tilemap collision precision.
    • Improved Tilemap preview rendering performance
    • When using a mouse, the middle click can be used to pan the view when painting on a Tilemap.
  • Allow custom objects ("prefabs") to use the anchor behavior on their children.
  • Allow centering objects with the anchor behavior.
  • Update AdMob banner so they cover part of the game screen instead of reducing it (Thanks @devgiordane!)
    • In most games, it's better to design the game with the size of the ad banner in mind - which will cover either part of the top or bottom of the screen. Previously, the game size was reduced which was making it difficult to properly design a game and would introduce bad looking black borders.
  • Add automated crash reporting from previews:
    • This will allow to detect any bugs or crash in the game engine without relying on manual reports from users on GitHub. Note that exceptions and errors in JavaScript code blocks won't be reported. This can be deactivated in preferences if you prefer not to have GDevelop send these crash reports at all.
  • Add an action to change a Text object font
  • Add a default shortcut for adding a comment in the Events Sheet (Shift+C)
  • Physics engine: merge the 2 world scale properties into one
  • Add possibility to drop variable after last item in the variables editor

🐛 Bug fixes

  • Fix text input not properly deleted when used in a Custom Object
  • Fix memory clearing/leak when a scene is paused or stopped
  • Fix default parameters from being able allowed to be dragged and dropped
  • Fix default values for the Adjustement effect
  • Fix update notifications translations on Desktop app
  • Fix hot-reload for variables
  • Fix issues with undo/redo when paintaing on a tilemap
  • Remove effects tab (and actions and conditions) wrongly shown for Tilemap objects
  • Avoid exponential loop when scrolling out of view on the Scene editor
  • Hide a duplicated expression to get the text of a text input.
    • Hide required behavior properties in the object editor

⚙️ Extensions

Reviewed

  • [Multitouch joystick] Fix the dead zone for the Force expressions
  • [Boids] Fix the "activate behavior" action and handle collision layers
  • [Linear movement] Add a behavior to move objects ahead according to their angle. (Thanks @Jurfix)
  • [Fire bullet] Fix variance in multi-shots being used twice
  • [3D object shake] Fix shakes with an easing longer than the duration
  • [Autotyping] Unify the 3 behaviors
  • [3rd person camera] Use the object center instead of the origin
  • [Swipe gesture] Use extension variables

Community

  • [Animation System] Fixed old broken variables. (Thanks @VegeTato)
  • [3D grid jump] Move objects by jumping on a grid like a frog. (Thanks @Jurfix)

🕹 Examples

  • [3D road crosser] New example! A Frogger-like game, similar to the mobile game "Crossy Road" (Thanks @Jurfix for building this game)
  • [3D car coin hunt] Fix the dead zone for mobile controls
  • [Arrow Fight] Extensive improvements to this multiplayer example
    • Added bots with randomized movements that only spawn while there is 1 player in the lobby.
    • Now when players join a game that has bots in it, the bots will be removed and the players will play together immediately.
    • Changed the way the pause "leave game" button works, now only the player who presses the button will exit the game.
    • Removed the old drop out handling where players disconnecting would kick everyone from the game.
    • Tweaked how the score messages are changed, now only the host changes the text. (Prevents conflicts between scores)
    • Swapped out the level previously made with tiled sprites for a tilemap object instead.
  • [Music Jukebox] New example by Perri "TeckGeck" T.F. (TKGK Interactive)

🕹 Premium Game Templates

🎨 Assets

Free asset packs by Quaternius:

5.4.209

21 Aug 15:16
Compare
Choose a tag to compare

💝 Improvements

  • Add "Quick Customization" in the Get Started page: choose a starter game and quickly replace objects and tweak their behaviors. The game is then automatically published so it can be shared: this is perfect for new users to get a taste of how a game works and make their own remix of a game before going further.

Quickly customize a game

  • Add an option in objects context menu to quickly swap assets of Sprites and 3D models, using the asset store:
    • This is perfect for quickly prototyping or trying new game art,
    • Animation of the object that are missing in the asset are replaced by a copy of the 1st asset animation. 3D model volume is adjusted to stay the same while keeping asset proportions.
  • Allow hot-reloading of 3D models (Thanks @arthuro555!)
  • Display the number of tilemap objects available in premium asset packs before purchase.
  • Allow drag and drop in the extension function parameter editor

🐛 Bug fixes

  • Fix having to select another function to reopen the same function on mobile in the extension editor
  • Fix extension's behavior and object properties lists not scrolling on mobile

⚙️ Extensions

Reviewed

  • [Physics car] New behavior that simulate a top down car motion (using the Physics Engine behavior)
  • [3rd person camera] Fix the offset to rotate with the camera - it allows to keep the player near the bottom of the screen or a bit on the side like in some 3rd person shooters.

🎨 Assets

  • [City Tileset] Update: Add Tilemap object with the whole tileset

🕹 Examples

  • [Arrow Fight] Update to allow mid-game join
  • [3D car coin hunt] Use the new behavior for the car movement
  • [3D car coin hunt] Make the controls independent from the car size
  • [3D lane runner] Use custom extensions to organize events

🕹 Premium Game Templates

  • Update Cubic World game template by Jurfix:
    • The method of saving for world information has been changed for heavy objects (air and cubes), this is due to the browser limitation on the amount of information saved in Local Storage (5 MB), this problem was solved by creating a new saving extension that uses IndexedDB, now you can save an almost unlimited amount of data.
    • For Apple mobile devices, Long Tap is now disabled, which prevented the destruction of cubes. (You can see how this is implemented in the Mobile Control Helper extension)
    • Bug fixes:
      • Now cubes cannot be placed inside the player, which led to getting stuck or falling out of the world.
      • The buttons in the menu and pause are no longer distorted when turning the screen on mobile devices.
  • Add a new premium game template: Card Game by VegeTato

🛠 Internal changes (for developers)

  • Replace electron-is with electron-is-dev (Thanks @arthuro555!)
  • Allow custom objects and behaviors to use resources from properties
  • Fix GDevelop project files so they are versioned with the same version as the editor (Thanks @f0nar!)
  • Avoid to use an intermediate ThreeGroup for custom objects in the editor
    • 2D custom objects displayed in the editor now also use the origin point of their 1st child unless an hidden property force a location.

5.4.208

05 Aug 09:57
d082d4f
Compare
Choose a tag to compare

🐛 Bug fixes

  • Fix a crash when renaming a child variable of a Structure in the Variables editor.
  • Fix the sentence for the Tilemap Tile id action/condition
  • Fix child object internal recycling in custom objects.

⚙️ Extensions

  • [Community] [WithThreeJs] Support multiplayer behavior

5.4.207

31 Jul 13:45
242fc49
Compare
Choose a tag to compare

🖌️ Build your 2D levels with tiles (Tilemaps) directly inside GDevelop

A new, built-in Tilemap object is now available in GDevelop. It's perfect to quickly build levels with tiles, without leaving GDevelop or requiring setup from an external editor. Tilemaps are quick to render and perfect for displaying big levels without losing in performance.

You can directly configure it with an image (called Tileset, or Atlas), drag it on the scene then paint tiles after selecting one in the properties panel. You can also define which tiles are "solid" so that they are considered as a platform if you use the "Platform" behavior (or Collision conditions).

demo_tilemap.mov

Read more on the Tilemap documentation page.

This is a new feature that will be improved in the future: open-source contributors are welcome to add tools (flood fill, 9-patch rectangle), multiple tiles selection for painting or auto-tiling.

🎮 Multiplayer improvements

  • Lobby start is now more reliable (will wait for everyone to be connected to the host to start the game) and faster. If a player can't connect, the game will still start after a bit of time.
  • Lobbies can now be joined after the game is started, if defined as such in the lobbies section of the game dashboard (which will be on by default for new games). Actions & conditions to check when a new player joins are available if needed.
demo_join_game.mp4

👪 Define and modify variable for Object Groups

Object Groups allow to share the same events for multiple objects. While it's convenient, using variables with groups was painful because variables had to be added to every single object of the group before they could be used.

You can now open the group and see the variables that are in common in all objects of the group. Adding a variable to a group will add the variable to all objects. Adding an object to an existing group will ensure all variables of the group are also applied on the object.

Group variables

Finally, you can also now directly open group variables when editing an action or condition using a variable. This is convenient to quickly add a variable to a group while you're building your game logic.
Read more on the documentation page about Object Groups.

💝 Other improvements

  • Update the AdMob extension to support Play Services v23.
  • Add an action to read a directory to the filesystem actions (thanks @arthuro555!).
  • Show the top of the 1st page when the asset store search changes.
  • Add a dialog to choose between 2D and 3D when creating a custom object.
  • Declare shortcut CTRL+D to duplicate in object list (Thanks @osmaneTKT!)
    • Also applies the same shortcuts to the objects groups list.
  • Add icons on tabs.
  • Translate properly the messages about GDevelop editor's updates.
  • Allow to drag and drop custom object properties and filter them.
  • Improve raycast precision when the distance is 0
  • Add Star History to bottom of README (thanks @tristanbob!)
  • Added new condition to check the zoom of a camera of a layer (thanks @tristanbob!)
  • Remove an error about object name collision in object variable fields
  • Add a tolerance parameter on the "linear velocity angle" condition
  • Make object behavior autocompletion to be case insensitive when typing in a formula in an event.
  • Add a distraction-free mode for students in education plans.
  • Add animation autocompletion for object groups.

🛠️ Work-in-progress, experimental visual editor for custom objects

A new, work-in-progress, visual editor for custom objects (aka "prefabs"/"templates") is being finalized. More information about it will be available in the next releases.

⚠️ These are the features still in progress:

  • Properly handle effects (disable 3D effects) for layers
  • Handle hot reloading properly
  • Avoid duplicating the configuration of the custom object inside each object created from it.
  • Add a "Extract as a custom object ("prefab")" when selecting instances in a scene.
  • Ensure physics and pathfinding behaviors work properly.
  • New expressions to translate coordinates from the parent to the local custom object.
  • Ensure deletion of a custom object is gracefully handled by the editor

🐛 Bug fixes

  • Fix initialization of local array variables
  • Fix errors when reading source files for autocompletions in JS events
  • Fix message asking to check Apple/Google account for subscription not always shown
  • Fix checkbox to disable ads not displayed properly after being changed
    • Also address some part of the game dashboard that could be outdated after changes
  • Fix opening an example from a link or command line argument
    • An example opened from a link (typically, from the website) will now properly ask for the location where to save it, and will handle leaderboards and multiplayer.
  • Fix particle emitter blending mode action.
  • Fix changing disabled/read only state of text input.
  • Avoid children variables to collapse in the editor after an undo.
  • Fix to make platformer wall collisions with tile maps more precise.
  • Fix some errors at cloud project creation.
  • Fix global object instances not being rendered on the scene editor.
  • Fix a crash in the object group editor of events-functions.
  • Fix some languages names in the Language selector.
  • Fix: correctly update version numbers after extension update.
  • Fix a regression on the virtual joystick position in the editor.

⚙️ Extensions

  • [Reviewed] [3D particle] Fix to avoid particles from keep displaying when the last instance is deleted
  • [Reviewed] [CrazyGamesAdApi] Auto-load the CrazyGames extension when the domain is part of crazygames.com
  • [Reviewed] [InAppPurchase] Add support for Google Play Billing library 7.0.0
  • [Community] [3D text] Move to the "Text" category

🎨 Assets

New free asset packs

🕹 Examples

  • [Multiplayer Platformer Pickup] Simplify platformer pickup so it handles mid-game join
  • [AdMob] Update to use correct App Open ID
  • [InAppPurchase] Update example with the latest 0.0.6 InAppPurchase extension
  • [Multiplayer Bounce Puzzle Game] Updates:
    • Desynchronized the draggable behavior to prevent players from trying to drag objects they don't own.
    • Added new cursors and animations for mobile game.
    • Now showing both cursor and hiding the player's own native cursor.
    • Fixed layering issue that made cursors go behind UI buttons.
  • [Multiplayer Arrow Fight Game] Updates:
    • Fixed pause button, it was "set to true" and needed to be changed to toggle in order to be turned off once the game was paused.
    • Removed the multiplayer behavior from the pause text and button, the behavior was conflicting with the tween events and weren't needed.
  • [Multiplayer Coop Platformer Game] Updates:
    • Desynchronized the smooth camera behavior so each player's camera works independently.
    • Added player usernames above player objects.
    • Added mobile controls.
    • Removed the multiplayer behavior from the pause text and button, the behavior was conflicting with the tween events and weren't needed.

🕹 Premium Game Templates

New templates

Updates

  • [Roguelite]
    • Fixed a bug where the player can enter his username as empty spaces.
    • Fixed a bug where the player can enter more than 10 characters as his username.
    • Update to use the new unified variable system.
  • [Online Multiplayer using THNK] Updates:
    • Remade some of the mechanics/events to use even much fewer events, more user-friendly and easy to understand.
    • Grouped events even more, to make the events cleaner and easier to understand.
    • Deleted (Point&Orbit) extension, and replaced its actions with Put around & Rotate actions.
    • Update to use the new unified variable system.
  • [Impostor Alert]
    • Use public and private THNK lobbies
    • Update to use the new unified variable system.
  • [Fighting] Update to use the new unified variable system.
  • [Real Time Strategy] Various updates.
  • [Crafting Template] Various updates.

🛠 Internal changes (for developers)

  • Remove dead code (TinyXml and Shifty)
  • Fix not building peerjs for web runtime
  • Fix actions that set boolean declared with addExpressionAndConditionAndAction

5.4.206

30 Jul 10:43
e445ff7
Compare
Choose a tag to compare

Warning

This version is deprecated due to a bug rendering global objects in the scene editor.
Please use the version 5.4.207 instead.

5.4.205

03 Jul 13:05
98befc8
Compare
Choose a tag to compare

💝 Improvements

  • A lot of multiplayer improvements 🎮⚡️🎮
    • Speed up lobbies process in preview by reducing start countdown & making player automatically ready
    • Fix the synchronization of the activated state of a behavior
    • New action to disable the synchronization of a behavior for a multiplayer object (useful for Camera Behaviors for example)
    • New guided lesson - Creating a Multiplayer Co-op game
    • Improve multiplayer messages by automatically detecting and using best compression method for lobby (Also remove dependency on P2P extension)
    • Simplify creating & testing a game in preview, by automatically logging in the player when using player authentication or multiplayer extensions
    • New action to send a variable with a custom message
    • New expression to retrieve the player number of the sender
    • Add possibility for players to login with Google/Apple in game
    • Fix multiplayer lobbies properly opening after login
  • "Change platform type" action now uses a dropdown selector (Thanks @tristanbob!)
  • Display errors on variable parameters about name collisions with objects
  • Make variables easier to declare on the fly, with a quick link to create a variable
  • Remove extra "Add" words in the events context menu
  • Improve some icons in the editor (variables, mobile toolbar)
  • Use property names instead of property labels in descriptions and sentences of internal behavior instructions
  • Add missing Spine Runtime license agreement and link to Spine website

🐛 Bug fixes

  • Fix a refreshing issue of the object list in functions
  • Fix the default parameters when pasting a function in a behavior
  • Fix some array variable expressions visibility
  • Fix events shortcuts from triggering when a dialog is opened, which could cause events to be affected without realizing
  • Fix new variables being added at the top
  • Fix local variables default values when the wait action is used
  • Fix dragging bug in the Events Sheet when the indent scale is not 1x (Thanks @cyraid!)

⚙️ Extensions

  • [Reviewed] [CrazyGames] Add the new actions to let CrazyGames know when the loading started, and stopped. (Thanks @lhphr & @ZachjuKamashi!)
  • [Reviewed] [Screen shake] Fix a camera Y drift
  • [Reviewed] [Shock wave effect] Use local variables instead of hidden properties
  • [Reviewed] [Camera shake] Use extension variables
  • [Reviewed] [Inventories] Use extension variables
  • [Community] [3D camera shake] Use extension variables

🕹 Examples

  • [Arrow Fight] [Example] Update Arrow Fight to support gamepads, touchscreen, and WASD controls
    Improvements
    • Added player username (if authenticated)
    • Stick dead players to arrows (very fun!)
    • Added black outline to arrows
    • Used local variable to loop through players to generate score text
      Controls
    • Add gamepad controls
    • Add WASD controls
    • Add virtual joysticks (twin stick) controls for mobile
    • Added player state to help reduce complexity
  • [CrazyGames] Update CrazyGames SDK v2 demo
    • Add two new buttons to let CrazyGames know when loading has started and stopped.
  • [New example] Bounce puzzle - A simple drag & drop multiplayer game

🕹 Premium Game Templates

  • Add a new premium template: Beat 'Em Up by VegeTato
  • Update Match 3 premium template: Declare all the variables, and update the conditions/actions) that goes with it.
  • Update 2D Crafting premium Template: Declare all the variables, and update the conditions/actions) that goes with it. Plus improvements on the objects and bug fixes on the game UI.

Developer Changelog

  • Fix emscripten core version blocking Travis

5.4.204

20 Jun 09:48
740c7ae
Compare
Choose a tag to compare

💝 Improvements

  • Allow customizing the Events sheet indent scale - Thanks @cyraid!
  • Add a new guided lesson: Fire Bullets with an action from a behavior
  • Multiplayer improvements
    • An object changing layer during the game is now properly moved to the layer on the other players games
    • New objects can be synced, Spine, Video, Text Input
    • Pathfinding behavior is now properly synced, allowing a smooth prediction on other players games
    • Fix a rare case where the lobby was joined but did not appear as such in the interface
    • Add 2 new expressions for current player ping & username
    • Fix Physics2 behavior being properly synced
    • Ensure we create a force if no recycled are available, which was causing a crash in certain situations
    • Automatically disable default controls for synchronized objects
      • For top down & platformer objects, when the object is not owned by the current player, it will automatically have default controls disabled

🐛 Bug fixes

  • Fix crash when launching multiple previews with a pop-up blocker

🎨 Assets

  • Add a new premium SFX pack: Elemental Interface Inventory by DigitalVariant

🕹 Examples

  • [New example] Boids Flocking Simulation
  • [New example] Paddle Battle: A simple multiplayer game based on Pong
  • [New example] Arrow Fight: A simple multiplayer platformer & shooter game
  • [New example] Platformer Pickup: A simple multiplayer platformer game

🛠 Internal changes (for developers)

  • Upgrade CircleCI macOS builders to m1