Godot Engine
Godot Engine
Your free, open-source game engine 🎮🛠️

Develop your 2D & 3D games, cross-platform projects, or even XR ideas!
  • 185 people like this
  • 13 Posts
  • 2 Photos
  • 0 Videos
  • 0 Reviews
  • software
Search
Recent Updates
  • 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 #boost
    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 #boost
    GODOTENGINE.ORG
    Upcoming (serious) Web performance boost
    Upcoming (serious) Web 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 WASM (WebAssembly) SIMD. 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 Locurcio (better known as Calinou) ran 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 GB (2×32 GB DDR5-5800 CL30)SSD: Solidigm P44 Pro 2 TBOS: Linux (Fedora 42)I 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 SIMDImprovement (approx.)Test linksLinkLink-Firefox 138(“+100 barrels” 3 times)2×Firefox 138(“+100 barrels” 6 times)10.17×*Chromium 134(“+100 barrels” 3 times)1.37×Chromium 134(“+100 barrels” 6 times)14.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 (for your CPU). 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. ↩
    Like
    Love
    Wow
    Sad
    Angry
    312
    0 Comments 0 Shares
  • 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 #godot
    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 #godot
    GODOTENGINE.ORG
    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 (Bluesky, Twitter). 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 (see our recent XR blogpost highlighting the latest Godot XR Game Jam), 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 (GH-67777). 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 (over 20× decrease in load times in the TPS demo)!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 (macOS with Xcode / Command Line Tools installed).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 (GH-106319).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 (GH-102330). Capry brings bent normal maps to further enhance specular occlusion and indirect lighting (GH-89988). 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 (GH-106267). 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 (GH-103584).Animation: Add animation filtering to animation editor (GH-103130).Audio: Implement seek operation for Theora video files, improve multi-channel audio resampling (GH-102360).Core: Add --scene command line argument (GH-105302).Core: Overhaul resource duplication (GH-100673).Core: Use Grisu2 algorithm in String::num_scientific to fix serializing (GH-98750).Editor: Add “Quick Load” button to EditorResourcePicker (GH-104490).Editor: Add PROPERTY_HINT_INPUT_NAME for use with @export_custom to allow using input actions (GH-96611).Editor: Add named EditorScripts to the command palette (GH-99318).GUI: Add file sort to FileDialog (GH-105723).I18n: Add translation preview in editor (GH-96921).Import: Add Channel Remap settings to ResourceImporterTexture (GH-99676).Physics: Improve performance with non-monitoring areas when using Jolt Physics (GH-106490).Porting: Android: Add export option for custom theme attributes (GH-106724).Porting: Android: Add support for 16 KB page sizes, update to NDK r28b (GH-106358).Porting: Android: Remove the gradle_build/compress_native_libraries export option (GH-106359).Porting: Web: Use actual PThread pool size for get_default_thread_pool_size() (GH-104458).Porting: Windows/macOS/Linux: Use SSE 4.2 as a baseline when compiling Godot (GH-59595).Rendering: Add new StandardMaterial properties to allow users to control FPS-style objects (hands, weapons, tools close to the camera) (GH-93142).Rendering: FTI - Optimize SceneTree traversal (GH-106244).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 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 issuesWindows executables (both the editor and export templates) have 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 (GH-106373). 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 (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
    0 Comments 0 Shares
  • Dev snapshot: Godot 4.5 dev 4
    Ambidextro
    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 #godot
    Dev snapshot: Godot 4.5 dev 4
    Ambidextro 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 #godot
    GODOTENGINE.ORG
    Dev snapshot: Godot 4.5 dev 4
    Ambidextro 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
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Live from GodotCon Boston: Web .NET prototype
    Hi there! I’m Adam Scott (@adamscott on GitHub), the Godot Engine Web team lead, live from the GodotCon Boston 2025!On May 6, during my State of Godot and the Web talk, I revealed a world premiere to the GodotCon attendees. It was something some thought impossible, and others were resigned to not seeing during their lifetime.Please note that the VOD isn’t available yet. The link to the recording will be added to the article once available. Meanwhile, you can access the slides of the presentation.The .NET team lead, Raul Santos (@raulsntos on GitHub), managed to create a prototype running C# on the Web.Click here to see the prototype!Wasn’t it impossible?We tried dotnet.js. It didn’t work.We tried NativeAOT-LLVM. It didn’t work.We (initially) tried statically linking Mono. It didn’t work.Well, Raul gave it another shot recently and managed to make it work. Here’s how he explains his accomplishment.As mentioned in my last update, the option of statically linking Mono seemed the most promising so we went ahead with that.I have opened a draft PR with the latest changes, but keep in mind it’s still a work in progress:[.NET] Add web export support #106125As a reminder, this approach still seems very brittle to me and has some limitations. The C# project must match the WASM features supported by the Godot template (this includes things like the threading model, exception handling, SIMD support, etc.). The TargetFramework version of the C# project must also match the one that was used to build the template.Additionally, since we currently don’t load any globalization data, we only support invariant mode. This is not a big problem because most users will likely rely on Godot’s localization features, so it’s not a blocker.On the last update the issue we run into was retrieving function pointers. We were able to workaround that by declaring stub C# methods on the project we use to retrieve the Mono runtime. When building the Godot templates, this ensures these methods are included in the generated table which seems to be enough to let us retrieve the function pointer at runtime.In a regular C# application built for the web platform you’d use dotnet.js which acts as a loader for the WASM file and other required assets. In Godot we have our own way of doing this, and as a result we’re currently missing a key part of the process.The Mono runtime exports some JavaScript functions but at the time of building the templates these are stubs. The dotnet.js loader takes care of replacing these stubs with their real implementation in dotnet.runtime.js. We’re currently missing this step so they remain stubs.This means some .NET APIs that rely on these exported JavaScript functions will not work, resulting in unexpected behavior. This includes things that must be implemented using browser APIs such as cryptography.Nonetheless, I think this is significant progress and has allowed us to build a demo running on the browser.What’s next for C#/.NET on the WebRaul has published his pull request as a draft so far. It means that there’s a lot of work and testing to do.We’re working as fast as we can to enable you to export C#/.NET to the Web, but we cannot commit to a specific timeline yet. If everything works great, it should be available in the next Godot release.What about file size? My .pck size has exploded!Currently, we do have to include some .dll files in your main .pck file in order to be able to run a C# project. For the simple prototype, the .pck file size is at an astounding 72 MiB. Fortunately, when Brotli-compressed, the file can be reduced to 23.8 MiB.It’s not perfect, as we often suggest targeting the smallest size when deploying to the Web. But the following announcement should help at least somewhat concerning this issue.Introducing built-in (pre)compressionI also revealed my upcoming built-in (pre)compression PR to the public.It will do the following:add an option to compress template files when compiling the engineadd export options to compress exported filesif the target server doesn’t support serving pre-compiled files, the preloading script will take over as a fallback, ensuring to download compressed files instead of non-compressed ones in order to save bandwidth.The future is brightC#/.NET support on the Web and file compression are two important features that will come to the platform. These features will push the limits of what can be done by Godot users on the Web. I do hope that you are as excited as we are!
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Godot Showcase - Somar
    Godot Showcase - SomarBy: Bastiaan Olij2 May 2025ShowcaseToday we present a showcase that is a little different. We interviewed Frederic Plourde and Daniel Castellanos who used Godot to create an educational XR experience for SOMAR, a non-profit association focusing on the conservation of marine life in the Algarve.Frederic Plourde is the XR Lead at Collabora where he drives AR/VR strategy, business development, and open-source innovation, leading a team of talented engineers working on XR customer projects and Monado, the cross-platform open-source OpenXR runtime. He is also Vice Outreach Officer at the Khronos Group where he promotes the OpenXR standard, fosters industry collaboration, and advocates for open and interoperable XR solutions. In the SOMAR project, Frederic took on a technical leadership role, overviewing the development of an immersive XR experience and leading Collabora’s efforts toward developing a Cardboard driver for Monado.Daniel Castellanos is the owner of Decacis Studio, and was contracted by Collabora to work mainly as a programmer/developer on the SOMAR project.Can you tell us a little more about the non-profit organisation behind the SOMAR project, who they are and what their mission is?Fred: SOMAR is a non-profit organization that focuses on protecting dolphins, whales, and marine life in the Algarve. Their mission is to raise awareness about the impact of human activities—like underwater noise pollution—on marine ecosystems. By combining scientific research, education, and innovative technology, SOMAR promotes sustainable practices and works to preserve the region’s ocean biodiversity for future generations.Can you tell us a bit about the XR experience you have created, and what you set out to achieve?Fred: The XR experience developed for the SOMAR project was designed to provide an immersive, educational tool to raise awareness about the impact of underwater noise pollution on marine life. By immersing users in realistic coastal and offshore environments of the Algarve, the experience showcases the effects of noise from tourist boats, particularly whale and dolphin-watching activities. Users can witness firsthand how these essential marine mammals are disrupted in their communication and hunting activities, gaining a deeper understanding of the challenges they face. Through this interactive experience, we aimed to engage users emotionally and inform them about the urgent need for conservation efforts to protect these creatures and their habitats.I understand the project is focused on being deployed in museums and in classrooms in Portugal. Can you tell us more about how this works?Fred: The SOMAR project was designed with flexibility in mind and offers content in both English and Portuguese through Godot’s built-in localization functionality. Built on OpenXR, the project benefits from a standardized framework that simplifies deployment across multiple devices, allowing us to target both museums and classrooms across Portugal. In museums and institutional venues, the Meta Quest version of the XR experience offers a high-fidelity, immersive experience with detailed visuals, allowing visitors to explore the application in a captivating, educational environment. Meanwhile, the PhoneXR version, optimized for accessibility, is intended for use in classrooms, where students can experience the same core content through low-cost Google Cardboard-type phone holders. By running the open-source cross-platform OpenXR runtime Monado on those phones, this version is designed to be more accessible and straightforward, making it possible for kids to dive into XR for the first time, all while learning about conservation in an interactive way. This dual deployment strategy ensures that the SOMAR project can reach diverse audiences, from the general public to younger generations, fostering environmental awareness across different settings.Will the experience be available to play by the general public and if so, where can they find it?Fred: Yes — the SOMAR experience is now available for everyone to explore! 🐬 Dive into our open-source XR project and discover the impact of underwater noise pollution on marine life. You can download and try it out for free on SOMAR’s official itch.io page.What were your main considerations in choosing Godot as the XR platform to create this experience?Fred: One of the main considerations for selecting Godot as the game engine for this project was finding an open-source engine that could provide flexibility, scalability, and a strong support community. Godot stood out for its robust 3D capabilities, ease of use, and ability to run on multiple platforms. Godot’s open-source nature felt like a perfect match for the Monado-driven experience and our collaboration with a non-profit as part of Collabora’s 1% for the Planet initiative, reinforcing our commitment to both innovation and social impact. Additionally, Godot’s growing reputation within the XR and gaming communities, coupled with its ongoing OpenXR development via a Khronos-funded project, gave us confidence in its future-proof capabilities, ensuring that the SOMAR project could evolve and expand over time.What was the most enjoyable part of using Godot?Daniel: I’ve been using Godot for a few years now, and the most enjoyable part of it for me is being able to iterate quickly. Throughout its development, the project experienced numerous revisions, but implementing these changes was generally straightforward and quick.What was the most difficult issue to overcome?Daniel: Having a balance between creating the most realistic or immersive experience possible while having to keep the experience performant on mobile devices apart from the Quest.Did you use any existing toolkits/plugins in developing this experience and what was the motivation behind choosing these or building your own solution?Daniel: Not really! The project doesn’t feature movement, and user input is limited, so building a custom solution was not a problem. Furthermore, keeping the project as simple as possible was one of my goals, both to prevent bugs and keep the code clean and easy to understand.What would you like to see evolve within Godot’s XR support that would have made building this project easier?Daniel: There was a single bug or unexpected behavior that I found during development, but nothing that couldn’t be worked around. For this project, I believe Godot was the right choice and made things as easy as they could be.Fred: The Meta Quest headset was chosen for the SOMAR project due to its strong popularity, excellent performance, and ease of use. As a standalone device, the Quest 3 delivers high-quality visuals and immersive experiences without needing a PC or external sensors, making it ideal for both museum venues and broader accessibility. Its widespread presence in the XR market ensures compatibility with future updates, allowing us to reach a wide audience while providing a seamless and engaging experience.How was the experience of using Godot with the Meta Quest?Daniel: Awesome! I used Meta Quest Link for most of the development to quickly test things, but every once in a while I deployed the project directly into the Meta Quest to measure performance. Fun fact: the project uses the Khronos OpenXR runtime, and it worked flawlessly first time.I also understand the project is also capable of using the Monado OpenXR runtime. Can you tell me a bit more about the motivation and goals of this port?Fred: The motivation behind also targeting the Monado OpenXR runtime was to ensure broader accessibility and compatibility across different platforms, particularly for low-cost, phone-based VR systems. Monado’s open-source nature aligns with our goal of creating a flexible, cost-effective solution that’s not reliant on proprietary ecosystems. For this project, Collabora dedicated engineering resources to develop a new Monado Cardboard driver, which enables the experience to run on Android phones with Cardboard VR headsets, making the immersive content accessible to a wider audience, including kids and students. This port reinforces our commitment to open standards, allowing for future enhancements and maintaining the project’s long-term sustainability. You can find the code for that driver on the freedesktop.org GitLab. It will be upstreamed soon.Fred, specifically for you, can you give us a synopsis of what Monado is and your perspective on the combination of using Godot with Monado?Fred: Monado is an open-source, cross-platform OpenXR runtime designed to provide the fundamental building blocks for XR device vendors and developers. By offering compatibility with major platforms like Linux, Windows, and Android, Monado serves as a versatile foundation for creating and deploying XR applications. Combining Monado with Godot, an open-source game engine, creates a powerful synergy. Godot’s flexibility, combined with Monado’s OpenXR support, enables both the simplicity of Godot’s development environment and the vast compatibility of Monado’s runtime.Are there any plans to bring this project to other VR headsets?Fred: Yep, we’re currently testing the SOMAR application on other platforms and devices. Since Monado is built on OpenXR, it’s designed to be highly adaptable and should be able to run on many other platforms and devices with minimal effort. However, as an open-source project, the real strength lies in the community. While we continue to extend support for more headsets, we encourage developers and enthusiasts to contribute to the project and help expand its reach even further. The open-source nature of Monado makes it easy for anyone to pitch in and bring support to new platforms, creating a collaborative and growing ecosystem.What’s next for you, anything interesting on the horizon?Daniel: Sure. I’m currently working on my next game: Stellar Checkpoint, which will be available in both VR and desktop/flat modes. It should come out later this year, so stay tuned!Finally, is there any advice you’d like to share especially to someone considering using Godot for their next XR project?Fred: Absolutely! One of the most exciting things about using Godot for XR projects is the incredible community that surrounds it. Godot has such a passionate and supportive group of developers, artists, and creators, and it’s all accessible through platforms like the Godot Discord. If you’re just getting started with XR in Godot, I highly recommend joining the Discord first.Daniel: Just try it. Read the official documentation, place a couple of cubes as hands and experience how easy it is to get started! And if you get stuck, there is always someone from the community willing to help. Godot scales really well, and it works for both simple and complex projects, and best of all, being open-source means you can extend it to fit your needs.Collabora is a global consultancy specializing in delivering the benefits of open-source software to the commercial world. Whether it’s the Linux kernel, graphics, multimedia, machine learning or XR, Collabora’s expertise spans across all key areas of open-source software development. By harnessing the potential of community-driven open-source projects, and re-using existing components, Collabora helps its clients reduce time to market and focus on creating product differentiation. To learn more, please visit collabora.com.Decasis studio is an independent development studio run by Daniel Castellanos.SOMAR is a non-profit association founded in 2020, dedicated to the conservation of the Algarve’s dolphins, whales, and broader marine life. With a focus on protecting the oceans, SOMAR operates through a variety of initiatives aimed at safeguarding the region’s rich biodiversity. The organization is driven by its commitment to raise awareness about the negative impacts of human activities, such as underwater noise pollution, on marine fauna. By combining scientific research, environmental education, and innovative technologies, SOMAR seeks to promote sustainable practices and inspire collective action to preserve the natural marine ecosystems of the Algarve for future generations.
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Dev snapshot: Godot 4.5 dev 3
    Cornerpond A game by foolsroomDev snapshot: Godot 4.5 dev 3By: Thaddeus Crews25 April 2025Pre-releaseIf the past snapshot was any indication, you might think that development updates aren’t slowing down anytime soon. And… You’d be right! Indeed, progress has been booming, and the amount of new features added even compared to the previous release is staggering; curating this selection was especially difficult. As always, new features mean new bugs in need of fixing, so we encourage everyone interested to get feedback and bug reports in as early as possible.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 Cornerpond, a fishing game that takes place entirely in the corner of your desktop. It is developed by foolsroom. You can get the game on Steam and follow the developer on Twitter.HighlightsIn case you missed them, see the 4.5 dev 1 and 4.5 dev 2 release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 3.Screen reader supportAccessibility should be every developer’s top priority, full-stop. Someone being excluded from an experience for factors outside of their control is an area that video games and applications have the potential to circumvent entirely. It does, however, take a solid framework to allow such accommodations to be developed. To streamline this process for everyone—players and developers alike—our resident tech guru bruvzg took to the absolutely Herculean task of integrating AccessKit to Godot as a whole.GH-76829 was a project started two years ago, which progressed in bursts alongside the AccessKit framework. For the 4.5 release, we made it a priority to finalize, and thus we now merged this major feature with over 32,000 lines of code, after hundreds of comments with feedback/testing. Users are encouraged to look at the pull request for more information, as there’s no feasible way we could properly summarize these changes. Unsurprisingly, this was by far the change with the most ramifications of the entire snapshot, so much so that it’s already seen multiple fixes to address regressions (even one right when validating this snapshot), but it’s well worth it. After all, accessibility is our top priority!This is only the first but massive step towards making Godot more accessible. In particular for the editor, a lot more work will be needed to make it really usable, as well as integrate with accessibility frameworks for mobile or web platforms.Script backtracingIn any other snapshot, this would’ve been the main highlight, as adding backtracing to GDScript was among the most highly requested features from our users for years. Two brave souls, Mikael Hermansson (godot-jolt) and Juan Linietsky (up-and-coming developer), helmed this task and made this process possible with GH-91006. This will make it much easier for users to find the cause of warnings/errors that previously required manually hunting down bugs. Stack traces are now available in projects exported in release mode as well if the Debug > Settings > GDScript > Always Track Call Stacks project setting is enabled. This can make it easier for users to report issues in a way that developers can track down. Inspector section togglesAnother long-awaited feature, inspector section toggles, is now a part of the engine as of GH-105272. lodetrick has expanded editor functionality to what you see below: sections with their own dedicated checkbox to denote if they’re enabled.And more!There are too many exciting changes to list them all here, but here’s a curated selection:3D: Set correct position of node with Align Transform with View in orthographic view (GH-99099).Audio: Fix AudioStreamPlayer3D stereo panning issue (GH-104853).Buildsystem: Fix .sln project generation logic for Rider to support all OS and all C++ toolchains (GH-103405).Buildsystem: Update the Android NDK to the latest LTS version (r27c) (GH-105611).C#: Avoid unnecessary StringName allocations on not implemented virtual _Get and _Set method call (GH-104689).Core: Add create_id_for_path() to ResourceUID (GH-99543).Core: Add negative index to Array.remove_at and Array.insert (GH-83027).Core: Add thread safety to Object signals (GH-105453).Editor: Autocompletion: Don’t add parenthesis if Callable is expected (GH-96375).Editor: Fix exported Node/Resource variables resetting when extending script in the SceneTreeDock (GH-105148).Editor: Project manager: Add option to backup project when it will be changed (GH-104624).Editor: Support custom features in project settings dialog (GH-105307).Export: Use project settings overrides with the target preset features instead of current platform features (GH-71542).GDExtension: Optimize gdvirtual function layout (GH-104264).GUI: Add FoldableContainer (GH-102346).GUI: Add boolean toggle for middle-click to fire tab_close_pressed signal (GH-103024).GUI: Add separate minimize_disabled and maximize_disabled window flags (GH-105107).GUI: Add support for OEM Alt codes input (GH-93466).GUI: Implement SVGTexture auto-scalable with font oversampling (GH-105375).GUI: Make embed floating window respect Always On Top configuration (GH-103731).GUI: Replace global oversampling with overrideable per-viewport oversampling (GH-104872).Input: Add configuration option to disable Scroll Deadzone on Android (GH-96139).Input: Allow all tool modes to select (GH-87756).Plugin: Add maven publishing configuration for Godot tools (GH-104819).Porting: Android: Add new actions and enhancements to TouchActionsPanel (GH-105140).Porting: Android: Embed TouchActionsPanel directly into the editor UI (GH-105518).Rendering: Detect more pipeline settings at load time to avoid pipeline stutters (GH-105175).Rendering: Renderer: Reduce scope of mutex locks to prevent common deadlocks (GH-105138).XR: OpenXR: Request the XR_KHR_loader_init extension (GH-105445).Changelog115 contributors submitted 253 fixes for this release. See our interactive changelog for the complete list of changes since the previous 4.5-dev2 snapshot.This release is built from commit 28089c40c.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
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Dev snapshot: Godot 4.5 dev 1
    That's not my Neighbor A game by Nachosama GamesDev snapshot: Godot 4.5 dev 1By: Thaddeus Crews20 March 2025Pre-releaseOur first development snapshot for 4.5 has arrived! As is often the case following a feature-freeze, several quality PRs were finally released from the collective backlog, as merging them at the time would’ve been too much of a risk. In truth, the quantity has been so great that we could’ve gotten away with releasing a snapshot a week ago! However, we found it worth our time to hold out and get as many contributions integrated as possible, as a way of thanking those who’ve been so patient in waiting for their contributions to see the light of day.A significant chunk of the changes in this release are bugfixes, the majority of which you will be see backported to 4.4 in a 4.4.1-stable release next week! As such, we encourage testing this build in order to ensure a smooth release for both versions. Granted, as this is a pre-release, the bugfixes aren’t the only additions; the usual safety precautions that come with such an environment should be taken. Even though we prepare these snapshots such that they’re suitable for general testing, backups and/or version control are recommended to prevent the loss of data.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 That’s not my Neighbor, where you take the role of a doorman ensuring the safety of your apartment complex from a mysterious surge of doppelgangers. Developed by Nachosama Games, the game was recently released on Steam.Highlights“Mute Game” togglePreviously, if a developer wished to mute the audio while testing in the editor, they had to either use the operating system’s builtin tools for sound or outright pause/close their work. Malcolm Anderson sought a more streamlined solution, and integrated a new toggle on the Game view (GH-99555). Now if developers wish to halt/restore audio output entirely, it’s just one click away!Drop preload Resources as UIDWith UID support being a part of the engine as of 4.4—read more about them here—we’ve enabled further optimizations via their integration with core components. However, as this is a new change, there’s still a few areas that have been lagging behind on support. In particular: preloaded resources lacked the ability to be loaded as UID if dragged. Tomasz Chabora has rectified this limitation in GH-99094, and you’ll find plenty more like this in our curated selection below.Allow selecting multiple remote nodes at runtimeA long-awaited QOL addition to the editor experience has finally arrived! Thanks to Michael Alexsander, developers now have the ability to select multiple nodes in a runtime context! Check out their pull request GH-99680 for more information on how this was integrated.Chunk tilemap physicsThe current implementation of TileMapLayer uses individual collision bodies for every single cell, which is extremely wasteful and a likely cause of runtime performance issues for 2D scenes relying on physics. Gilles Roudière took to entirely reworking this system in GH-102662, ensuring that cells take every possible opportunity.And more!There are too many exciting changes to list them all here, but here’s a curated selection:2D: Improve usability of Camera2D (GH-101427).3D: Fix Camera3D gizmo representation to accurately reflect FOV (GH-101884).3D: Use physical keys for the Q/W/E/R editor shortcuts (GH-103533).Animation: Support hiding functions calls in Method Tracks (GH-96421).Core: Add scene_changed signal to SceneTree (GH-102986).Core: Add DDS image load and save functionality (GH-101994).Core: Don’t duplicate internal nodes (GH-89442).Core: Implement get_size and get_access_time methods to FileAccess (GH-83538).Debugger: Allow locating VRAM resource by double-clicking (GH-103949).Documentation: Overhaul Node3D documentation (GH-87440).Editor: Add option to copy a file’s name in the FileSystem dock (GH-96536).Editor: Allow ignoring debugger error breaks (GH-77015).Editor: Don’t save unnecessarily with save_before_running (GH-90034).Editor: Improve drag and drop into array property editors (GH-102534).Editor: Replace UID and Surface upgrade tools with universal one (GH-103044).Export: Android: Convert compress_native_libraries to a basic export option (GH-104301).GDExtension: Include precision in extension_api.json (GH-103137).GDScript: Highlight warning lines in Script editor (GH-102469).GUI: Implement properties that can recursively disable child controls’ FocusMode and MouseFilter (GH-97495).GUI: Improve ColorPicker picker shape keyboard and joypad accessibility (GH-99374).Import: Use UID in addition to path for extracted meshes, materials and animations (GH-100786).Particles: Add emission shape gizmos to Particles2D (GH-102249).Particles: Fix particle jitter when scene tree is paused (GH-95912).Porting: Android: Add linux-bionic RID export option (GH-97908).Porting: Android: Add a TouchActionsPanel to editor (GH-100339).Porting: Android: Enable support for volume button events (GH-102984).Porting: Linux: Implement native color picker (GH-101546).Porting: macOS/iOS: Ensure only one axis change event is produced during single process_joypads() call (GH-104314).Porting: Windows: Remove visible WINDOW_MODE_FULLSCREEN border by setting window region (GH-88852).Rendering: Clean up more dynamic allocations in the RD renderers with a focus on 2D (GH-103889).Rendering: Optimize _fill_instance_data function in Forward+ renderer (GH-103547).Rendering: Significantly reduce per-frame memory allocations from the heap in the Mobile renderer (GH-103794).Rendering: Update ViewportTexture path relative to its local scene instead of the Viewport owner (GH-97861).Rendering: Use lower shadow normal bias for distant directional shadow splits (GH-60178).Rendering: Use separate WorkThreadPool for shader compiler (GH-103506).Scripting: Fix script docs not being searchable without manually recompiling scripts (GH-95821).Changelog121 contributors submitted 403 fixes for this release. See our interactive changelog for the complete list of changes since the 4.4-stable.This release is built from commit 97241ffea.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
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Release candidate: Godot 4.4.1 RC 2
    Haulin' Oats A game by Gramps GamesRelease candidate: Godot 4.4.1 RC 2By: Rémi Verschelde21 March 2025Pre-releaseWe released Godot 4.4 in early March and we are delighted to see the reception, with so many users upgrading to it on day 1 and sharing their favorite new changes on social media! If you haven’t seen the 4.4 release page, it’s well worth a read!Since then, we’ve started the development phase for Godot 4.5 at full speed (with a first dev snapshot released yesterday!), but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.After a first 4.4.1-rc1 snapshot last week, we decided to make a second release candidate as a few more critical bugs had fixes available to backport. Please test it if you can and report any new issue that was not present in 4.4-stable, as we want to ensure we don’t introduce new regressions in this hotfix release.Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.Please, consider supporting the project financially, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.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 illustration picture for this article comes from Haulin’ Oats, a board game about truck driving, the US highways, and oatmeal (?!), which was recently released in version 1.0 on Steam. It is developed by Gramps Garcia, the tireless maintainer of the popular GodotSteam integration for the Steamworks SDK.What’s new21 contributors submitted around 39 improvements for this release. See our interactive changelog for the complete list of changes since the 4.4.1-rc1 snapshot. You can also review all changes included in 4.4.1 compared to the 4.4 release.Below are the most notable changes in this second release candidate (with critical fixes highlighted in bold):3D: Fix RemoteTransform3D to always use global rotation if use_global_coordinates is true (GH-97498).Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (GH-103921).Animation: Fix rest translation space in LookAtModifier3D (GH-104217).Core: Use single RNG instance for FileAccessEncrypted IV generation (GH-103415).Editor: Make EditorProperty and its child EditorProperty behave like sibling nodes when handling mouse events (GH-103316).Editor: Create .uid files for detected new files (GH-104248).Editor: Change root node transform warning to only show up for position (GH-104331).Editor: Fix use after free in the editor inspector section cleanup (GH-104362).Export: Android: Convert compress_native_libraries to a basic export option (GH-104301).GDScript: Fix head class range to include class_name (GH-104114).GDScript: Add clearing of static_gdscript_cache to GDScriptCache (GH-104281).GUI: Fix error when embedded popup is closed while resizing (GH-102504).GUI: Label: Fix min. size calculation counting extra spacing twice (GH-103728).Import: Force multiple of 4 sizes for Betsy compressor (GH-104275).Import: Fix crash when reimporting nested gltf scenes (GH-104384).Input: macOS/iOS: Ensure only one axis change event is produced during single process_joypads() call (GH-104314).Physics: Fix interpolation in XR (GH-103233).Physics: Fix ConcavePolygonShape3D always enabling backface_collision when using Jolt Physics (GH-104310).Plugin: JavaClassWrapper: Fix mistake in last fix for org.godotengine.godot.Dictionary conversion (GH-104156).Porting: macOS: Fix editor loading crash on native menu click (GH-103892).Porting: macOS: Update mouse-entered state when subwindow closes (GH-104328).Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (GH-104154).Rendering: Fix Metal handling of cube textures; assert equal dimensions (GH-104341).XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (GH-104249).This release is built from commit abef5e0d2.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
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Maintenance release: Godot 4.4.1
    Psycho Patrol R A game by Consumer SoftproductsMaintenance release: Godot 4.4.1By: Rémi Verschelde26 March 2025ReleaseWe released Godot 4.4 in early March and we are delighted to see the reception, with so many users upgrading to it on day one and sharing their favorite new changes on social media! If you haven’t seen the 4.4 release page, it’s well worth a read!Since then, we’ve started the development phase for Godot 4.5 at full speed (with a first dev snapshot released last week!), but we also put our main focus on fixing remaining and newly reported regressions that affect users who upgraded to 4.4. A few of these issues can be showstoppers for affected users, so we decided to release a 4.4.1 maintenance release as soon as possible.See below for a list of the most relevant changes. This release includes fixes to security vulnerabilities in the mbedTLS third-party library, so we strongly recommend updating for any game using networking functionality.Maintenance releases are expected to be safe for an upgrade, but we recommend to always make backups, or use a version control system such as Git, to preserve your projects in case of corruption or data loss.Please, consider supporting the project financially, if you are able. Godot is maintained by the efforts of volunteers and a small team of paid contributors. Your donations go towards sponsoring their work and ensuring they can dedicate their undivided attention to the needs of the project.Godot is downloading...Godot exists thanks to donations from people like you. Help us continue our work:Make a DonationThe illustration picture for this article comes from Psycho Patrol R, a FPS/mecha hybrid europolice sim, which was recently released in Early Access on Steam. It is developed by Consumer Softproducts, known for their previous Godot hit Cruelty Squad.Changes58 contributors submitted around 125 fixes for this release. See our interactive changelog for the complete list of changes since the 4.4 release.Below are some of the most notable changes (with critical fixes highlighted in bold):3D: Fix RemoteTransform3D to always use global rotation if use_global_coordinates is true (GH-97498).Animation: Fix console errors and crash in cleanup code for PhysicalBoneSimulator3D (GH-103921).Animation: Fix missing process_state error in blend spaces (GH-104018).Animation: Fix rest translation space in LookAtModifier3D (GH-104217).Audio: Set interactive music streams as meta streams (GH-104054).Audio: Fix AudioEffectPitchShift issues when pitch_scale is set to 1 (GH-104090).Buildsystem: Android: Fix build with disable_3d (GH-103523).C#: Use ObjectID when converting Variant to GodotObject (GH-98034).C#: Skip re-saving .csproj when TFM is unchanged (GH-103714).Core: Use single RNG instance for FileAccessEncrypted IV generation (GH-103415).Core: Fix Invalid Task ID errors in ResourceLoader (GH-104060).Editor: Fix copying a Node with a signal potentially resulting in an editor crash (GH-96372).Editor: Make EditorProperty and its child EditorProperty behave like sibling nodes when handling mouse events (GH-103316).Editor: Fix TextEdit scrolls wrong on text selection (GH-103410).Editor: Update script modified times when saved in EditorNode (GH-103695).Editor: Fix ownership when pasting non root with child nodes in new scene (GH-103769).Editor: Create .uid files for detected new files (GH-104248).Editor: Fix editor crash when inspecting 2 objects handled by the same plugin (GH-104296).Editor: Change root node transform warning to only show up for position (GH-104331).Export: iOS: Restore one-click deploy device enumeration using Xcode (GH-103590).Export: Android: Convert compress_native_libraries to a basic export option (GH-104301).GDExtension: Correctly register editor-only OpenXR* classes’ api_type (GH-103869).GDScript: Fix head class range to include class_name (GH-104114).GDScript: Add clearing of static_gdscript_cache to GDScriptCache (GH-104281).GUI: Fix Tree keyboard navigation in RTL direction (GH-102865).GUI: Fix changed signal emission in Curve::set_point_offset (GH-96296).GUI: Fix spinbox decimal issues when update_on_text_changed = true (GH-100684).GUI: Fix error when embedded popup is closed while resizing (GH-102504).GUI: VideoStreamPlayer: Stop video on exit tree (GH-103396).GUI: Use Viewport’s default texture filter/repeat in GUI tooltips (GH-103636).GUI: Label: Fix min. size calculation counting extra spacing twice (GH-103728).Import: Fix headless import always emits errors (GH-103403).Import: BasisUniversal: Ensure ASTC’s HDR variant is supported when transcoding (GH-103766).Import: ResourceLoader: Do not wait for the main thread during initial reimport (GH-104013).Import: Force multiple of 4 sizes for Betsy compressor (GH-104275).Import: Fix crash when reimporting nested gltf scenes (GH-104384).Input: Fix Android mouse capture issues (GH-103413).Input: macOS/iOS: Ensure only one axis change event is produced during single process_joypads() call (GH-104314).Navigation: Make NavigationLink3D properly update on visibility change (GH-103588).Particles: Fix particle jitter when scene tree is paused (GH-95912).Particles: Fix GPU particles not emitting at some configured rates when scale curve is zero (GH-103121).Physics: Fix interpolation in XR (GH-103233).Physics: Fix broken negative scaling when using Jolt Physics (GH-103440).Physics: Fix ConcavePolygonShape3D always enabling backface_collision when using Jolt Physics (GH-104310).Physics: Fix shape always being zero with get_rest_info when using Jolt Physics (GH-104599).Plugin: JavaClassWrapper: Improve handling of typed array arguments (GH-102817).Plugin: JavaClassWrapper: Fix converting returned arrays to Godot types (GH-103375).Plugin: JavaClassWrapper: Fix conversion to/from org.godotengine.godot.Dictionary that regressed (GH-103733, GH-104156).Porting: Linux: X11: Fix check for is_maximized to require both horizontal and vertical (GH-103526).Porting: Linux: Offload RenderingDevice creation test to subprocess (GH-103560).Porting: macOS: Swap Nintendo face buttons (GH-103661).Porting: macOS: Update mouse-entered state when subwindow closes (GH-104328).Porting: Windows: Fix get_modified_time on locked files (GH-103622).Porting: Windows: Use more efficient sleep approach when low-processor mode is enabled (GH-103773).Rendering: Add ASTC HDR format variants (GH-102777).Rendering: Fix voxelizer normals (GH-102893).Rendering: Fix 2D quad primitive missing lighting data in GLES3 renderer (GH-102908).Rendering: Fix uninitialized value in Tonemap (GH-103092).Rendering: Use separate WorkThreadPool for shader compiler (GH-103506).Rendering: Fix incorrect parameters passed to VMA (GH-103730).Rendering: MetalFX: Change fallback behavior (GH-103792).Rendering: Fix GLES3 gaussian_blur mipmap setup (GH-103878).Rendering: CPUParticles2D: Fix physics interpolation after entering tree with emitting = false (GH-103966).Rendering: Vulkan: Disable layers in editor deemed buggy by RenderDoc (GH-104154).Rendering: Fix Metal handling of cube textures; assert equal dimensions (GH-104341).Rendering: Disable broken Vulkan layers before running RenderingDevice tests (GH-104572).Shaders: Fix 2D instance params crashing using outside of main() (GH-103348).Shaders: 2D: Fix light shader accessing TEXTURE_PIXEL_SIZE (GH-103617).Thirdparty: Theora: Fix YUV422/444 to RGB conversion (GH-102859).Thirdparty: Update to latest version of Swappy (GH-103409).Thirdparty: mbedTLS: Update to version 3.6.3 (security fix) (GH-104562).XR: Correct occlusion culling viewport location calculation when projection uses asymmetric FOV (GH-104249).Known incompatibilitiesAs of now, there are no known incompatibilities with the previous Godot 4.4 release. We encourage all users to upgrade to 4.4.1.If you experience any unexpected behavior change in your projects after upgrading to 4.4.1, please file an issue on GitHub.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
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Godot XR update - March 2025
    Godot XR Gamejam III logoGodot XR update - March 2025By: Bastiaan Olij28 March 2025Progress ReportIn the second half of February 2025, the Godot XR Community held their latest Godot XR Game Jam. It was organised by Bastiaan Olij and Malcolm Nixon acting in their roles as representatives of the general Godot XR Community.This was a week-long event in which developers had to create an XR application using the theme “Enchanted”. XR has great potential on this topic, whether you interpret this as physical spell casting, a magical environment, or something else, and the entries did not disappoint.Compared to our previous game jam, we went from 26 entries and 283 ratings to 27 entries and 290 ratings. Not a great jump, however we had 125 people join this game jam compared to 77 in our previous jam. Based on feedback we’ve received on our Discord channel, the main reason the higher participation did not translate to more entries was due to a number of participants not finishing their entry in time. We’ve had overwhelmingly positive feedback on the experience with many new developers becoming active members in our XR community.While subjective, the overall quality of the entries seems to have been a lot higher than the previous jam so we are really looking forward to what the future will bring.Top 5Let’s take a closer look at the top 5 entries!No 5. SyneedSyneed by Hiina ranked 5th with 13 ratings (Score: 3.705).Our fifth place entry is a puzzle game where you need to manipulate a stream of particles using attractors. By adjusting these within the world, the trajectory of the particles changes and you can guide them past a number of stars. The goal is for the particle stream to touch all stars.No 4. Keziah’s HouseKeziah’s House by Warping Realities VR ranked 4th with 12 ratings (Score: 3.764).Our fourth place goes to this great escape room game. You find yourself waking up trapped in a derelict old house. Solve puzzles while casting magic spells to find your way out.No 3. The Chant of CthulhuThe Chant of Cthulhu by Copper Tunic ranked 3rd with 12 ratings (Score: 3.833).Our third place is a horror karaoke game. You need to sing out loud the chants given and as you do so, more and more “clones” are created that repeat your words. As everything reaches a crescendo, you summon the monsters of the deep. All within a church environment that fits the concept well. Very good use of recording and sound and with a freeplay mode you can extend the fun by manually placing clones that sing out your recorded song.No 2. EZ EnchantsEZ Enchants by Dragon1Freak ranked 2nd with 12 ratings (Score: 3.931).Our runner-up is a fun little crafting game. As customers walk past your little magic store, they ask you to enchant different objects. You have to perform different actions according to the customer’s wishes, all within a time limit. A very polished, good looking entry that is fun to play!No 1. Your Hand Is A Dragon (XR)Your Hand Is A Dragon (XR) by Andyman404 ranked 1st with 10 ratings (Score: 4.020).Our winning entry is a very distinct game, as we’ve come to expect from Andyman404. You play as a dragon that attacks fortresses manned by knights. What makes it unique is that you control the dragon with your hand as if it is a sockpuppet, while simultaneously roaring out loud to make the dragon breathe fire. It’s especially impressive as Andyman404 only had 3 days to dedicate to this entry.Other entriesMalcolm Nixon created the below video on his YouTube channel that shows off the top 5 games and highlights many of the other entries. It is well worth a watch to get an impression of the entries that were submitted.The next Godot XR Community game jamThe next jam will likely be in August or September of this year. Communication around the game jam has moved to the newly created Godot XR Community itch.io page, so be sure to follow that account. Join the Godot XR Community in the XR channel on Godot’s official Discord server if you’re interested in using Godot to develop XR projects.
    0 Comments 0 Shares
  • GODOTENGINE.ORG
    Dev snapshot: Godot 4.5 dev 2
    Fortune Avenue A game by Binogure StudioDev snapshot: Godot 4.5 dev 2By: Thaddeus Crews8 April 2025Pre-releaseWith the 4.4 release a little over a month ago, one might’ve expected content updates to trickle out slowly for our initial 4.5 development snapshots. …Well, maybe not after seeing the 4.5 dev 1 snapshot, but surely they couldn’t follow that up with another flood of anticipated changes, right?You fools. You underestimate the passion of our community yet again, as 250 improvements are ready to roll for this snapshot. What’s more is that, unlike last time, we’re not just in bugfix territory any more. Now the time for proper enhancements and features entirely unique to this development cycle has come, and this blogpost will aim to highlight them to the best of our ability. As always: with new features comes new bugs (probably), so the sooner we can get feedback and bug reports in, the better.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 Fortune Avenue, a capitalism simulator where you shrewdly extort and outmaneuver your friends in a chaotic, board-game environment. It is developed by Binogure Studio. You can wishlist the game on Steam and follow the developers on Bluesky.HighlightsIn case you missed them, see the 4.5 dev 1 release notes for an overview of some key features which were already in that snapshot, and are therefore still available for testing in dev 2.Dedicated 2D navigation serverFor the longest time, the navigation server was a unified beast. 3D and 2D, Yin and Yang, two sides of the same coin. While beautiful on a philosophical level and undoubtedly a heart-wrenching screenplay waiting to happen, it was a pretty sour deal for the 2D side of things. Previously, if you were making a 2D game and wanted to make use of navigational features, you were effectively locked into a bunch of 3D settings and features that would never see any use but would absolutely see a bump in output size.Steps have been taken during this initial 4.5 period to ensure that navigation logic is more cleanly divided and organized, spearheaded by our navigation guru smix8, but none of this could’ve been possible without cleanly splitting the navigation server in twain. Longtime contributor AThousandShips took the mantle on this project, and she successfully accomplished this goal with GH-101504. From now on, users will be able to selectively enable/disable the navigation modules for 2D and/or 3D, instead of being forced into an all-or-nothing ultimatum.Reorganized shader editor UIThe editor experience for shaders and visual shaders got some TLC in GH-100287. Helmed by Yuri Rubinsky, this PR provides several requested features and QOL updates to our shading friends. Below is a preview image taken directly from the PR in question, where you’ll find more information on what to expect when you get your hands on it this snapshot.Changing editor language without restartGodot has built-in support for handling multiple languages, both for the games you create and the editor itself. However, in contrast to games built with the engine, it wasn’t possible to change the current language on-the-fly within the editor itself. Our editor expert Tomasz Chabora addressed this issue in GH-102562, ensuring that users can swap to their preferred language within the same editor session! While this is somewhat niche in practice, our stance on convenience and accessibility is one that we take very seriously, and a seamless/streamlined editor experience is exactly the sort of thing we want as many users as possible to enjoy.Fragment density map supportWhen rendering for VR headsets, the pixels around the outside of the viewport are less important, because they will be somewhat distorted by the lens, and players will tend to turn their head rather than move their eyes too far from the center.Godot already supports using the Vulkan “Fragment Shading Rate” extension to render the outside of the viewport at a lower resolution, leading to performance improvements with little noticeable decrease in quality. However, on standalone VR headsets (like the Meta Quest), this extension either isn’t supported, or doesn’t provide as big performance improvements as the Vulkan “Fragment Density Map” extension.In GH-99551, rendering expert DarioSamo has implemented support for the “Fragment Density Map” extension, making the Vulkan Mobile renderer more viable for VR on standalone headsets.Wayland: Native sub-window supportThanks to the tireless efforts of Riteo, the X11 alternative Wayland has been given first-class treatment on Godot. It’s been a long road to stand as an equal to such a dominant display server protocol, but it’s getting closer with every passing PR; though some have been hesitant to make the change for one reason: lack of native sub-windows. Taking on this hurdle for parity was no small feat, but it was a requirement for supporting embedded game windows on Wayland, so (GH-101774) made it happen all the same:And more!There are too many exciting changes to list them all here, but here’s a curated selection:2D: Optimize usability of VisibleOnScreenNotifier2D (GH-100874).3D: Allow customizing debug color of Path3D (GH-82321).Animation: Add delta argument to _process_modification() as _process_modification_with_delta(delta) and expose advance() at Skeleton3D (GH-103639).Animation: Add selection box movement/scaling to the animation bezier editor (GH-100470).Core: Optimize Object::cast_to by assuming no virtual and multiple inheritance, gaining 7x throughput over dynamic_cast (GH-103708).Editor: Add UID to file tooltip (GH-105069).Editor: Improve default/no query quick open dialog behavior (GH-104061).Editor: Remove New prefix from EditorResourcePicker (GH-104604).Export: Updates and fixes to the Android prebuilt export logic (GH-103173).GDScript: Return early when parsing invalid super call (GH-104509).GUI: Improve Popup content_scale_factor (GH-104399).GUI: Optimize startup times by using ubrk_clone instead of ubrk_open (GH-104455).GUI: Scroll EditorInspector while drag & drop hovering near the edges (GH-103943).Import: Load decompressable texture format if no supported one is found (GH-104590).Navigation: Allow compiling templates without navigation features (GH-104811).Physics: Allow compiling templates without physics servers (GH-103373).Physics: Jolt: Update to 5.3.0 (GH-104449).Porting: Android: Add an editor setting to enable/disable TouchActionsPanel (GH-105015).Porting: Android: Add support for Mute Game toggle (GH-104409).Porting: Android: Auto create nomedia file to hide project files in media apps (GH-104970).Porting: Linux: Detect KDE/LXQt and swap OK/Cancel buttons to Windows style (GH-104959).Porting: macOS: Replace custom main loop with [NSApp run] and CFRunLoop observer (GH-104397).Porting: macOS: Support more controllers on macOS 11+ (GH-104619).Rendering: Avoid using a global variable to store instance index in canvas items shader in RD renderer (GH-105037).XR: Deactivate the CameraServer by default (GH-104232).XR: OpenXR: Clean-up OpenXRExtensionWrapper by removing multiple inheritance and deprecating OpenXRExtensionWrapperExtension (GH-104087).Changelog90 contributors submitted 250 fixes for this release. See our interactive changelog for the complete list of changes since the previous 4.5-dev1 snapshot.This release is built from commit af2c71397.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
    0 Comments 0 Shares
  • 0 Comments 0 Shares
  • 0 Comments 0 Shares
More Stories