


Your free, open-source game engine 🎮🛠️
Develop your 2D & 3D games, cross-platform projects, or even XR ideas!
Develop your 2D & 3D games, cross-platform projects, or even XR ideas!
185 people like this
13 Posts
2 Photos
0 Videos
-
Upcoming (serious) Web performance boost
UpcomingWeb performance boostBy:
Adam Scott5 June 2025Progress ReportSometimes, just adding a compiler flag can yield significant performance boosts. And that just happened.For about two years now, all major browsers have supported WASMSIMD. SIMD stands for “Single instruction, multiple data” and is a technology that permits CPUs to do some parallel computation, often speeding up the whole program. And that’s exactly why we tried it out recently.We got positive results.The need for performance on the WebThe Web platform is often overlooked as a viable target, because of its less-than-ideal environment and its perceived poor performance. And the perception is somewhat right: the Web environment has a lot of security-related quirks to take into account—the user needs to interact with a game frame before the browser allows it to play any sound1. Also, due to bandwidth and compatibility reasons, you rarely see high-fidelity games being played on a browser. Performance is better achieved when running software natively on the operating system.But don’t underestimate the potential of the Web platform. As I explained in broad terms at the talk I gave at the last GodotCon Boston 2025, the Web has caught up a lot since the days of Flash games. Not only are there more people playing Web games every year, but standards and browsers improve every year in functionality and in performance.And that’s why we are interested in using WASM SIMD.WASM SIMD BenchmarksOur resident benchmark expert Hugo Locurcioran the numbers for us on a stress test I made. We wanted to compare standard builds to builds with WASM SIMD enabled.Note: You may try to replicate his results, but be aware that he has a beast of a machine. Here are his PC’s specifications:CPU: Intel Core i9-13900KGPU: NVIDIA GeForce RTX 4090RAM: 64 GBSSD: Solidigm P44 Pro 2 TBOS: LinuxI built a Jolt physics stress test from a scene initially made by passivestar. By spawning more and more barrels into the contraption, we can easily test the performance difference between the WASM SIMD build and the other.Without WASM SIMDWith WASM SIMDImprovementTest linksLinkLink-Firefox 1382×Firefox 13810.17×*Chromium 1341.37×Chromium 13414.17×**Please note that once the physics engine enters a “spiral of death”, it is common for the framerate to drop to single digits, SIMD or not. These tests don’t prove 10× to 15× CPU computing speed improvements, but rather that games will be more resilient to framerate drops on the same machine in the same circumstances. The 1.5× to 2× numbers are more representative here of the performance gains by WASM SIMD.What it means for your gamesStarting with 4.5 dev 5, you can expect your Web games to run a little bit more smoothly, without having to do anything. Especially when things get chaotic. It isn’t a silver bullet for poorly optimized games, but it will help nonetheless. Also, note that it cannot do anything for GPU rendering bottlenecks.Be aware that the stress tests are meant by nature to only test the worst case scenarios, so you may not see such large improvements in normal circumstances. But it’s nice to see such stark improvements when the worst happens.AvailabilityFrom here on out, the 4.5 release official templates will only support WebAssembly SIMD-compatible browsers in order to keep the template sizes small. We generally aim to maintain compatibility with the oldest devices we can. But in this case, the performance gains are too large to ignore and the chances of users having browsers that are that far out of date is too small relative to the potential benefits.If you need to use non-SIMD templates, don’t fret. You can always build the Godot Editor and the engine templates without WebAssembly SIMD support by using the wasm_simd=no build option.What’s next?As I wrote in my last blog post, we’re currently working very hard to make C#/.NET exports a reality. We do have a promising prototype, we just need to make sure that it’s production-ready.I also mentioned in that article that I wanted to concentrate on improving our asset loading game. Preloading an entire game before even starting it hinders the ability to use Godot for commercial Web games. Once something is implemented to improve that issue, count on me to share the news with you.It’s either that, or we return to the old days of spam-webpages using the “Congratulations, you won!” sound effect when you least expect it. ↩
#upcoming #serious #web #performance #boostUpcoming (serious) Web performance boostUpcomingWeb performance boostBy: Adam Scott5 June 2025Progress ReportSometimes, just adding a compiler flag can yield significant performance boosts. And that just happened.For about two years now, all major browsers have supported WASMSIMD. SIMD stands for “Single instruction, multiple data” and is a technology that permits CPUs to do some parallel computation, often speeding up the whole program. And that’s exactly why we tried it out recently.We got positive results.The need for performance on the WebThe Web platform is often overlooked as a viable target, because of its less-than-ideal environment and its perceived poor performance. And the perception is somewhat right: the Web environment has a lot of security-related quirks to take into account—the user needs to interact with a game frame before the browser allows it to play any sound1. Also, due to bandwidth and compatibility reasons, you rarely see high-fidelity games being played on a browser. Performance is better achieved when running software natively on the operating system.But don’t underestimate the potential of the Web platform. As I explained in broad terms at the talk I gave at the last GodotCon Boston 2025, the Web has caught up a lot since the days of Flash games. Not only are there more people playing Web games every year, but standards and browsers improve every year in functionality and in performance.And that’s why we are interested in using WASM SIMD.WASM SIMD BenchmarksOur resident benchmark expert Hugo Locurcioran the numbers for us on a stress test I made. We wanted to compare standard builds to builds with WASM SIMD enabled.Note: You may try to replicate his results, but be aware that he has a beast of a machine. Here are his PC’s specifications:CPU: Intel Core i9-13900KGPU: NVIDIA GeForce RTX 4090RAM: 64 GBSSD: Solidigm P44 Pro 2 TBOS: LinuxI built a Jolt physics stress test from a scene initially made by passivestar. By spawning more and more barrels into the contraption, we can easily test the performance difference between the WASM SIMD build and the other.Without WASM SIMDWith WASM SIMDImprovementTest linksLinkLink-Firefox 1382×Firefox 13810.17×*Chromium 1341.37×Chromium 13414.17×**Please note that once the physics engine enters a “spiral of death”, it is common for the framerate to drop to single digits, SIMD or not. These tests don’t prove 10× to 15× CPU computing speed improvements, but rather that games will be more resilient to framerate drops on the same machine in the same circumstances. The 1.5× to 2× numbers are more representative here of the performance gains by WASM SIMD.What it means for your gamesStarting with 4.5 dev 5, you can expect your Web games to run a little bit more smoothly, without having to do anything. Especially when things get chaotic. It isn’t a silver bullet for poorly optimized games, but it will help nonetheless. Also, note that it cannot do anything for GPU rendering bottlenecks.Be aware that the stress tests are meant by nature to only test the worst case scenarios, so you may not see such large improvements in normal circumstances. But it’s nice to see such stark improvements when the worst happens.AvailabilityFrom here on out, the 4.5 release official templates will only support WebAssembly SIMD-compatible browsers in order to keep the template sizes small. We generally aim to maintain compatibility with the oldest devices we can. But in this case, the performance gains are too large to ignore and the chances of users having browsers that are that far out of date is too small relative to the potential benefits.If you need to use non-SIMD templates, don’t fret. You can always build the Godot Editor and the engine templates without WebAssembly SIMD support by using the wasm_simd=no build option.What’s next?As I wrote in my last blog post, we’re currently working very hard to make C#/.NET exports a reality. We do have a promising prototype, we just need to make sure that it’s production-ready.I also mentioned in that article that I wanted to concentrate on improving our asset loading game. Preloading an entire game before even starting it hinders the ability to use Godot for commercial Web games. Once something is implemented to improve that issue, count on me to share the news with you.It’s either that, or we return to the old days of spam-webpages using the “Congratulations, you won!” sound effect when you least expect it. ↩ #upcoming #serious #web #performance #boost -
Dev snapshot: Godot 4.5 dev 5
Replicube
A game by Walaber Entertainment LLCDev snapshot: Godot 4.5 dev 5By:
Thaddeus Crews2 June 2025Pre-releaseBrrr… Do you feel that? That’s the cold front of the feature freeze just around the corner. It’s not upon us just yet, but this is likely to be our final development snapshot of the 4.5 release cycle. As we enter the home stretch of new features, bugs are naturally going to follow suit, meaning bug reports and feedback will be especially important for a smooth beta timeframe.Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.The cover illustration is from Replicube, a programming puzzle game where you write code to recreate voxelized objects. It is developed by Walaber Entertainment LLC. You can get the game on Steam.HighlightsIn case you missed them, see the 4.5 dev 1, 4.5 dev 2, 4.5 dev 3, and 4.5 dev 4 release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 5.Native visionOS supportNormally, our featured highlights in these development blogs come from long-time contributors. This makes sense of course, as it’s generally those users that have the familiarity necessary for major changes or additions that are commonly used for these highlights. That’s why it might surprise you to hear that visionOS support comes to us from Ricardo Sanchez-Saez, whose pull request GH-105628 is his very first contribution to the engine! It might not surprise you to hear that Ricardo is part of the visionOS engineering team at Apple, which certainly helps get his foot in the door, but that still makes visionOS the first officially-supported platform integration in about a decade.For those unfamiliar, visionOS is Apple’s XR environment. We’re no strangers to XR as a concept, but XR platforms are as distinct from one another as traditional platforms. visionOS users have expressed a strong interest in integrating with our ever-growing XR community, and now we can make that happen. See you all in the next XR Game Jam!GDScript: Abstract classesWhile the Godot Engine utilizes abstract classes—a class that cannot be directly instantiated—frequently, this was only ever supported internally. Thanks to the efforts of Aaron Franke, this paradigm is now available to GDScript users. Now if a user wants to introduce their own abstract class, they merely need to declare it via the new abstract keyword:abstract class_name MyAbstract extends Node
The purpose of an abstract class is to create a baseline for other classes to derive from:class_name ExtendsMyAbstract extends MyAbstract
Shader bakerFrom the technical gurus behind implementing ubershaders, Darío Samo and Pedro J. Estébanez bring us another miracle of rendering via GH-102552: shader baker exporting. This is an optional feature that can be enabled at export time to speed up shader compilation massively. This feature works with ubershaders automatically without any work from the user. Using shader baking is strongly recommended when targeting Apple devices or D3D12 since it makes the biggest difference there!Before:After:However, it comes with tradeoffs:Export time will be much longer.Build size will be much larger since the baked shaders can take up a lot of space.We have removed several MoltenVK bug workarounds from the Forward+ shader, therefore we no longer guarantee support for the Forward+ renderer on Intel Macs. If you are targeting Intel Macs, you should use the Mobile or Compatibility renderers.Baking for Vulkan can be done from any device, but baking for D3D12 needs to be done from a Windows device and baking for Apple .metallib requires a Metal compiler.Web: WebAssembly SIMD supportAs you might recall, Godot 4.0 initially released under the assumption that multi-threaded web support would become the standard, and only supported that format for web builds. This assumption unfortunately proved to be wishful thinking, and was reverted in 4.3 by allowing for single-threaded builds once more. However, this doesn’t mean that these single-threaded environments are inherently incapable of parallel processing; it just requires alternative implementations. One such implementation, SIMD, is a perfect candidate thanks to its support across all major browsers. To that end, web-wiz Adam Scott has taken to integrating this implementation for our web builds by default.Inline color pickersWhile it’s always been possible to see what kind of variable is assigned to an exported color in the inspector, some users have expressed a keen interest in allowing for this functionality within the script editor itself. This is because it would mean seeing what kind of color is represented by a variable without it needing to be exposed, as well as making it more intuitive at a glance as to what color a name or code corresponds to. Koliur Rahman has blessed us with this quality-of-life goodness, which adds an inline color picker GH-105724. Now no matter where the color is declared, users will be able to immediately and intuitively know what is actually represented in a non-intrusive manner.Rendering goodiesThe renderer got a fair amount of love this snapshot; not from any one PR, but rather a multitude of community members bringing some long-awaited features to light. Raymond DiDonato helped SMAA 1x make its transition from addon to fully-fledged engine feature. Capry brings bent normal maps to further enhance specular occlusion and indirect lighting. Our very own Clay John converted our Compatibility backend to use a fragment shader copy instead of a blit copy, working around common sample rate issues on mobile devices. More technical information on these rendering changes can be found in their associated PRs.SMAA comparison:OffOnBent normal map comparison:BeforeAfterAnd more!There are too many exciting changes to list them all here, but here’s a curated selection:Animation: Add alphabetical sorting to Animation Player.Animation: Add animation filtering to animation editor.Audio: Implement seek operation for Theora video files, improve multi-channel audio resampling.Core: Add --scene command line argument.Core: Overhaul resource duplication.Core: Use Grisu2 algorithm in String::num_scientific to fix serializing.Editor: Add “Quick Load” button to EditorResourcePicker.Editor: Add PROPERTY_HINT_INPUT_NAME for use with @export_custom to allow using input actions.Editor: Add named EditorScripts to the command palette.GUI: Add file sort to FileDialog.I18n: Add translation preview in editor.Import: Add Channel Remap settings to ResourceImporterTexture.Physics: Improve performance with non-monitoring areas when using Jolt Physics.Porting: Android: Add export option for custom theme attributes.Porting: Android: Add support for 16 KB page sizes, update to NDK r28b.Porting: Android: Remove the gradle_build/compress_native_libraries export option.Porting: Web: Use actual PThread pool size for get_default_thread_pool_size.Porting: Windows/macOS/Linux: Use SSE 4.2 as a baseline when compiling Godot.Rendering: Add new StandardMaterial properties to allow users to control FPS-style objects.Rendering: FTI - Optimize SceneTree traversal.Changelog109 contributors submitted 252 fixes for this release. See our interactive changelog for the complete list of changes since the previous 4.5-dev4 snapshot.This release is built from commit 64b09905c.DownloadsGodot is downloading...Godot exists thanks to donations from people like you. Help us continue our work:Make a DonationStandard build includes support for GDScript and GDExtension..NET buildincludes support for C#, as well as GDScript and GDExtension.While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.Known issuesWindows executableshave been signed with an expired certificate. You may see warnings from Windows Defender’s SmartScreen when running this version, or outright be prevented from running the executables with a double-click. Running Godot from the command line can circumvent this. We will soon have a renewed certificate which will be used for future builds.With every release, we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.Bug reportsAs a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.In particular, any change that would cause a regression in your projects is very important to report.SupportGodot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund.Donate now
#dev #snapshot #godotDev snapshot: Godot 4.5 dev 5Replicube A game by Walaber Entertainment LLCDev snapshot: Godot 4.5 dev 5By: Thaddeus Crews2 June 2025Pre-releaseBrrr… Do you feel that? That’s the cold front of the feature freeze just around the corner. It’s not upon us just yet, but this is likely to be our final development snapshot of the 4.5 release cycle. As we enter the home stretch of new features, bugs are naturally going to follow suit, meaning bug reports and feedback will be especially important for a smooth beta timeframe.Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.The cover illustration is from Replicube, a programming puzzle game where you write code to recreate voxelized objects. It is developed by Walaber Entertainment LLC. You can get the game on Steam.HighlightsIn case you missed them, see the 4.5 dev 1, 4.5 dev 2, 4.5 dev 3, and 4.5 dev 4 release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 5.Native visionOS supportNormally, our featured highlights in these development blogs come from long-time contributors. This makes sense of course, as it’s generally those users that have the familiarity necessary for major changes or additions that are commonly used for these highlights. That’s why it might surprise you to hear that visionOS support comes to us from Ricardo Sanchez-Saez, whose pull request GH-105628 is his very first contribution to the engine! It might not surprise you to hear that Ricardo is part of the visionOS engineering team at Apple, which certainly helps get his foot in the door, but that still makes visionOS the first officially-supported platform integration in about a decade.For those unfamiliar, visionOS is Apple’s XR environment. We’re no strangers to XR as a concept, but XR platforms are as distinct from one another as traditional platforms. visionOS users have expressed a strong interest in integrating with our ever-growing XR community, and now we can make that happen. See you all in the next XR Game Jam!GDScript: Abstract classesWhile the Godot Engine utilizes abstract classes—a class that cannot be directly instantiated—frequently, this was only ever supported internally. Thanks to the efforts of Aaron Franke, this paradigm is now available to GDScript users. Now if a user wants to introduce their own abstract class, they merely need to declare it via the new abstract keyword:abstract class_name MyAbstract extends Node The purpose of an abstract class is to create a baseline for other classes to derive from:class_name ExtendsMyAbstract extends MyAbstract Shader bakerFrom the technical gurus behind implementing ubershaders, Darío Samo and Pedro J. Estébanez bring us another miracle of rendering via GH-102552: shader baker exporting. This is an optional feature that can be enabled at export time to speed up shader compilation massively. This feature works with ubershaders automatically without any work from the user. Using shader baking is strongly recommended when targeting Apple devices or D3D12 since it makes the biggest difference there!Before:After:However, it comes with tradeoffs:Export time will be much longer.Build size will be much larger since the baked shaders can take up a lot of space.We have removed several MoltenVK bug workarounds from the Forward+ shader, therefore we no longer guarantee support for the Forward+ renderer on Intel Macs. If you are targeting Intel Macs, you should use the Mobile or Compatibility renderers.Baking for Vulkan can be done from any device, but baking for D3D12 needs to be done from a Windows device and baking for Apple .metallib requires a Metal compiler.Web: WebAssembly SIMD supportAs you might recall, Godot 4.0 initially released under the assumption that multi-threaded web support would become the standard, and only supported that format for web builds. This assumption unfortunately proved to be wishful thinking, and was reverted in 4.3 by allowing for single-threaded builds once more. However, this doesn’t mean that these single-threaded environments are inherently incapable of parallel processing; it just requires alternative implementations. One such implementation, SIMD, is a perfect candidate thanks to its support across all major browsers. To that end, web-wiz Adam Scott has taken to integrating this implementation for our web builds by default.Inline color pickersWhile it’s always been possible to see what kind of variable is assigned to an exported color in the inspector, some users have expressed a keen interest in allowing for this functionality within the script editor itself. This is because it would mean seeing what kind of color is represented by a variable without it needing to be exposed, as well as making it more intuitive at a glance as to what color a name or code corresponds to. Koliur Rahman has blessed us with this quality-of-life goodness, which adds an inline color picker GH-105724. Now no matter where the color is declared, users will be able to immediately and intuitively know what is actually represented in a non-intrusive manner.Rendering goodiesThe renderer got a fair amount of love this snapshot; not from any one PR, but rather a multitude of community members bringing some long-awaited features to light. Raymond DiDonato helped SMAA 1x make its transition from addon to fully-fledged engine feature. Capry brings bent normal maps to further enhance specular occlusion and indirect lighting. Our very own Clay John converted our Compatibility backend to use a fragment shader copy instead of a blit copy, working around common sample rate issues on mobile devices. More technical information on these rendering changes can be found in their associated PRs.SMAA comparison:OffOnBent normal map comparison:BeforeAfterAnd more!There are too many exciting changes to list them all here, but here’s a curated selection:Animation: Add alphabetical sorting to Animation Player.Animation: Add animation filtering to animation editor.Audio: Implement seek operation for Theora video files, improve multi-channel audio resampling.Core: Add --scene command line argument.Core: Overhaul resource duplication.Core: Use Grisu2 algorithm in String::num_scientific to fix serializing.Editor: Add “Quick Load” button to EditorResourcePicker.Editor: Add PROPERTY_HINT_INPUT_NAME for use with @export_custom to allow using input actions.Editor: Add named EditorScripts to the command palette.GUI: Add file sort to FileDialog.I18n: Add translation preview in editor.Import: Add Channel Remap settings to ResourceImporterTexture.Physics: Improve performance with non-monitoring areas when using Jolt Physics.Porting: Android: Add export option for custom theme attributes.Porting: Android: Add support for 16 KB page sizes, update to NDK r28b.Porting: Android: Remove the gradle_build/compress_native_libraries export option.Porting: Web: Use actual PThread pool size for get_default_thread_pool_size.Porting: Windows/macOS/Linux: Use SSE 4.2 as a baseline when compiling Godot.Rendering: Add new StandardMaterial properties to allow users to control FPS-style objects.Rendering: FTI - Optimize SceneTree traversal.Changelog109 contributors submitted 252 fixes for this release. See our interactive changelog for the complete list of changes since the previous 4.5-dev4 snapshot.This release is built from commit 64b09905c.DownloadsGodot is downloading...Godot exists thanks to donations from people like you. Help us continue our work:Make a DonationStandard build includes support for GDScript and GDExtension..NET buildincludes support for C#, as well as GDScript and GDExtension.While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.Known issuesWindows executableshave been signed with an expired certificate. You may see warnings from Windows Defender’s SmartScreen when running this version, or outright be prevented from running the executables with a double-click. Running Godot from the command line can circumvent this. We will soon have a renewed certificate which will be used for future builds.With every release, we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.Bug reportsAs a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.In particular, any change that would cause a regression in your projects is very important to report.SupportGodot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund.Donate now #dev #snapshot #godot0 Comments ·0 Shares ·0 Reviews -
Dev snapshot: Godot 4.5 dev 4Ambidextro
A game by MajorariattoDev snapshot: Godot 4.5 dev 4By:
Thaddeus Crews13 May 2025Pre-releaseTo everyone who ended up going to GodotCon this past week, we hope you had a safe journey home! For those of you that missed the fun, we’ve logged some of the highlights on the blog already—such as the long-awaited web support for .NET—with more to come later in the week.
As always, we’ve recorded all of our GodotCon talks, and those shall be uploaded to our YouTube channel in a few weeks.
With that now behind us, we can go full-steam ahead on our next development snapshot: 4.5 dev 4.
Plenty of new features this time around, so feedback and bug reports from testing are once again strongly recommended.Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release.
You can also try the Web editor or the Android editor for this release.
If you are interested in the latter, please request to join our testing group to get access to pre-release builds.The cover illustration is from Ambidextro, a precision-platformer where you must control two characters simultaneously, one with each hand.
It is developed by Majorariatto (Twitter).
You can get the game on Steam, Nintendo Switch, and Xbox.HighlightsIn case you missed them, see the 4.5 dev 1, 4.5 dev 2, and 4.5 dev 3 release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 4.macOS: Embedded window supportAfter Windows and Linux users got to experience the benefits of embedding their windows in the editor, macOS users have understandably been expressing interest in the same coming to their platform.
Easier said than done, as this feature is OS-specific and very low-level, so implementation requires someone both extremely knowledgeable in a niche area and actually owning the platform in question for proper testing.
Thankfully, both of these qualifications were met by Stuart Carnie, who was up to the task of integrating this behemoth in GH-105884.
The results should speak for themselves:The macOS implementation works differently from the Windows and Linux implementations.
Since macOS does not allow the kind of window manipulation that Windows and Linux use for game window embedding, macOS uses an inter-process communication approach where the framebuffer is sent from the game process (which performs off-screen rendering) to the editor window.
Input events are also sent from the editor window to the game process.
This approach is more complex, but is also more robust as it doesn’t rely on window management tricks that can fall apart in certain edge cases.
This approach may be ported later to Windows/Linux in a future release, as it would help improve the reliability of game window embedding.Move 3D physics interpolation to SceneTreeThe old design of the 3D interpolation system was fundamentally flawed, as it operated under the assumption that the scene side wouldn’t require access to interpolated transforms.
This isn’t something that could’ve just been “patched in” either, thanks to the multithreaded design, command queue, and stalling.
Lacking any sort of workaround, lawnjelly has taken a break from being the person responsible for 90% of 3.x code nowadays and forward-ported a solution via GH-104269.
This addresses the problem by porting all logic to the SceneTree, while completely retaining the existing API!No changes are needed to existing projects to benefit from the new 3D physics interpolation architecture.Export variables as VariantDespite both arrays and dictionaries technically supporting Variant values, this functionality was never actually exposed in isolation.
That is: it was impossible to export a variable of type Variant directly.
Tomasz Chabora found this limitation quite silly, so took to addressing this grave injustice with GH-89324.
Now users are granted extra flexibility with their exports, as the option is now available to change not only the variable, but the type itself.Stackable outlines on LabelHave you ever been in the situation where you want to add fancy outline or shadow effects to your text, only to realize that you’re stuck with only one of each? Sure, you can double-up the amount of text objects directly atop one-another, but that’s cumbersome and doesn’t account for outlines affecting other outlines.
There must be a better way! Well, thanks to the efforts of Delsin-Yu, users no longer have to struggle with this moral conundrum.
Instead, they can simply take advantage of GH-104731 adding support for stacked layers of effects; no cumbersome workarounds required.Specular occlusion from ambient lightOur renderer currently lacks a cheap option for specular occlusion, causing certain metallic/reflective materials to still receive reflections when they should be darkened/occluded.
Lander rectified this limitation in GH-106145, where specular occlusion is added based on ambient light.
As users might prefer the old visuals, this is now handled through a toggle in the project settings.
The differences can be observed here:DisabledEnabledAnd more!There are too many exciting changes to list them all here, but here’s a curated selection:Core: Add Node.get_orphan_node_ids, edit Node.print_orphan_nodes (GH-83757).Core: Add compression level support to Zip module (GH-103283).Core: Fix for debugging typed dictionaries (GH-106170).Core: Print script backtrace in the crash handler (GH-105741).Editor: Add editor setting to collapse main menu into a MenuButton (GH-105944).Editor: Enable Auto Reload Scripts on External Change by default in the editor settings (GH-97148).GUI: Add drag zoom feature with CTRL+MiddleMouseButton (GH-105625).GUI: Add property to control showing the virtual keyboard on focus events (GH-106114).Import: Use libjpeg-turbo for improved jpg compatibility and speed (GH-104347).Network: mbedTLS: Fix concurrency issues with TLS (GH-106167).Particles: Overhaul the cull mask internals for Lights, Decals, and Particle Colliders (GH-102399).Porting: Android: Annual versions bump for the Android platform (GH-106152).Porting: Android: Bump the minimum supported SDK version to 24 (GH-106148).Porting: Wayland: Handle fifo_v1 and clean up suspension logic (GH-101454).Rendering: Add Meshes to the Video RAM Profiler (GH-103238).Rendering: Allow moving meshes without motion vectors (GH-105437).Rendering: Forward+: Replace the current BRDF approximation with a DFG LUT and add multiscattering energy compensation (GH-103934).Rendering: FTI - Add custom interpolation for wheels (GH-105915).Shaders: Expose built-in region information (GH-90436).Changelog105 contributors submitted 261 fixes for this release.
See our interactive changelog for the complete list of changes since the previous 4.5-dev3 snapshot.This release is built from commit 209a446e3.DownloadsGodot is downloading...Godot exists thanks to donations from people like you.
Help us continue our work:Make a DonationStandard build includes support for GDScript and GDExtension..NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software.
Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.Known issuesThere are currently no known issues introduced by this release.With every release, we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet.
See the GitHub issue tracker for a complete list of known bugs.Bug reportsAs a tester, we encourage you to open bug reports if you experience issues with this release.
Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.In particular, any change that would cause a regression in your projects is very important to report (e.g.
if something that worked fine in previous 4.x releases, but no longer works in this snapshot).SupportGodot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community.
A big thank you to everyone who has contributed their time or their financial support to the project!If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund.Donate now
Source: https://godotengine.org/article/dev-snapshot-godot-4-5-dev-4/" style="color: #0066cc;">https://godotengine.org/article/dev-snapshot-godot-4-5-dev-4/
#dev #snapshot #godotDev snapshot: Godot 4.5 dev 4Ambidextro A game by MajorariattoDev snapshot: Godot 4.5 dev 4By: Thaddeus Crews13 May 2025Pre-releaseTo everyone who ended up going to GodotCon this past week, we hope you had a safe journey home! For those of you that missed the fun, we’ve logged some of the highlights on the blog already—such as the long-awaited web support for .NET—with more to come later in the week. As always, we’ve recorded all of our GodotCon talks, and those shall be uploaded to our YouTube channel in a few weeks. With that now behind us, we can go full-steam ahead on our next development snapshot: 4.5 dev 4. Plenty of new features this time around, so feedback and bug reports from testing are once again strongly recommended.Jump to the Downloads section, and give it a spin right now, or continue reading to learn more about improvements in this release. You can also try the Web editor or the Android editor for this release. If you are interested in the latter, please request to join our testing group to get access to pre-release builds.The cover illustration is from Ambidextro, a precision-platformer where you must control two characters simultaneously, one with each hand. It is developed by Majorariatto (Twitter). You can get the game on Steam, Nintendo Switch, and Xbox.HighlightsIn case you missed them, see the 4.5 dev 1, 4.5 dev 2, and 4.5 dev 3 release notes for an overview of some key features which were already in those snapshots, and are therefore still available for testing in dev 4.macOS: Embedded window supportAfter Windows and Linux users got to experience the benefits of embedding their windows in the editor, macOS users have understandably been expressing interest in the same coming to their platform. Easier said than done, as this feature is OS-specific and very low-level, so implementation requires someone both extremely knowledgeable in a niche area and actually owning the platform in question for proper testing. Thankfully, both of these qualifications were met by Stuart Carnie, who was up to the task of integrating this behemoth in GH-105884. The results should speak for themselves:The macOS implementation works differently from the Windows and Linux implementations. Since macOS does not allow the kind of window manipulation that Windows and Linux use for game window embedding, macOS uses an inter-process communication approach where the framebuffer is sent from the game process (which performs off-screen rendering) to the editor window. Input events are also sent from the editor window to the game process. This approach is more complex, but is also more robust as it doesn’t rely on window management tricks that can fall apart in certain edge cases. This approach may be ported later to Windows/Linux in a future release, as it would help improve the reliability of game window embedding.Move 3D physics interpolation to SceneTreeThe old design of the 3D interpolation system was fundamentally flawed, as it operated under the assumption that the scene side wouldn’t require access to interpolated transforms. This isn’t something that could’ve just been “patched in” either, thanks to the multithreaded design, command queue, and stalling. Lacking any sort of workaround, lawnjelly has taken a break from being the person responsible for 90% of 3.x code nowadays and forward-ported a solution via GH-104269. This addresses the problem by porting all logic to the SceneTree, while completely retaining the existing API!No changes are needed to existing projects to benefit from the new 3D physics interpolation architecture.Export variables as VariantDespite both arrays and dictionaries technically supporting Variant values, this functionality was never actually exposed in isolation. That is: it was impossible to export a variable of type Variant directly. Tomasz Chabora found this limitation quite silly, so took to addressing this grave injustice with GH-89324. Now users are granted extra flexibility with their exports, as the option is now available to change not only the variable, but the type itself.Stackable outlines on LabelHave you ever been in the situation where you want to add fancy outline or shadow effects to your text, only to realize that you’re stuck with only one of each? Sure, you can double-up the amount of text objects directly atop one-another, but that’s cumbersome and doesn’t account for outlines affecting other outlines. There must be a better way! Well, thanks to the efforts of Delsin-Yu, users no longer have to struggle with this moral conundrum. Instead, they can simply take advantage of GH-104731 adding support for stacked layers of effects; no cumbersome workarounds required.Specular occlusion from ambient lightOur renderer currently lacks a cheap option for specular occlusion, causing certain metallic/reflective materials to still receive reflections when they should be darkened/occluded. Lander rectified this limitation in GH-106145, where specular occlusion is added based on ambient light. As users might prefer the old visuals, this is now handled through a toggle in the project settings. The differences can be observed here:DisabledEnabledAnd more!There are too many exciting changes to list them all here, but here’s a curated selection:Core: Add Node.get_orphan_node_ids, edit Node.print_orphan_nodes (GH-83757).Core: Add compression level support to Zip module (GH-103283).Core: Fix for debugging typed dictionaries (GH-106170).Core: Print script backtrace in the crash handler (GH-105741).Editor: Add editor setting to collapse main menu into a MenuButton (GH-105944).Editor: Enable Auto Reload Scripts on External Change by default in the editor settings (GH-97148).GUI: Add drag zoom feature with CTRL+MiddleMouseButton (GH-105625).GUI: Add property to control showing the virtual keyboard on focus events (GH-106114).Import: Use libjpeg-turbo for improved jpg compatibility and speed (GH-104347).Network: mbedTLS: Fix concurrency issues with TLS (GH-106167).Particles: Overhaul the cull mask internals for Lights, Decals, and Particle Colliders (GH-102399).Porting: Android: Annual versions bump for the Android platform (GH-106152).Porting: Android: Bump the minimum supported SDK version to 24 (GH-106148).Porting: Wayland: Handle fifo_v1 and clean up suspension logic (GH-101454).Rendering: Add Meshes to the Video RAM Profiler (GH-103238).Rendering: Allow moving meshes without motion vectors (GH-105437).Rendering: Forward+: Replace the current BRDF approximation with a DFG LUT and add multiscattering energy compensation (GH-103934).Rendering: FTI - Add custom interpolation for wheels (GH-105915).Shaders: Expose built-in region information (GH-90436).Changelog105 contributors submitted 261 fixes for this release. See our interactive changelog for the complete list of changes since the previous 4.5-dev3 snapshot.This release is built from commit 209a446e3.DownloadsGodot is downloading...Godot exists thanks to donations from people like you. Help us continue our work:Make a DonationStandard build includes support for GDScript and GDExtension..NET build (marked as mono) includes support for C#, as well as GDScript and GDExtension.While engine maintainers try their best to ensure that each preview snapshot and release candidate is stable, this is by definition a pre-release piece of software. Be sure to make frequent backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.Known issuesThere are currently no known issues introduced by this release.With every release, we accept that there are going to be various issues, which have already been reported but haven’t been fixed yet. See the GitHub issue tracker for a complete list of known bugs.Bug reportsAs a tester, we encourage you to open bug reports if you experience issues with this release. Please check the existing issues on GitHub first, using the search function with relevant keywords, to ensure that the bug you experience is not already known.In particular, any change that would cause a regression in your projects is very important to report (e.g. if something that worked fine in previous 4.x releases, but no longer works in this snapshot).SupportGodot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part and full-time developers hired thanks to generous donations from the Godot community. A big thank you to everyone who has contributed their time or their financial support to the project!If you’d like to support the project financially and help us secure our future hires, you can do so using the Godot Development Fund.Donate now Source: https://godotengine.org/article/dev-snapshot-godot-4-5-dev-4/ #dev #snapshot #godot0 Comments ·0 Shares ·0 Reviews -
-
-
-
-
-
-
-
More Stories