336 Commits
Author SHA1 Message Date
Florian Rival ce7be6913f Make the benchmarks comment shorter and the comparison less noisy (#9218)
Don't show in changelog
2026-10-11 19:57:15 +02:00
Florian Rival 6a04ee3264 Speed up collision conditions between many objects (#9210)
- Gain can be 40-60% on some games
2026-10-09 18:35:10 +02:00
Florian Rival d6ab968fe6 Add micro and macro benchmarks on CI (#9206)
Only show in developer changelog
2026-10-09 14:36:50 +02:00
ViktorVovkandViktor Vovk 28934eb01a Add support for custom "cubic-bezier" easings to the Tween extension (#9154)
- 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]>
2026-10-08 18:34:05 +02:00
Florian Rival d987c83e9e Fix navigation meshes not loading in games and previews (#9194)
Don't show in changelog
2026-10-07 00:14:08 +02:00
Clément Pasteau d7cc8fcce7 Fix blur effects showing a border on screen edges and 3D effects hiding the layers below (#9042) 2026-10-06 16:14:21 +02:00
Florian Rival aea546a0cc Keep the in-game editor working when the code of an extension throws (#9188)
- The errors can now be displayed without having to open the developer console
- They are also visible to the AI agent which can react to it in the case it's an error coming from an extension being edited by the AI.
2026-10-06 11:21:10 +02:00
Florian Rival 7ae35a5d60 Fix 2D rendering not visible in 3D layers since the Three.js upgrade (#9189)
Don't show in changelog
2026-10-06 11:00:33 +02:00
Florian Rival d516b6f72f Improve directional light shadows rendering (improved distance and quality) (#9185)
- Ensure you use "Fitted to camera view" in your directional settings to benefit from this. This is the new default.
- Shadows are no longer rendered by chunks when they are far from the camera (they are smoothly stopping)
- The upgraded rendering allows to specify the maximum distance of the shadow from the camera. In the very vast majority of cases, this allows shadows to be rendered further than before with a quality as good if not better.
2026-10-06 08:17:08 +02:00
Florian RivalandDavy Hélard b30074ab24 Add Ambient Occlusion, Depth-of-field, faster bloom and tone mapping for 3D games (#9180)
Co-authored-by: Davy Hélard <[email protected]>
2026-10-05 15:10:35 +02:00
D8H 7dd4d13a7a Upgrade to Three.js 0.185.1 (#8853)
- 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.
2026-10-03 13:55:50 +02:00
Florian Rival da3e59c232 Fix custom object gameplay test warning (#9159) 2026-10-03 12:38:15 +02:00
Florian Rival 2e8c22b10c Fix GDJS tests relying on exact floating point results (#9156)
Newer Chrome versions compute Math functions with a different last
digit, so compare these values with a tolerance.

Don't show in changelog
2026-09-29 15:34:12 +02:00
Clément Pasteau 27613015c0 Share textures embedded in 3D models during runtime (#9145)
* Also ensure geometry, material and textures are correctly disposed when object is not used anymore, avoiding memory leaks
2026-09-28 17:23:23 +02:00
Florian Rival 2f00592c57 Fix gameplay tests output not being bounded (#9143) 2026-09-28 00:12:53 +02:00
Florian Rival 45d3ca2c7b Add support for attaching files to chat messages and converting them to resources (#9135)
- Also let the agent see screenshots taken by gameplay test (at least an automated one, and up to 4)
2026-09-25 00:18:33 +02:00
Clément Pasteau 15dd4dafbb Prevent jumping again after falling a platform in 3D platformer (#9132) 2026-09-23 16:10:17 +02:00
Florian Rival 4577bfba5a Improve gameplay tests (#9120)
- The warning about a custom object with no child in it ("it renders
nothing") fired on ParticleEmitter3D, Light3D or Text3D objects, which
are drawn by the JavaScript code of their extension (with Three.js) and
legitimately have no child. Skip it when the code replaced the renderer
of the object, or added something to draw (a mesh, a sprite, a
graphics...) in the stock renderer's container.
- The game-side wall-clock watchdog did not exclude the time the page
spent hidden (frozen by the browser), unlike the guards of the stepping
loop: a test run in a background tab or a covered window was reported as
a plain "timeout" instead of being given up on as paused by the editor.
Exclude it, and tell about that time in the timeout message.
- Reject a non-string object name with a clear error instead of asking
the scene for "[object Object]" (which registered a phantom object list
and silently found nothing), the mistake `lookTowardWithMouseDelta`
invites when the target is passed first.
2026-09-18 15:30:47 +02:00
Florian Rival be887e51c3 Allow the agents to read/create/modify extensions (custom functions/objects/behaviors) (#9094) 2026-09-18 11:44:08 +02:00
Clément Pasteau 876821ff1e FIx nested variables being displayed as null in debugger (#9116) 2026-09-17 16:43:33 +02:00
Clément Pasteau 72ac9b7de4 Ensure special characters are correctly encoded/decoded for resources. (#9099)
* plus improve audio loading error messages
2026-09-14 17:04:41 +02:00
Florian Rival 68cc6f432b Gameplay tests: wait through game-driven scene changes instead of throwing (#8950)
Don't show in changelog
2026-08-11 11:56:44 +02:00
D8H 361f6b3a87 Add experimental "navmesh-based" pathfinding behavior for 2D and 3D (#8943)
- This pathfinding works in 2D and 3D is more flexible than the "grid-based" existing pathfinding.
- For 3D models, you can optionally choose, like for 3D physics, to follow the exact mesh of the 3D model for pathfinding - allowing characters and objects to move on or around the 3D model naturally.
- It handles "crowds" of characters, which can all go to a destination avoiding each others.
2026-08-11 11:11:44 +02:00
Florian Rival 9b331ac4bc Gameplay tests: exclude loading time from the test timeout, report it as loadingMs (#8947)
Don't show in changelog
2026-08-10 22:27:18 +02:00
Florian Rival 3ed0b92ff9 Gameplay tests: label the control probe's scene restarts with their own cause (#8946)
Don't show in changelog
2026-08-10 18:53:15 +02:00
Florian Rival 4cc37b43a2 Various improvements for gameplay tests (#8936)
Don't show in changelog
2026-08-09 14:29:11 +02:00
Claude ba74a65a75 Wait for the game to be fully booted before running a gameplay test
Don't show in changelog
2026-08-08 23:56:07 +02:00
Florian Rival 44ba8a04ce Add experimental gameplay tests (#8926)
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/)
2026-08-08 21:22:07 +02:00
Clément Pasteau dbde5a9347 Instances can now be hidden at start from the properties panel (#8884)
+ AI tool can now set instance variables
2026-07-30 16:43:23 +02:00
Clément Pasteau eb7d890a75 Improve panel sprite performance when not smoothed (#8901) 2026-07-28 14:49:26 +02:00
D8H 8dd5da42d8 Add test projects for the documentation (#8889)
Only show in developer changelog
2026-07-25 19:28:40 +02:00
D8H 561c43464e Allow to edit external tile maps at runtime (#8830) 2026-07-23 10:00:16 +02:00
Clément Pasteau c73ce6f250 Save state extended (#8752)
- Add actions to list, delete, check, and duplicate saves
- Also adapt actions so they can be awaited
2026-06-23 15:06:59 +02:00
Clément Pasteau b584df4ce8 Fix Spine upgrade wrongly breaking require calls (#8730)
Only show in developer changelog
2026-06-17 11:26:18 +02:00
Gleb Volkov f6872bd7a1 Migrate Spine extension to @esotericsoftware/spine-pixi-v7 (#8595)
- Replace the third-party `[email protected]` with the official Esoteric Software runtime for PixiJS v7 (`@esotericsoftware/[email protected]`).
- The new runtime only fully supports skeletons exported from **Spine 4.2**. Older exports (e.g. 4.0) may partially render but mesh deformations won't work due to a Spine JSON schema change (`deform` → `attachments`).
2026-06-16 10:23:52 +02:00
D8H e2de846279 Allow to load and unload objects from other scenes (#8592)
- Also fix manually loaded objects not being unload with their scene
2026-05-14 10:56:19 +02:00
D8H 1c17c895bb Allow custom objects to move layer cameras (#8572)
- Also fix a crash when there is a trigger once in an external function used from a custom object
2026-05-12 11:14:34 +02:00
D8H 8e50ddefe4 Allow to configure object resources to be loaded independently from the scene (#8514)
- 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.
2026-05-04 10:45:51 +02:00
Florian Rival 840f0e93df Fix hot reloading for behaviors (#8553) 2026-04-30 11:08:56 +02:00
Florian Rival 72190e8bdf Fix hot-reloading of global object instances (#8489) 2026-04-07 12:49:50 +02:00
D8H 6fab4f041f Fix center point value of custom objects when a custom center is set (#8432) 2026-03-26 15:02:58 +01:00
Florian Rival d04ae5e509 Update Semaphore CI OS image from Ubuntu 20.04 to 24.04 (#8236) 2026-02-10 14:13:46 +01:00
D8H deb802cfec Allow to override behavior properties on object instances (#8171)
* For now, this is limited to instances inside custom objects. This will be made available in the future for all instances in scenes if this works well.
2026-02-09 16:21:24 +01:00
D8HandFlorian Rival ca6eb1a829 Fix a regression on the action to change sprite dimensions (#8192)
Co-authored-by: Florian Rival <[email protected]>
2026-01-30 11:55:23 +01:00
D8H fb0117e160 Fix wrong evaluation of Sprite center when the frame dimension has just changed (#8179) 2026-01-28 16:30:10 +01:00
Florian RivalandDavy Hélard 3846a1553b Experimental in-game editor (#7974)
Co-authored-by: Davy Hélard <[email protected]>

Don't show in changelog
2025-11-11 18:22:37 +01:00
Florian Rival 98a24dc8fc Add support for profiles and exclusions in Save States (#7897) 2025-10-11 15:47:31 +02:00
Clément Pasteau e174136fb4 New Save & Load built-in actions (#7811)
* New actions are available to save & load the game state, making Saving & Loading as easy as adding 1 action to your game!
* While it will work in most cases, it has a few limitations and hasn't been thoroughly tested on all types of objects/behaviors and games, so it is for the moment tagged as **Experimental** while we gather feedback and improve it
* Check out the wiki for more info: https://wiki.gdevelop.io/gdevelop5/all-features/save-state
2025-09-29 15:38:37 +02:00
Florian Rival 5e3dfb0e9c Add condition to check if a key was just pressed (#7808) 2025-09-04 17:32:25 +02:00
D8H 0cbd6e2fe9 Fix cached materials not being cleared when unloading resources (#7780) 2025-08-11 15:50:22 +02:00