<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Defold</title>
		<description>Defold is a free, cross-platform game engine for building 2D and 3D games for desktop, web, mobile, and consoles.</description>
		<link>https://www.defold.com</link>
		<atom:link href="https://www.defold.com/feed.xml" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Scottish game development studio 8BitSkull partners with Defold</title>
			<description>&lt;p&gt;&lt;em&gt;In the wake of their recent success with Skull Horde the Scottish game development studio 8BitSkull has decided to partner with Defold for future indie titles&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;STOCKHOLM, SWEDEN - Apr. 29, 2026 - The Defold Foundation today announced that Scottish game development studio 8BitSkull joins the foundation as a corporate partner. The Defold Foundation will work together with 8BitSkull to accelerate development of new features for the Defold game engine.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“8BitSkull has established their studio as the creators of high quality Steam games. My personal favorite is the arcade action game Void Scrappers, but the recently released masterpiece Skull Horde will give it a run for its money. We are immensly proud that 8BitSkull have chosen Defold as their game engine of choice.”&lt;/em&gt;, said Defold Product Owner Björn Ritzl.&lt;/p&gt;

&lt;p&gt;The Defold Foundation will work on general performance improvements and desktop specific functionality in the Defold game. The new features will be used by 8BitSkull in their upcoming titles and made available to all Defold users through the normal monthly product releases.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“We have been using Defold for almost 10 years and the engine has been a significant contributor to our success as a studio. We are very happy to now be in the position to formalise our support for the engine and excellent team behind it through a corporate sponsorship.”&lt;/em&gt;, said Alex Asvegren, lead developer at 8BitSkull.&lt;/p&gt;

&lt;h5 id=&quot;about-8bitskull&quot;&gt;About 8BitSkull&lt;/h5&gt;
&lt;p&gt;&lt;a href=&quot;https://www.8bitskull.com/&quot;&gt;8BitSkull&lt;/a&gt; is an independent game development team known for exciting games with a focus on satisfying power fantasies, with titles such as Bore Blasters, Void Scrappers, and Fates of Ort. Their latest project is &lt;a href=&quot;https://store.steampowered.com/app/3199360/Skull_Horde/&quot;&gt;Skull Horde&lt;/a&gt;, real-time auto battler dungeon crawler with a roguelite structure.&lt;/p&gt;

&lt;h5 id=&quot;about-defold-foundation&quot;&gt;About Defold Foundation&lt;/h5&gt;
&lt;p&gt;The Defold Foundation is the owner of the free to use game engine Defold. The foundation works together with industry partners to provide free and open software and services to game developers across the globe. The foundation was created in May 2020 and is registered in Stockholm, Sweden.&lt;/p&gt;

&lt;h5 id=&quot;about-defold&quot;&gt;About Defold&lt;/h5&gt;
&lt;p&gt;Defold is a free to use, source available, game engine with a developer-friendly license used for development of cross-platform games. Defold is used by a growing number of developers to create commercial hits as well as games for game jams and in schools to teach game development. Defold is known for its ease of use and it is praised for its technical documentation and friendly community of developers.&lt;/p&gt;

&lt;h5 id=&quot;contact&quot;&gt;CONTACT&lt;/h5&gt;
&lt;p&gt;Alex Asvegren
Lead Developer, 8BitSkull
&lt;a href=&quot;mailto:alex@8bitskull.com&quot;&gt;alex@8bitskull.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Björn Ritzl
Product Owner, Defold Foundation
&lt;a href=&quot;mailto:bjorn@defold.se&quot;&gt;bjorn@defold.se&lt;/a&gt;&lt;/p&gt;
</description>
			<pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/04/29/Indie-studio-8bitskull-partners-with-defold/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/04/29/Indie-studio-8bitskull-partners-with-defold/</guid>
		</item>
		
		<item>
			<title>Defold Newsletter April 2026</title>
			<description>&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/newsletter_april_2026.png&quot; alt=&quot;Defold Newsletter April 2026&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;news&quot;&gt;News&lt;/h2&gt;

&lt;p&gt;Hello Defolder! Here’s your fresh Defold newsletter with updates and highlights from the Defold community and the Defold Foundation. If you have something you wish to share, send us an email at &lt;a href=&quot;mailto:info@defold.se&quot;&gt;info@defold.se&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://sh1.sendinblue.com/aoic89ke4lpfe.html?t=1776684148455&quot;&gt;Read the formatted newsletter here&lt;/a&gt; or read its content below:&lt;/p&gt;

&lt;h2 id=&quot;defold-x-gamedevjs-jam-2026&quot;&gt;Defold x GamedevJS Jam 2026&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/jsjam.png&quot; alt=&quot;Defold x GamedevJS Jam 2026&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We’ve announced the rewards for the best games made with Defold at the GamedevJS Jam 2026. Join the jam and have a chance to win!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-x-gamedev-js-jam-2026/82563/12&quot;&gt;Join the GamedevJS Jam 2026&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;making-of-hill-climb-racing-lite&quot;&gt;Making of Hill Climb Racing Lite&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/hcrl.png&quot; alt=&quot;Making of Hill Climb Racing Lite&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We talked with Shiho Kaneko from Fingersoft about bringing the classic mobile hit game to the web with Defold. Read how it was made and published on Poki.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/2026/03/12/Interview-Fingersoft/&quot;&gt;Read the Interview with Shiho Kaneko&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;new-games-made-with-defold&quot;&gt;New Games Made with Defold&lt;/h2&gt;

&lt;h3 id=&quot;game-of-fitna&quot;&gt;Game of Fitna&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/fitna.png&quot; alt=&quot;Game of Fitna&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by FIAgames&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A thrilling death game visual novel set in 2030. You’re Zayn, a high school student thrown into sinister survival games.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/2725340/Game_of_Fitna_Vol_1/&quot;&gt;Wishlist on Steam&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;sprint-city&quot;&gt;Sprint City&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/sprint.png&quot; alt=&quot;Sprint City&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Second Stage Studio&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This shared-world, fast-paced competitive platformer from the original creators of SpeedRunners is out now in Early Access.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/4191250/Sprint_City/&quot;&gt;Sprint City on Steam&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;skull-horde&quot;&gt;Skull Horde&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/skullhorde.png&quot; alt=&quot;Skull Horde&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by 8bitSkull&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This auto battler dungeon crawler, where you summon a horde of skeletons, launched on Steam on April 10, 2026.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/3199360/Skull_Horde/&quot;&gt;Skull Horde on Steam&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;push-titans&quot;&gt;Push Titans&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/pushtitans.png&quot; alt=&quot;Push Titans&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Toonminator&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Push Titans is now globally released on Poki. The game was also showcased on the Defold Forum.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://poki.com/en/g/push-titans&quot;&gt;Play on Poki&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/push-titans/82606&quot;&gt;Read the Forum Post&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;break-the-forest&quot;&gt;Break the Forest&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/break.png&quot; alt=&quot;Break the Forest&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Aeolian Codelab&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A card-based roguelike where you must survive a dangerous journey through a cursed forest, out now on Google Play.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.breaktheforest.cardroguelike&quot;&gt;Get it on Google Play&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;knight-bolts&quot;&gt;Knight Bolts&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/knights.png&quot; alt=&quot;Knight Bolts&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Hydraware&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A physics-based game where you drop knights to defeat the orcs before they destroy the castle.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/knight-bolts-my-first-defold-game/82549&quot;&gt;Check it out on the Forum&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;assets-extensions-and-tools&quot;&gt;Assets, Extensions, and Tools&lt;/h2&gt;

&lt;h3 id=&quot;defold-event-with-queues-and-promises&quot;&gt;Defold Event with Queues and Promises&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/event.png&quot; alt=&quot;Defold Event with Queues and Promises&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Insality&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This powerful library for cross-context events now includes modes, callback-based events, queues, promises, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-event-cross-context-defold-event-system/76165/15&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;biplanar-mapping-shader&quot;&gt;Biplanar Mapping Shader&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/biplanar.png&quot; alt=&quot;Biplanar Mapping Shader&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Selim Anaç&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Apply textures based on world position and surface normals, useful for terrain, rocks, and organic geometry.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/biplanar-mapping-shader/82475&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;defold-webp-native-extension&quot;&gt;Defold WebP Native Extension&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/defoldwebp.png&quot; alt=&quot;Defold WebP Native Extension&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Halfstar&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;WebP supports both lossless and lossy images as well as alpha channels, and it’s now available in Defold through this native extension.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-webp-decode-and-encode-external-webp-image-files/82515&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;defold-mic-native-extension&quot;&gt;Defold Mic Native Extension&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/mic.png&quot; alt=&quot;Defold Mic Native Extension&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Halfstar&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Read microphone input with this extension, useful for voice-controlled games or chat features.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-mic-microphone-input-extension/82575&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;defragcoord-shaders-to-defold&quot;&gt;DeFragCoord: Shaders to Defold&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/defrag.png&quot; alt=&quot;DeFragCoord: Shaders to Defold&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Paweł Jarosz&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Convert shaders from FragCoord.xyz to Defold directly using this simple guide.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defragcoord-fragcoord-to-defold-migration-guide/82518&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;asobi-open-source-multiplayer-backend&quot;&gt;Asobi: Open Source Multiplayer Backend&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/asobi.png&quot; alt=&quot;Asobi: Open Source Multiplayer Backend&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Daniel Widgren&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A multiplayer game backend with open source code written in Erlang/OTP.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/asobi-open-source-multiplayer-game-backend-for-defold/82612&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;worth-reading&quot;&gt;Worth Reading&lt;/h2&gt;

&lt;h3 id=&quot;creator-spotlight-orenji-spark---moving-from-unity-to-defold&quot;&gt;Creator Spotlight: Orenji Spark - Moving from Unity to Defold&lt;/h3&gt;

&lt;p&gt;We talked with Iwan from Orenji Spark about sustaining a long-running indie game studio and switching to Defold to publish lightweight web games.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/2026/04/02/Creator-Spotlight-Orenji-Spark/&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;make-games-not-engines-why-i-chose-defold&quot;&gt;Make Games, Not Engines: Why I Chose Defold&lt;/h3&gt;

&lt;p&gt;Erick reflects on how to choose the right game engine for stable, sustainable game development.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://kuyimobile.substack.com/p/make-games-not-engines&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;push-titans-unity-developer-makes-a-game-with-defold-for-poki&quot;&gt;Push Titans: Unity Developer Makes a Game with Defold for Poki&lt;/h3&gt;

&lt;p&gt;Victor Corvalán describes the process of making Push Titans in Defold and publishing it on Poki.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://medium.com/@vcorva/push-titans-is-on-poki-f656c7d8cfb7&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;why-html5-is-blooming-in-online-gaming-platforms&quot;&gt;Why HTML5 Is Blooming in Online Gaming Platforms&lt;/h3&gt;

&lt;p&gt;This article looks at the web games market and the continued growth of HTML5 game development.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.developer-tech.com/news/why-html5-game-development-is-having-its-biggest-year-yet/&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;new-defold-examples-billboarding-and-texture-scrolling&quot;&gt;New Defold Examples: Billboarding and Texture Scrolling&lt;/h3&gt;

&lt;p&gt;We’ve shared new examples, including billboarding with two modes and texture scrolling using new shader semantics and exposed time.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/examples/material/billboarding/&quot;&gt;Billboarding Example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/examples/sprite/texture_scrolling/&quot;&gt;Texture Scrolling Example&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;worth-watching&quot;&gt;Worth Watching&lt;/h2&gt;

&lt;h3 id=&quot;new-tutorial-series&quot;&gt;New Tutorial Series&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/asatte_incr.png&quot; alt=&quot;New Tutorial Series&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Asatte Games&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Build a top-down island defense incremental game from scratch with Asatte.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=NNmQimMWmb8&amp;amp;list=PLkdj9mBu4LRbDraRO8anTeBTihpVcpIH6&quot;&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;every-game-engine-explained-in-6-minutes&quot;&gt;Every Game Engine Explained in 6 Minutes&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/engines.png&quot; alt=&quot;Every Game Engine Explained in 6 Minutes&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by The Kernel Core&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A quick overview of Defold and other game engines.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=TDPDvoj_Zkk&amp;amp;t=228s&quot;&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;cube-mining-3d&quot;&gt;Cube Mining 3D&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/cube3d.png&quot; alt=&quot;Cube Mining 3D&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by cenker cennet&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Chunk system, custom 3D particles, and an infinite map are now part of this open source Minecraft-inspired clone.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=mX48Md-7WJI&quot;&gt;Watch on YouTube&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;defold-1123-has-been-released&quot;&gt;Defold 1.12.3 Has Been Released&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-april-2026/1123.png&quot; alt=&quot;Defold 1.12.3 Has Been Released&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Highlights:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Time exposed to shaders&lt;/li&gt;
  &lt;li&gt;Texture Transform semantic, useful for scrolling textures&lt;/li&gt;
  &lt;li&gt;Script Structure: list of functions and variables in the sidebar&lt;/li&gt;
  &lt;li&gt;Duplicate text selection&lt;/li&gt;
  &lt;li&gt;Filters in Input Bindings to assign inputs to actions more easily&lt;/li&gt;
  &lt;li&gt;New Properties API for Editor Scripts&lt;/li&gt;
  &lt;li&gt;OpenAPI for the Editor HTTP Server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And many more.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-1-12-3-has-been-released/82619&quot;&gt;Check Release Notes&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;help-defold-grow&quot;&gt;Help Defold Grow&lt;/h2&gt;

&lt;p&gt;Support the Defold Foundation and help us cover operational costs. Donations are used to pay for the native extension build servers, which are provided free of charge to everyone.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/donate/&quot;&gt;Support Defold&lt;/a&gt;&lt;/p&gt;
</description>
			<pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/04/21/Newsletter-April-2026/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/04/21/Newsletter-April-2026/</guid>
		</item>
		
		<item>
			<title>From Unity to Defold - how Orenji Spark rebuilt Jane&apos;s Fashion Studio for Poki</title>
			<description>&lt;p&gt;In this Defold Creator Spotlight we invited Iwan from Orenji Spark to tell us about his journey from a decade of mobile and web development to independent game creation, and about rebuilding &lt;em&gt;Jane’s Fashion Studio&lt;/em&gt; in Defold during its Poki soft-launch.&lt;/p&gt;

&lt;p&gt;Orenji Spark is a two-person team, with Iwan handling development and his wife shaping the art and creative direction. Together they have already released several smaller Defold projects such as &lt;a href=&quot;https://orenjispark.com/play/b7fd521a631c4fe2a9bc97de3b89bb2b/&quot;&gt;Capybara Suika&lt;/a&gt;, &lt;a href=&quot;https://orenjispark.com/play/c62767db6c984841a95341d73ff498b5/&quot;&gt;Pool Merge Mania&lt;/a&gt;, and &lt;a href=&quot;https://gamedistribution.com/games/tiny-farm/&quot;&gt;Tiny Farm&lt;/a&gt;, while continuing to grow &lt;a href=&quot;https://poki.com/en/g/janes-fashion-studio&quot;&gt;Jane’s Fashion Studio&lt;/a&gt; for the web.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/Jane%27s%20fashion%20studio%20-%20cover.png&quot; alt=&quot;Jane&apos;s Fashion Studio cover art&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Jane’s Fashion Studio&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;hello-introduce-yourself-to-the-defold-community---who-is-behind-orenji-spark&quot;&gt;Hello! Introduce yourself to the Defold community - who is behind Orenji Spark?&lt;/h5&gt;

&lt;p&gt;Hi! First of all, thank you for the opportunity. I really appreciate being featured in the Creator Spotlight.&lt;/p&gt;

&lt;p&gt;I’d also like to thank &lt;a href=&quot;https://poki.com/&quot;&gt;Poki&lt;/a&gt;, not just as a platform, but also the team behind it. Their support and guidance throughout the process have been very helpful.&lt;/p&gt;

&lt;p&gt;I’m Iwan, the developer behind Orenji Spark. I’ve been building games and applications for around 10 years now, mostly across mobile and web platforms. More recently, I decided to move into independent development.&lt;/p&gt;

&lt;p&gt;Orenji Spark is actually a team of two. My wife is also a big part of it. She handles the art and creative design for our games, so it’s a collaborative effort between us. I focus more on the technical and development side, while she shapes the visual identity and overall feel of the games.&lt;/p&gt;

&lt;h5 id=&quot;youve-spent-a-decade-building-games-and-applications-how-did-that-experience-shape-you-as-a-developer-and-what-pushed-you-toward-independent-development&quot;&gt;You’ve spent a decade building games and applications. How did that experience shape you as a developer, and what pushed you toward independent development?&lt;/h5&gt;

&lt;p&gt;Over the years, my mindset has shifted quite a lot. Earlier in my career, I tended to focus on building systems that were flexible and feature-rich, sometimes a bit over-engineered.&lt;/p&gt;

&lt;p&gt;But with experience, I’ve learned to value simplicity, iteration speed, and clarity much more. Shipping something playable and improving it step by step has become more important than trying to perfect everything upfront.&lt;/p&gt;

&lt;p&gt;Moving toward independent development felt like a natural step. I wanted more control over both the creative and technical direction, and also the freedom to experiment with different ideas more quickly.&lt;/p&gt;

&lt;h5 id=&quot;which-game-engines-have-you-worked-with-so-far&quot;&gt;Which game engines have you worked with so far?&lt;/h5&gt;

&lt;p&gt;I’ve explored quite a few engines over the years, including Cocos Creator, Construct, and Godot.&lt;/p&gt;

&lt;p&gt;But the ones I’ve spent the most time with are Unity, Phaser, Cocos Creator, and now Defold. Unity was one of my primary engines for many years.&lt;/p&gt;

&lt;p&gt;More recently, I’ve been leaning toward engines that are better suited for lightweight and performant web games, which is what led me to Defold. I’ve also released a few small games using Defold on platforms like Google Play and web portals, such as &lt;em&gt;Capybara Suika&lt;/em&gt;, &lt;em&gt;Pool Merge Mania&lt;/em&gt;, and &lt;em&gt;Tiny Farm&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/ss-2.png&quot; alt=&quot;Capybara Suika&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Capybara Suika&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;looking-back-how-did-your-priorities-change-as-you-shifted-more-toward-web-games-and-performance-sensitive-platforms&quot;&gt;Looking back, how did your priorities change as you shifted more toward web games and performance-sensitive platforms?&lt;/h5&gt;

&lt;p&gt;The biggest shift was putting performance at the center of decision making.&lt;/p&gt;

&lt;p&gt;For web games, things like build size, loading time, and stability across devices have a direct impact on player retention. Even small delays can affect whether a player stays or leaves.&lt;/p&gt;

&lt;p&gt;So I started designing with constraints in mind from the beginning, keeping assets lean, simplifying systems, and making sure the game runs well even on lower-end devices.&lt;/p&gt;

&lt;h5 id=&quot;for-readers-who-havent-played-it-yet-what-is-janes-fashion-studio-and-what-kind-of-player-experience-were-you-aiming-for-with-the-game&quot;&gt;For readers who haven’t played it yet, what is Jane’s Fashion Studio, and what kind of player experience were you aiming for with the game?&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Jane’s Fashion Studio&lt;/em&gt; is a casual dress-up and styling game where players help different characters by choosing outfits and styling combinations.&lt;/p&gt;

&lt;p&gt;Each character also has their own small storyline, so the experience is not just about dressing up, but also progressing through these character moments.&lt;/p&gt;

&lt;p&gt;The goal was to create something relaxing, cozy, and accessible, while still giving players a sense of progression and creativity.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/jfs-2.png&quot; alt=&quot;Jane&apos;s Fashion Studio gameplay&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Jane’s Fashion Studio gameplay&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;you-shared-on-the-defold-forum-that-janes-fashion-studio-started-in-unity-and-was-later-rebuilt-in-defold-during-the-poki-soft-launch-phase-what-feedback-or-warning-signs-made-you-realize-that-porting-the-game-was-the-right-move&quot;&gt;You shared on the Defold Forum that Jane’s Fashion Studio started in Unity and was later rebuilt in Defold during the Poki soft-launch phase. What feedback or warning signs made you realize that porting the game was the right move?&lt;/h5&gt;

&lt;p&gt;During the soft-launch phase on Poki, we started to see clear signals that something needed improvement, especially around loading time and performance.&lt;/p&gt;

&lt;p&gt;We also received direct feedback from players mentioning that the loading felt too long.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://sdk.poki.com/&quot;&gt;Poki’s dashboard&lt;/a&gt; was really helpful. It provides very detailed insights, gameplay metrics, engagement, conversion (C2P), device breakdowns, error tracking, and even player feedback.&lt;/p&gt;

&lt;p&gt;Seeing all of that together made it much easier to identify where the issues were and how impactful they were. At that point, it became clear that we needed a more optimized approach for the web, which led me to try rebuilding the game in Defold.&lt;/p&gt;

&lt;h5 id=&quot;which-of-the-improvements-mattered-most-in-practice-and-how-did-they-affect-the-games-path-to-a-global-poki-release&quot;&gt;Which of the improvements mattered most in practice, and how did they affect the game’s path to a global Poki release?&lt;/h5&gt;

&lt;p&gt;The improvements were quite significant.&lt;/p&gt;

&lt;p&gt;The build size was reduced by around 65%, which had a big impact on initial loading time. The game became noticeably faster to start and more responsive overall, especially on lower-end devices.&lt;/p&gt;

&lt;p&gt;We could also see the impact reflected in the Poki dashboard. Engagement and C2P started improving.&lt;/p&gt;

&lt;p&gt;These changes made the experience more consistent across devices and gave more confidence moving toward a wider, global release.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“The build size was reduced by around 65%, which had a big impact on initial loading time.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;which-parts-of-the-project-were-the-most-straightforward-to-recreate-in-defold-and-which-parts-forced-you-to-rethink-your-approach-from-scratch&quot;&gt;Which parts of the project were the most straightforward to recreate in Defold, and which parts forced you to rethink your approach from scratch?&lt;/h5&gt;

&lt;p&gt;The core gameplay logic was relatively straightforward to recreate.&lt;/p&gt;

&lt;p&gt;The biggest difference was in data flow and structure. In Unity, I relied a lot on component-based patterns, ScriptableObjects, and prefabs to manage data and mappings.&lt;/p&gt;

&lt;p&gt;In Defold, I approached it differently, using atlases and carefully structured naming for mapping. It required a bit of rethinking at first, but it actually made the workflow feel cleaner and lighter, with less overhead.&lt;/p&gt;

&lt;p&gt;One feature I really like is GUI Layouts, which makes it much easier to handle different layouts like portrait and landscape without complicating the setup.&lt;/p&gt;

&lt;p&gt;I also want to highlight the Defold community here. The extensions and libraries created by the community made the migration process much smoother and very enjoyable. They were genuinely helpful and saved a lot of time.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/jfs-1.png&quot; alt=&quot;Jane&apos;s Fashion Studio in the Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Jane’s Fashion Studio in the Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;for-developers-who-currently-have-a-2d-game-in-unity-and-are-considering-defold-for-web-deployment-what-would-you-tell-them-based-on-your-own-experience&quot;&gt;For developers who currently have a 2D game in Unity and are considering Defold for web deployment, what would you tell them based on your own experience?&lt;/h5&gt;

&lt;p&gt;I’d definitely recommend trying it, especially if your focus is web, performance, or reaching a wide range of devices, including lower-end ones.&lt;/p&gt;

&lt;p&gt;It’s not a one-to-one transition from Unity, and you may need to rethink some systems. But that process can actually lead to simpler and more efficient solutions.&lt;/p&gt;

&lt;h5 id=&quot;what-kinds-of-projects-do-you-think-are-especially-well-suited-to-defold&quot;&gt;What kinds of projects do you think are especially well suited to Defold?&lt;/h5&gt;

&lt;p&gt;I’m still learning Defold myself, but from my experience so far, it works especially well for 2D games that require good performance, particularly on web platforms and across a wide range of devices.&lt;/p&gt;

&lt;p&gt;That said, I’ve also seen developers create very impressive and diverse projects with Defold across different genres. It definitely has more flexibility and capability than I initially assumed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/tf.png&quot; alt=&quot;Tiny Farm in the Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Tiny Farm in the Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;youve-now-released-multiple-smaller-defold-games-including-capybara-suika-pool-merge-mania-and-tiny-farm-and-you-also-shared-work-in-the-community-challenge-and-the-defold-showreel-what-have-these-smaller-projects-taught-you&quot;&gt;You’ve now released multiple smaller Defold games, including Capybara Suika, Pool Merge Mania, and Tiny Farm, and you also shared work in the community challenge and the Defold showreel. What have these smaller projects taught you?&lt;/h5&gt;

&lt;p&gt;These smaller projects have been really valuable for learning and experimentation.&lt;/p&gt;

&lt;p&gt;They allow me to try different ideas quickly, test workflows, and understand the engine better without the pressure of a large project.&lt;/p&gt;

&lt;p&gt;One key takeaway is the importance of keeping scope manageable and focusing on the core experience first. Each project becomes a stepping stone for improving both technical decisions and game design.&lt;/p&gt;

&lt;h5 id=&quot;your-tiny-worlds-challenge-entry-and-your-other-community-posts-show-that-youre-not-just-using-defold-privately-but-also-engaging-with-the-community-how-has-being-part-of-the-defold-community-influenced-the-way-you-learn-experiment-or-choose-what-to-build-next&quot;&gt;Your Tiny Worlds challenge entry and your other community posts show that you’re not just using Defold privately, but also engaging with the community. How has being part of the Defold community influenced the way you learn, experiment, or choose what to build next?&lt;/h5&gt;

&lt;p&gt;The Defold community has been a really positive experience for me.&lt;/p&gt;

&lt;p&gt;The forum is especially helpful. I often find solutions there, and what’s interesting is that even posts from years ago are still relevant and still work well today. That consistency makes it much easier to learn and troubleshoot.&lt;/p&gt;

&lt;p&gt;Participating in community activities like the Tiny Worlds challenge has also been very meaningful for me. My entry was selected for the Rookie Award, which was a really encouraging experience as someone still exploring Defold.&lt;/p&gt;

&lt;p&gt;Being part of the community makes learning more enjoyable. Seeing what others are building and how they approach problems often inspires me to explore new ideas and different approaches.&lt;/p&gt;

&lt;p&gt;The community is also very supportive, and the available resources are solid and reliable. Many older tutorials still work today, which reflects how stable and well-structured Defold’s fundamentals are.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/pm.png&quot; alt=&quot;Pool Merge Mania in the Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Pool Merge Mania in the Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-are-you-most-excited-to-explore-next-either-in-this-project-or-in-future-games&quot;&gt;What are you most excited to explore next, either in this project or in future games?&lt;/h5&gt;

&lt;p&gt;Right now, I’m mainly excited to continue growing &lt;em&gt;Jane’s Fashion Studio&lt;/em&gt;, adding more stories, new characters, and more outfit variations so the experience can keep expanding over time.&lt;/p&gt;

&lt;p&gt;At the same time, I also want to keep creating and publishing more games on web platforms using Defold. I really enjoy the process of building smaller projects, learning from each release, and gradually improving both the technical and design side.&lt;/p&gt;

&lt;p&gt;I’m also interested in deepening my understanding of Defold itself. Seeing other developers create really impressive projects with it makes me realize there’s still a lot of potential I haven’t explored yet.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-orenji-spark/cs-2.png&quot; alt=&quot;Capybara Suika in the Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Capybara Suika in the Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;finally-how-can-our-community-follow-you&quot;&gt;Finally, how can our community follow you?&lt;/h5&gt;

&lt;p&gt;If you’re interested, you can find our work and updates here:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Website: &lt;a href=&quot;https://orenjispark.com&quot;&gt;https://orenjispark.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Instagram: &lt;a href=&quot;https://instagram.com/orenjibrush&quot;&gt;https://instagram.com/orenjibrush&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;X (Twitter): &lt;a href=&quot;https://x.com/orenjibrush&quot;&gt;https://x.com/orenjibrush&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;TikTok: &lt;a href=&quot;https://www.tiktok.com/@orenji.brush&quot;&gt;https://www.tiktok.com/@orenji.brush&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ll be sharing updates about our games and new releases there.&lt;/p&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-and-we-wish-you-a-success-with-janes-fashion-studio-and-your-future-defold-games&quot;&gt;Thank you very much for the interview, and we wish you a success with Jane’s Fashion Studio and your future Defold games!&lt;/h5&gt;
</description>
			<pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/04/02/Creator-Spotlight-Orenji-Spark/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/04/02/Creator-Spotlight-Orenji-Spark/</guid>
		</item>
		
		<item>
			<title>Why did Fingersoft use Defold to bring Hill Climb Racing to Poki?</title>
			<description>&lt;p&gt;We invited Shiho Kaneko from Fingersoft, to tell us about their adventure with Defold to create &lt;a href=&quot;https://poki.com/en/g/hill-climb-racing-lite&quot;&gt;Hill Climb Racing Lite&lt;/a&gt; for &lt;a href=&quot;https://poki.com/&quot;&gt;Poki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-fingersoft/hill_climb_racing_lite_banner.png&quot; alt=&quot;Hill Climb Racing Lite made with Defold&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Hill Climb Racing Lite made with Defold&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;hello-shiho-introduce-yourself-to-our-community-what-is-your-role-at-fingersoft-what-are-your-favorite-games&quot;&gt;Hello Shiho! Introduce yourself to our community! What is your role at Fingersoft? What are your favorite games?&lt;/h4&gt;

&lt;p&gt;Hi, I’m Shiho Kaneko, producer of Hill Climb Racing Lite. I love games like &lt;em&gt;Rhythm Heaven&lt;/em&gt;, &lt;em&gt;Gorogoa&lt;/em&gt;, and &lt;em&gt;Don’t Starve Together&lt;/em&gt;.&lt;/p&gt;

&lt;h4 id=&quot;for-readers-who-know-fingersoft-but-not-hill-climb-racing-lite-on-the-web-what-kind-of-game-is-it-and-what-were-your-goals-for-making-a-web-version&quot;&gt;For readers who know Fingersoft, but not Hill Climb Racing Lite on the web, what kind of game is it, and what were your goals for making a web version?&lt;/h4&gt;

&lt;p&gt;Hill Climb Racing Lite on the web is based on the original &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.fingersoft.hillclimb&quot;&gt;Hill Climb Racing&lt;/a&gt;, but it’s not just the classic endless driving mode. We kept the infinite mode that players already know, but we also added a new mode called &lt;strong&gt;World Tour&lt;/strong&gt;. This mode has a more linear progression and focuses more on skill-based challenge levels. In the World Tour, there are no unlocks or upgrades. Players can jump in and use powerful vehicles right away, without needing to grind first. The idea was to let players focus purely on mastering their skills.&lt;/p&gt;

&lt;p&gt;Hill Climb Racing has always had a lot of hidden mechanics and depth that not all players notice at first. With the web version, one of our goals was to make those mechanics more visible. At the same time, we wanted to create something that feels &lt;strong&gt;fresh for modern web players, while still keeping the core feeling&lt;/strong&gt; of the original game.&lt;/p&gt;

&lt;h4 id=&quot;preserving-the-classic-feel-of-the-mobile-game-is-definitely-noticeable-when-playing-hill-climb-racing-lite-yet-what-had-to-change-for-modern-browsers-and-audiences&quot;&gt;Preserving the classic feel of the mobile game is definitely noticeable when playing Hill Climb Racing Lite, yet what had to change for modern browsers and audiences?&lt;/h4&gt;

&lt;p&gt;During the soft launch, we learned or at least formed a hypothesis that our original format might not be the best fit for modern browser audiences. We noticed that &lt;strong&gt;browser players tend to prefer short-term goals&lt;/strong&gt; rather than long-term commitments, and they expect more frequent changes in gameplay.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“Based on this, we designed the World Tour mode around three key ideas: a clear sense of progression, minimal decision-making friction, and strong variety.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In addition to offering different vehicles and levels, this mode shifts the focus from simply driving as far as possible. Instead, players are given different objectives and win conditions, encouraging skill-based play and alternative play styles.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-fingersoft/hill_climb_racing_lite_map.png&quot; alt=&quot;Hill Climb Racing Lite World Tour&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Hill Climb Racing Lite - World Tour&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;why-web-and-why-now-what-did-you-see-in-the-web-games-market-that-made-this-release-a-reality&quot;&gt;Why web and why now? What did you see in the web games market that made this release a reality?&lt;/h4&gt;

&lt;p&gt;The Hill Climb Racing franchise is evergreen on mobile, and the original is one of the incumbents of the free-to-play mobile gaming era. We realized that web gaming, after the decline of Flash, was making a comeback and we wanted to offer an &lt;strong&gt;authentic Hill Climb Racing experience&lt;/strong&gt; for the players who’d rather play short, instant sessions on web platforms like Poki.&lt;/p&gt;

&lt;h4 id=&quot;why-did-you-choose-defold-for-porting-the-game-to-the-web&quot;&gt;Why did you choose Defold for porting the game to the web?&lt;/h4&gt;

&lt;p&gt;We &lt;strong&gt;evaluated several different engines before selecting Defold&lt;/strong&gt; — in fact, it was the last one we tested. Previously, we had released a predecessor of Hill Climb Racing Lite on YouTube (YouTube Playables), so we were already familiar with platform-agnostic technical requirements.&lt;/p&gt;

&lt;p&gt;There were a few key constraints. The game had to run in HTML5, the &lt;strong&gt;engine size needed to be very small, and solid Box2D integration was essential&lt;/strong&gt; for our physics-based gameplay. Another important requirement was support for portrait orientation, as the game needed to be fully playable in that format.&lt;/p&gt;

&lt;p&gt;We shortlisted around five HTML5-capable engines and built prototypes with each of them. Many had significant limitations when it came to Box2D support. While Defold does not offer built-in Box2D integration at the same level as some native engines, we discovered that someone had implemented a full Box2D conversion using Defold’s native extensions (&lt;em&gt;Editor’s note: &lt;a href=&quot;https://defold.com/assets/defold-box2d/&quot;&gt;defold-box2d&lt;/a&gt; by user d954mas&lt;/em&gt;). This made it viable for our needs.
Additionally, &lt;strong&gt;Defold’s visual editor was a major advantage.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The original Hill Climb Racing still doesn’t use visual tools, so having a proper visual UI editor, especially for portrait layout, significantly improved our workflow.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“Considering all these factors, Defold turned out to be the best fit for our technical and production requirements.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-fingersoft/hill_climb_racing_lite_defold.png&quot; alt=&quot;Hill Climb Racing Lite in the Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Hill Climb Racing Lite in the Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;thats-awesome-to-hear-how-did-defold-feel-in-production-at-your-scale-what-did-the-day-to-day-workflow-look-like&quot;&gt;That’s awesome to hear! How did Defold feel in production at your scale? What did the day-to-day workflow look like?&lt;/h4&gt;

&lt;p&gt;Our production team is small and agile, typically consisting of one to three programmers. In that setup, &lt;strong&gt;Defold worked well for collaboration&lt;/strong&gt;, especially since all project files are stored as text. This made version control and merging much smoother compared to engines that rely heavily on binary files.&lt;/p&gt;

&lt;p&gt;That said, the beginning was quite frustrating. Initially, we tried to use Defold the same way we had used other engines like Unity or Godot. Over time, we realized that this approach didn’t work well. Defold is fundamentally different in its architecture, and once we accepted that and started using it as intended, things improved significantly.&lt;/p&gt;

&lt;p&gt;One of the biggest mindset shifts was adapting to Defold’s strong emphasis on decoupling through its message-passing system between objects. Instead of tightly connected components, communication happens via explicit messages, which &lt;strong&gt;encourages a more modular structure&lt;/strong&gt;. After adjusting to this paradigm, the workflow became more predictable and efficient for our small team.&lt;/p&gt;

&lt;h4 id=&quot;what-challenges-have-you-faced-during-the-development-of-hill-climb-racing-lite-if-any-and-how-did-you-overcome-them&quot;&gt;What challenges have you faced during the development of Hill Climb Racing Lite, if any, and how did you overcome them?&lt;/h4&gt;

&lt;p&gt;One of the day-to-day challenges was actually the built-in Defold code editor — particularly the undo functionality, which didn’t feel up to modern standards. This sparked multiple heated internal debates :)&lt;/p&gt;

&lt;p&gt;In the end, we handled it in two different ways: one of us accepted the situation and adapted, while the others “escaped” to Visual Studio Code. Moving to VS Code significantly improved the development experience and solved most of the frustration (&lt;em&gt;Editor’s note: &lt;a href=&quot;https://defold.com/assets/vs-code-ide/&quot;&gt;VS Code integration&lt;/a&gt; by user Roman Silin&lt;/em&gt;).&lt;/p&gt;

&lt;h4 id=&quot;good-that-we-have-options-then-by-the-way-this-undo-functionality-change-is-our-priority-in-the-defold-roadmap-now---we-hope-it-will-be-satisfying-then-and-how-was-the-release-workflow&quot;&gt;Good that we have options then! By the way this undo functionality change is our priority in the Defold roadmap now - we hope it will be satisfying then. And how was the release workflow?&lt;/h4&gt;

&lt;p&gt;We found the &lt;a href=&quot;https://sdk.poki.com/playtesting.html&quot;&gt;Poki Playtesting&lt;/a&gt; feature very helpful. It helped us to identify potential UX related issues.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-fingersoft/hill_climb_racing_lite_title.png&quot; alt=&quot;Hill Climb Racing Lite made with Defold&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Hill Climb Racing Lite - main menu&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;what-did-you-learn-about-a-web-first-game-design-during-this-project-was-there-anything-particularly-surprising&quot;&gt;What did you learn about a “web-first” game design during this project? Was there anything particularly surprising?&lt;/h4&gt;

&lt;p&gt;On mobile, it’s relatively safe to design for multi-day progression and deeper meta systems, since players have already committed by downloading the game. You can rely on longer retention loops and layered progression.On the web, however, player behavior is very different. Users tend to look for quick gratification and immediate fun. Sessions are shorter, and the commitment level is much lower.&lt;/p&gt;

&lt;p&gt;As a result, deep multi-layered meta systems don’t work as well — players are less willing to invest time before the game becomes rewarding. What surprised us most was how quickly web players decide whether to stay or leave.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“A “web-first” design needs to deliver value almost instantly, rather than building up slowly over time.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;This forced us to rethink onboarding, pacing, and reward timing.&lt;/p&gt;

&lt;h5 id=&quot;what-would-be-your-recommendation-for-developers-new-to-defold&quot;&gt;What would be your recommendation for developers new to Defold?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Just try it yourself, it’s free!&lt;/strong&gt; Give it at least a week before forming an opinion. Defold has a different architecture and mindset compared to engines like Unity or Godot, and it can feel unfamiliar at first.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-fingersoft/hill_climb_racing_lite_moon.png&quot; alt=&quot;Hill Climb Racing Lite made with Defold&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Hill Climb Racing Lite - to the moon!&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;can-you-share-with-us-whats-next-with-hill-climb-racing-andor-fingersoft&quot;&gt;Can you share with us what’s next with Hill Climb Racing and/or Fingersoft?&lt;/h5&gt;

&lt;p&gt;Our company’s main focus is still on supporting the growth of Hill Climb Racing and Hill Climb Racing 2, but in addition we’re developing and iterating on the next title of the franchise, Hill Climb Racing 3. That being said, we are keeping a keen eye on what platforms and distribution opportunities emerge, and aim to provide supply wherever there is demand for Hill Climb Racing.&lt;/p&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-and-we-wish-you-a-tremendous-success-with-hill-climb-racing-lite&quot;&gt;Thank you very much for the interview, and we wish you a tremendous success with Hill Climb Racing Lite!&lt;/h5&gt;

&lt;p&gt;Check out the game on Poki:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://poki.com/en/g/hill-climb-racing-lite&quot;&gt;Hill Climb Racing Lite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Follow Fingersoft on social media:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://facebook.com/fingersoft&quot;&gt;Facebook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x.com/fingersoft&quot;&gt;X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.linkedin.com/company/3127905&quot;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/fingersoft_official/&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.youtube.com/c/FingersoftLtd&quot;&gt;YouTube&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Join Hill Climb Racing Discord:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.discord.gg/hillclimbracing&quot;&gt;Discord&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And subreddit:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/HillClimbRacing/&quot;&gt;Reddit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And follow Hill Climb Racing accounts:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.facebook.com/HillClimbRacing&quot;&gt;Facebook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://x.com/HCR_Official_&quot;&gt;X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.instagram.com/hillclimbracing_official/&quot;&gt;Instagram&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tiktok.com/@hillclimbracing_game&quot;&gt;TikTok&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
			<pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/03/12/Interview-Fingersoft/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/03/12/Interview-Fingersoft/</guid>
		</item>
		
		<item>
			<title>Defold release 1.12.2</title>
			<description>&lt;h1 id=&quot;defold-1122&quot;&gt;Defold 1.12.2&lt;/h1&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11788&quot;&gt;#11784&lt;/a&gt;) Property options refactor (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11602&quot;&gt;#9746&lt;/a&gt;) Add support for setting and getting custom attribute data for model components (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11644&quot;&gt;#11616&lt;/a&gt;) Added 3D Third Person Playground as sample in the Editor (by paweljarosz)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11883&quot;&gt;#10516&lt;/a&gt;) Remove redunant uniform keyword (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11806&quot;&gt;#3417&lt;/a&gt;) Get and set properties from ParticleFX emitters (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11850&quot;&gt;#3575&lt;/a&gt;) Added JobSystem C api to dmsdk (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11888&quot;&gt;#9547&lt;/a&gt;) Support more than 8 vertex streams (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11660&quot;&gt;#11530&lt;/a&gt;) Added GLTF models to built-in assets. (by paweljarosz)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11895&quot;&gt;#11825&lt;/a&gt;) Moved texture transcoding to a thread during the resource preload step (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11645&quot;&gt;#11597,#10761&lt;/a&gt;) Asset Browser: Group by resources for “New…” menu (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11734&quot;&gt;#11717&lt;/a&gt;) Added support for WebP and AVIF image formats for the HTML5 splash screen (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11769&quot;&gt;#10220&lt;/a&gt;) Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;editor.ui.image()&lt;/code&gt; editor script function (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11890&quot;&gt;#11733&lt;/a&gt;) Make &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/command/build&lt;/code&gt; respond on build completion (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11811&quot;&gt;#11000&lt;/a&gt;) Backspace key (⌫) now performs a Delete action on macOS (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11878&quot;&gt;#5453&lt;/a&gt;) Localize error messages in the editor (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11648&quot;&gt;#11567&lt;/a&gt;) Fix WebGPU crash when mipmaps are enabled (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11751&quot;&gt;#11751&lt;/a&gt;) Uniform buffer as first class object (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11804&quot;&gt;#11764&lt;/a&gt;) Handle proxy unload and load during the same frame (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11834&quot;&gt;#9560,#11779,#9568&lt;/a&gt;) Fix issues where DF fonts appear blurry in some cases. (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11836&quot;&gt;#8998&lt;/a&gt;) Fix blurry distance field font in HTML5 when &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;High DPI&lt;/code&gt; is off (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11848&quot;&gt;#11848&lt;/a&gt;) Improve the empty resource message in bob (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11869&quot;&gt;#11844&lt;/a&gt;) Avoid unnecessary resize calls when the size hasn’t changed. (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11874&quot;&gt;#11870&lt;/a&gt;) Fix the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gui.pick_node()&lt;/code&gt; function when Safe Area is used (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11885&quot;&gt;#11885&lt;/a&gt;) Added dmsdk C api for Window creation (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11778&quot;&gt;#11773&lt;/a&gt;) Fixed an issue where errors in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.property()&lt;/code&gt; might prevent the project from compiling (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11752&quot;&gt;#11711&lt;/a&gt;) Improved scrolling behavior in Assets Browser and Outline Pane (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11787&quot;&gt;#11787&lt;/a&gt;) Significantly improve load time and memory consumption of large projects (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11799&quot;&gt;#11799&lt;/a&gt;) Improve project load time on big projects by 9% (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11801&quot;&gt;#11293&lt;/a&gt;) Custom game.project fields now show the correct UI after editor restart (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11814&quot;&gt;#9976,#11618,#11713,#11381&lt;/a&gt;) Fix issues around editor symlink handling (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11837&quot;&gt;#11759,#11268,#6300&lt;/a&gt;) Make code editor resilient against defective resource nodes (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11851&quot;&gt;#11851&lt;/a&gt;) Make DF fonts sharp in the editor (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11875&quot;&gt;#11875&lt;/a&gt;) Include engine log files among defignored patterns in the editor (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11803&quot;&gt;#11786&lt;/a&gt;) Limit max dialog height to the height of the screen (by vlaaad)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;engine&quot;&gt;Engine&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11788&quot;&gt;#11784&lt;/a&gt;) &lt;strong&gt;‘Property options refactor’&lt;/strong&gt; by Jhonnyg
Refactored the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;dmGameObject::PropertyOptions&lt;/code&gt; struct from dmSDK into an API that can be used to encapsulate multiple options from an options table in the lua script API (e.g &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.get / go.set&lt;/code&gt;):&lt;/p&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;typedef&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;struct&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;PropertyOptions&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;HPropertyOptions&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;uint32_t&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;GetPropertyOptionsCount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HPropertyOptions&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;PropertyResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;GetPropertyOptionsIndex&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HPropertyOptions&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint32_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int32_t&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;PropertyResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;GetPropertyOptionsKey&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HPropertyOptions&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint32_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dmhash_t&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;result&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Since this is an SDK change, certain adjustments are required in custom components:&lt;/p&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// Old code:&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;dmGameSystem&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;SetMaterialConstant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;material&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_PropertyId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_Value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_Options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_Index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;set_constant_cb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;component&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;

&lt;span class=&quot;c1&quot;&gt;// New code:&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;int32_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value_index&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;dmGameObject&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;GetPropertyOptionsIndex&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_Options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;value_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;dmGameSystem&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;SetMaterialConstant&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;material&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_PropertyId&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;m_Value&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;value_index&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;set_constant_cb&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;component&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11602&quot;&gt;#9746&lt;/a&gt;) &lt;strong&gt;‘Add support for setting and getting custom attribute data for model components’&lt;/strong&gt; by Jhonnyg
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.get&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.set&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.animate&lt;/code&gt; can now be used to query or set custom vertex data for models. This will only be supported for the first mesh in the component, if the model file contains multiple meshes there is currently no way of indexing or referencing those. This will be added at a later time!&lt;/p&gt;

&lt;p&gt;Note: that this can be an expensive operation depending on how large the mesh is and if you are setting an instanced attribute or not. To learn more about instancing read &lt;a href=&quot;https://defold.com/manuals/material/#instancing&quot;&gt;here&lt;/a&gt;, and to learn more about custom vertex formats read &lt;a href=&quot;https://defold.com/manuals/material/#setting-custom-vertex-attribute-data&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This example uses go.animate on the separate cubes to animate a custom vertex stream called “custom_color”:&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;16&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rnd_color&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;vmath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vector4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;math.random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;math.random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;math.random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(),&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rnd_time&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;math.random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;animate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/go&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;..&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;#model&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;custom_color&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PLAYBACK_LOOP_PINGPONG&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rnd_color&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EASING_INQUAD&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;rnd_time&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;https://github.com/user-attachments/assets/d3e5b48f-e080-4c0a-a0da-8d09908a9fe2&quot; alt=&quot;instancing_custom_vertex_formats&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Test project: 
&lt;a href=&quot;https://github.com/user-attachments/files/24735176/issue-9746-model-set-custom-attributes.zip&quot;&gt;issue-9746-model-set-custom-attributes.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11644&quot;&gt;#11616&lt;/a&gt;) &lt;strong&gt;‘Added 3D Third Person Playground as sample in the Editor’&lt;/strong&gt; by paweljarosz
Added an official 3D Third Person Playground Defold sample game from https://github.com/defold/sample-third-person-playground to the Samples in the Defold Editor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11883&quot;&gt;#10516&lt;/a&gt;) &lt;strong&gt;‘Remove redunant uniform keyword’&lt;/strong&gt; by Jhonnyg&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11806&quot;&gt;#3417&lt;/a&gt;) &lt;strong&gt;‘Get and set properties from ParticleFX emitters’&lt;/strong&gt; by Jhonnyg
The first iteration of getting and setting properties for particlefx emitters via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.get&lt;/code&gt; / &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.set&lt;/code&gt; is now available:&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;property&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;my_material&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;resource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;material&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;())&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;cone_material&lt;/span&gt;  &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#particlefx&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;material&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;emitter_id&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;cone_emitter&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}}})&lt;/span&gt;
    &lt;span class=&quot;c1&quot;&gt;-- change the material for the next time the particlefx is played&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#particlefx&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;material&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;my_material&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;  &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;emitter_id&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;cone_emitter&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}}})&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Important note: The changes invoked via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.set&lt;/code&gt; will NOT affect the &lt;em&gt;currently&lt;/em&gt; playing particlefx, they will only have an effect when playing the fx next time. For example, if you want to change material in an input handler, you need to first stop the particlefx and then play it again:&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;on_input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action_id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action_id&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;space&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;released&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;particlefx&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#particlefx&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#particlefx&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;material&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;my_material&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;keys&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{{&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;emitter_id&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;cone_emitter&quot;&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;}}})&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;particlefx&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;play&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#particlefx&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The properties we currently support for emitters are:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;“material” - get and set the emitter material&lt;/li&gt;
  &lt;li&gt;“image” - get and set the emitter image, i.e atlas or tile source used for rendering&lt;/li&gt;
  &lt;li&gt;“animation” - get and set the animation (the animation must exist in the image!)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As this is the first iteration of this feature, very few properties are available. In the future, we hope to support more properties and even curved properties!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11850&quot;&gt;#3575&lt;/a&gt;) &lt;strong&gt;‘Added JobSystem C api to dmsdk’&lt;/strong&gt; by JCash
This allows developers to either use the precreated job system (named “jobs” in the context cache), or create their own when needed.&lt;/p&gt;

&lt;p&gt;For non threaded targets (e.g. html5), the default job system is also updated on the main thread, as that where our synchronisation with Lua happens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11888&quot;&gt;#9547&lt;/a&gt;) &lt;strong&gt;‘Support more than 8 vertex streams’&lt;/strong&gt; by Jhonnyg
Vertex shaders can now use more than 8 inputs, which was the previous limit. Now there is no limitation from the engine to how many input streams you can use, but please keep in mind that there are still GPU / driver limitations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11660&quot;&gt;#11530&lt;/a&gt;) &lt;strong&gt;‘Added GLTF models to built-in assets.’&lt;/strong&gt; by paweljarosz
Added GLTF (embedded with buffers) &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.gltf&lt;/code&gt; files as replacement for equivalent built-in Collada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.dae&lt;/code&gt; files.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;cube.gltf&lt;/li&gt;
  &lt;li&gt;quad.gltf&lt;/li&gt;
  &lt;li&gt;quad_2x2.gltf&lt;/li&gt;
  &lt;li&gt;sphere.gltf&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11895&quot;&gt;#11825&lt;/a&gt;) &lt;strong&gt;‘Moved texture transcoding to a thread during the resource preload step’&lt;/strong&gt; by britzl
Texture transcoding is now done on a thread during the resource preload step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11648&quot;&gt;#11567&lt;/a&gt;) &lt;strong&gt;‘Fix WebGPU crash when mipmaps are enabled’&lt;/strong&gt; by britzl
This fixes a crash when mipmaps are enabled when using WebGPU on Chrome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11751&quot;&gt;#11751&lt;/a&gt;) &lt;strong&gt;‘Uniform buffer as first class object’&lt;/strong&gt; by Jhonnyg
The engine can now create, bind and manipulating uniform buffer objects in runtime. These can then be used for immutable data storage inside the engine for storing things like PBR materials and light component data. There is no user facing code involved here yet, but it is a requirement for the upcoming light component refactor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11804&quot;&gt;#11764&lt;/a&gt;) &lt;strong&gt;‘Handle proxy unload and load during the same frame’&lt;/strong&gt; by britzl
This fixes an issue when unloading and loading the same collection in a single frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11834&quot;&gt;#9560,#11779,#9568&lt;/a&gt;) &lt;strong&gt;‘Fix issues where DF fonts appear blurry in some cases.’&lt;/strong&gt; by AGulev
DF smoothing for distance-field fonts is now computed in screen space rather than world space. The renderer derives a pixels-per-local-unit scale from the current view-projection matrix and viewport, ensuring stable edge thickness under camera zoom and perspective.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;600&quot; height=&quot;300&quot; alt=&quot;Distance-field font rendering before and after screen-space smoothing&quot; src=&quot;https://github.com/user-attachments/assets/5d49cd98-92aa-4dbe-ab55-332f80f136c5&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11836&quot;&gt;#8998&lt;/a&gt;) &lt;strong&gt;‘Fix blurry distance field font in HTML5 when &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;High DPI&lt;/code&gt; is off’&lt;/strong&gt; by AGulev
Distance-field font smoothing is now clamped at runtime to prevent text from becoming overly soft or gray when it becomes too small in pixel size. This typically happens when High DPI is turned off, the camera is heavily zoomed out, or the font scale is reduced too much.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;716&quot; height=&quot;58&quot; alt=&quot;HTML5 distance-field text rendered sharply with High DPI disabled&quot; src=&quot;https://github.com/user-attachments/assets/8f914048-6c02-4fba-94e8-b08d761e542d&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11848&quot;&gt;#11848&lt;/a&gt;) &lt;strong&gt;‘Improve the empty resource message in bob’&lt;/strong&gt; by britzl
This change improves the exception message when a required resource field is empty.&lt;/p&gt;

&lt;p&gt;From this forum discussion: https://forum.defold.com/t/cant-make-a-build/82323/3?u=britzl&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11869&quot;&gt;#11844&lt;/a&gt;) &lt;strong&gt;‘Avoid unnecessary resize calls when the size hasn’t changed.’&lt;/strong&gt; by AGulev
This fixes a problem where the HTML5 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;resize_window_callback&lt;/code&gt; function is executed every time a resize event occurs, even when the window size has not actually changed. The callback is now only executed when the window size changes compared to the previous stored values, not on every resize event.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11874&quot;&gt;#11870&lt;/a&gt;) &lt;strong&gt;‘Fix the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gui.pick_node()&lt;/code&gt; function when Safe Area is used’&lt;/strong&gt; by AGulev
This fixes an issue with touch events being offset when using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gui.pick_node()&lt;/code&gt; in combination with the new built-in safe area mode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11885&quot;&gt;#11885&lt;/a&gt;) &lt;strong&gt;‘Added dmsdk C api for Window creation’&lt;/strong&gt; by JCash&lt;/p&gt;

&lt;h2 id=&quot;editor&quot;&gt;Editor&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11645&quot;&gt;#11597,#10761&lt;/a&gt;) &lt;strong&gt;‘Asset Browser: Group by resources for “New…” menu’&lt;/strong&gt; by JosephFerano
The “New…” right-click context menu in the Asset Browser was getting a bit tall, so now it is formatted as a grid with sub-categories that groups items together for more compact organization. Supports arbitrary group names and uncategorized resources.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;950&quot; height=&quot;719&quot; alt=&quot;Asset Browser New menu grouped into resource categories&quot; src=&quot;https://github.com/user-attachments/assets/2c94b339-92ad-4a75-8480-ba9cefb42309&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11734&quot;&gt;#11717&lt;/a&gt;) &lt;strong&gt;‘Added support for WebP and AVIF image formats for the HTML5 splash screen’&lt;/strong&gt; by britzl
It is now possible to select WebP and AVIF image files for the HTML5 Splash Image game.project field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11769&quot;&gt;#10220&lt;/a&gt;) &lt;strong&gt;‘Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;editor.ui.image()&lt;/code&gt; editor script function’&lt;/strong&gt; by vlaaad
Now, editor scripts can show images, supporting both project files and external URLs, e.g.:&lt;/p&gt;
&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;editor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;show_dialog&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;editor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;dialog&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;title&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Images&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;content&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;editor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;horizontal&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;padding&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;editor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;PADDING&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LARGE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;children&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;editor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;image&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/builtins/assets/images/logo/logo_256.png&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;width&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;height&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}),&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;editor&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;({&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;image&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;https://defold.com/images/assets/monarch-hero.jpg&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
        &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;p&quot;&gt;})&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&lt;img width=&quot;652&quot; height=&quot;443&quot; alt=&quot;Editor script dialog displaying images with editor.ui.image&quot; src=&quot;https://github.com/user-attachments/assets/4703f47b-630f-407b-8565-899fa418a13d&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11890&quot;&gt;#11733&lt;/a&gt;) &lt;strong&gt;‘Make &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/command/build&lt;/code&gt; respond on build completion’&lt;/strong&gt; by vlaaad
We made the HTTP command that triggers the editor build block until the build completes, and made it respond with the build status + compilation issues. This should make it much more useful for AI agents and third-party IDE integrations.&lt;/p&gt;

&lt;h2 id=&quot;example-use&quot;&gt;Example use&lt;/h2&gt;
&lt;h3 id=&quot;successful-build&quot;&gt;Successful build&lt;/h3&gt;
&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl &lt;span class=&quot;nt&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;s2&quot;&gt;&quot;http://127.0.0.1:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; .internal/editor.port&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/command/build&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--silent&lt;/span&gt; | jq
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;success&quot;&lt;/span&gt;: &lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt;,
  &lt;span class=&quot;s2&quot;&gt;&quot;issues&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;[]&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 id=&quot;failed-build&quot;&gt;Failed build&lt;/h3&gt;
&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl &lt;span class=&quot;nt&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;s2&quot;&gt;&quot;http://127.0.0.1:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; .internal/editor.port&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;/command/build&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--silent&lt;/span&gt; | jq
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;success&quot;&lt;/span&gt;: &lt;span class=&quot;nb&quot;&gt;false&lt;/span&gt;,
  &lt;span class=&quot;s2&quot;&gt;&quot;issues&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;s2&quot;&gt;&quot;severity&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;error&quot;&lt;/span&gt;,
      &lt;span class=&quot;s2&quot;&gt;&quot;message&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;go.property declaration should be a top-level statement&quot;&lt;/span&gt;,
      &lt;span class=&quot;s2&quot;&gt;&quot;resource&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;/main/logo.script&quot;&lt;/span&gt;,
      &lt;span class=&quot;s2&quot;&gt;&quot;range&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;s2&quot;&gt;&quot;start&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;s2&quot;&gt;&quot;line&quot;&lt;/span&gt;: 3,
          &lt;span class=&quot;s2&quot;&gt;&quot;character&quot;&lt;/span&gt;: 4
        &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;,
        &lt;span class=&quot;s2&quot;&gt;&quot;end&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;s2&quot;&gt;&quot;line&quot;&lt;/span&gt;: 3,
          &lt;span class=&quot;s2&quot;&gt;&quot;character&quot;&lt;/span&gt;: 35
        &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;h3 id=&quot;minimal-agentsmd-to-get-started&quot;&gt;Minimal AGENTS.md to get started&lt;/h3&gt;
&lt;div class=&quot;language-md highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;gh&quot;&gt;# Docs&lt;/span&gt;
https://defold.com/llms.txt

&lt;span class=&quot;gh&quot;&gt;# Build&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;-&lt;/span&gt; Read editor port from &lt;span class=&quot;sb&quot;&gt;`.internal/editor.port`&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;-&lt;/span&gt; Build game: &lt;span class=&quot;sb&quot;&gt;`curl -X POST http://127.0.0.1:&amp;lt;PORT&amp;gt;/command/build`&lt;/span&gt;

&lt;span class=&quot;gh&quot;&gt;# Console&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;-&lt;/span&gt; After launch, check logs at &lt;span class=&quot;sb&quot;&gt;`http://127.0.0.1:&amp;lt;PORT&amp;gt;/console`&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11811&quot;&gt;#11000&lt;/a&gt;) &lt;strong&gt;‘Backspace key (⌫) now performs a Delete action on macOS’&lt;/strong&gt; by vlaaad
Pressing Backspace (⌫) now performs a Delete action on macOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11878&quot;&gt;#5453&lt;/a&gt;) &lt;strong&gt;‘Localize error messages in the editor’&lt;/strong&gt; by vlaaad
Error messages are now localized in the editor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11778&quot;&gt;#11773&lt;/a&gt;) &lt;strong&gt;‘Fixed an issue where errors in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.property()&lt;/code&gt; might prevent the project from compiling’&lt;/strong&gt; by AGulev
Throw a proper error when math is used in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.property()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11752&quot;&gt;#11711&lt;/a&gt;) &lt;strong&gt;‘Improved scrolling behavior in Assets Browser and Outline Pane’&lt;/strong&gt; by JosephFerano&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;When dragging and dropping, scroll just enough to make the items visible, rather than always at the top, which should help track movement of files/nodes&lt;/li&gt;
  &lt;li&gt;Center a resource when opening with right-click “Show in Asset Browser”, rather than up top&lt;/li&gt;
  &lt;li&gt;Fix bug when auto-scrolling downwards with mouse drag-n-drop where it would scroll by a whole page, rather than gradually&lt;/li&gt;
  &lt;li&gt;Auto-scrolling now has variable speed depending on how close to the edge you move the mouse while dragging. It’s also smoother!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11787&quot;&gt;#11787&lt;/a&gt;) &lt;strong&gt;‘Significantly improve load time and memory consumption of large projects’&lt;/strong&gt; by vlaaad
On some large projects:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The time to open the project was reduced by 50% (4m00s-&amp;gt;2m01s on an example project)&lt;/li&gt;
  &lt;li&gt;Memory consumption after load was reduced by 71% (10.59GB-&amp;gt;3.04Gb on the same project)&lt;/li&gt;
  &lt;li&gt;The time to perform a full build improved by 40% (13m50s-&amp;gt;8m11s).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was achieved by delaying the computation of data that is used for applying changes in the editor until it is actually needed, rather than computing it eagerly when loading the project.&lt;/p&gt;

&lt;p&gt;The downside is that in some cases, the first time a change to a particular element is made, it will take longer than before (worst case: 6s-&amp;gt;35s). It is noticeable only in some rare cases in large projects when changing resources that are widely used throughout the project (e.g., when changing a GUI button layout when the button is referenced in hundreds/thousands of places). Subsequent changes to the same element will be faster than before.&lt;/p&gt;

&lt;p&gt;Overall, the tradeoff is worth it, because previously, every user had to always pay this cost when opening the project, while now, the cost is only paid when actually making certain changes to edge case elements, and even then, the wait is significantly reduced (30s instead of 2m).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11799&quot;&gt;#11799&lt;/a&gt;) &lt;strong&gt;‘Improve project load time on big projects by 9%’&lt;/strong&gt; by vlaaad
Now the editor opens big projects a bit faster. As measured on an example big project, the load time reduced from 2m01s to 1m50s.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11801&quot;&gt;#11293&lt;/a&gt;) &lt;strong&gt;‘Custom game.project fields now show the correct UI after editor restart’&lt;/strong&gt; by vlaaad
Previously, custom values defined in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.project&lt;/code&gt; via the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.properties&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext.properties&lt;/code&gt; would always be shown as strings upon restarting the editor. Now they are displayed with their correct types (e.g., checkboxes for booleans, list views for lists).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11814&quot;&gt;#9976,#11618,#11713,#11381&lt;/a&gt;) &lt;strong&gt;‘Fix issues around editor symlink handling’&lt;/strong&gt; by matgis&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Fixed various issues around the editors handling of symbolic links.&lt;/li&gt;
  &lt;li&gt;Fixed an exception when trying to paste files into the Asset Browser that were deleted from disk since they were placed on the clipboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11837&quot;&gt;#11759,#11268,#6300&lt;/a&gt;) &lt;strong&gt;‘Make code editor resilient against defective resource nodes’&lt;/strong&gt; by matgis
Fixed an exception in the editor when a resource open in a code editor view became defective while the view had input focus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11851&quot;&gt;#11851&lt;/a&gt;) &lt;strong&gt;‘Make DF fonts sharp in the editor’&lt;/strong&gt; by AGulev
Improve DF font rendering in the Editor&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;4268&quot; height=&quot;1186&quot; alt=&quot;Editor text rendering with sharper distance-field fonts&quot; src=&quot;https://github.com/user-attachments/assets/8e7a83f6-63ef-4613-8ee6-ed5fdc61f28e&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11875&quot;&gt;#11875&lt;/a&gt;) &lt;strong&gt;‘Include engine log files among defignored patterns in the editor’&lt;/strong&gt; by matgis
The editor will now ignore log files written by the engine runtime when scanning the project for changes. Previously, changes to these log files would cause the editor to reload external changes into the graph and clear the undo queue unless the log file patterns were explicitly listed in a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.defignore&lt;/code&gt; file or configured to be written outside the project directory.&lt;/p&gt;

&lt;p&gt;Partially addresses #11408.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11803&quot;&gt;#11786&lt;/a&gt;) &lt;strong&gt;‘Limit max dialog height to the height of the screen’&lt;/strong&gt; by vlaaad
Dialog height is now limited to the height of the screen to prevent dialog content from overflowing outside of the visible area.&lt;/p&gt;
</description>
			<pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/03/02/Defold-1-12-2/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/03/02/Defold-1-12-2/</guid>
		</item>
		
		<item>
			<title>Creator Spotlight - Erick - Kuyi Mobile</title>
			<description>&lt;p&gt;In this Defold Creator Spotlight we invited Erick to tell us a little bit about himself and his latest Defold projects! Erick has a vast experience in game development and now runs Kuyi Mobile, and releases a lot of games, recently: &lt;a href=&quot;https://poki.com/en/g/bos-bedroom&quot;&gt;Bo’s Bedroom on Poki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’re interested in a more in-depth description of Bo’s Bedroom’s development process, Erick wrote about it on his &lt;a href=&quot;https://kuyimobile.substack.com/p/my-game-production-process-and-how&quot;&gt;substack too&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-erick-kuyi-mobile/bos_bedroom.png&quot; alt=&quot;Bo’s Bedroom&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;hello-introduce-yourself-to-our-community-what-do-you-do&quot;&gt;Hello! Introduce yourself to our community! What do you do?&lt;/h5&gt;

&lt;p&gt;I’m Erick, a full-time solo indie game developer from Manila, Philippines.&lt;/p&gt;

&lt;h5 id=&quot;what-are-your-favorite-games-and-hobbies&quot;&gt;What are your favorite games and hobbies?&lt;/h5&gt;

&lt;p&gt;I recently finished Octopath Traveler 0 (120+ hours!), which made the franchise one of my favorites to date — especially since I’ve also completed Octopath Traveler I and Octopath Traveler II.&lt;/p&gt;

&lt;p&gt;When I’m not making games, I love traveling with my family, reading books, and illustrating comics.&lt;/p&gt;

&lt;h5 id=&quot;can-you-tell-us-about-your-background-and-how-you-founded-kuyi-mobile-what-experiences-shaped-your-approach-to-game-development&quot;&gt;Can you tell us about your background and how you founded Kuyi Mobile? What experiences shaped your approach to game development?&lt;/h5&gt;

&lt;p&gt;I’m an engineer by profession and previously worked in the IT industry before transitioning into game development. Kuyi Mobile is actually the third company I founded, and it has been around since the early days of the iPhone.&lt;/p&gt;

&lt;p&gt;As a solo developer, I’ve focused primarily on mobile game development because of the quicker turnaround times and smaller project scopes. Over the years, I’ve developed games for various platforms, including ones that younger developers today may not even recognize anymore, such as J2ME and Symbian. Before moving into web games, I was mainly focused on mobile — both iOS and Android — and have released several dozen games over the past decade.&lt;/p&gt;

&lt;h5 id=&quot;i-was-playing-some-of-those-games-and-i-guess-a-lot-of-devs-might-also-recognize-some-of-them---can-you-share-some-of-the-titles-you-were-working-on&quot;&gt;I was playing some of those games (and I guess a lot of devs might also recognize some of them) - can you share some of the titles you were working on?&lt;/h5&gt;

&lt;p&gt;Some of the games that I made back then were Cubeex, a match-three game and Word Challenge, which was a collection of popular word games like Hangman, Word Factory, Word Finder, etc.&lt;/p&gt;

&lt;h5 id=&quot;tell-us-about-your-games-what-goals-or-philosophies-drive-the-kinds-of-games-you-create&quot;&gt;Tell us about your games! What goals or philosophies drive the kinds of games you create?&lt;/h5&gt;

&lt;p&gt;I’ve created over four dozen games across various platforms, from PC and consoles to tablets and smartphones. In 2025, I released four new web games on Poki.&lt;/p&gt;

&lt;p&gt;Web game development excites me because it feels like the early days of game development, where technical limitations push you to be more creative. One of the most impactful constraints is file size—keeping a game within 5–7MB forces me to be extremely intentional with assets and design decisions.&lt;/p&gt;

&lt;p&gt;My philosophy is simple: make games that are fun, accessible, and polished within a manageable scope.&lt;/p&gt;

&lt;h5 id=&quot;your-poki-catalogue-includes-titles-like-coin-machine-sushi-merge-and-tower-merge-all-featuring-some-form-of-merge-gameplay-what-draws-you-to-the-merge-mechanic-as-a-core-design-what-is-it-about-merge-that-keeps-players-engaged&quot;&gt;Your Poki catalogue includes titles like Coin Machine, Sushi Merge, and Tower Merge, all featuring some form of merge gameplay. What draws you to the merge mechanic as a core design? What is it about merge that keeps players engaged?&lt;/h5&gt;

&lt;p&gt;You guessed it — I’m a huge fan of merge games! Even before developing web games, I was already playing a lot of merge titles on mobile. There’s something deeply satisfying about combining two items and magically producing a new one.&lt;/p&gt;

&lt;p&gt;What most people don’t know is that before Sushi Merge was accepted on Poki, I had already submitted nine different games (all rejected!) — and none of them were merge games! I experimented with different genres and mechanics to find what resonated with Poki’s audience. Over time, I gathered valuable game design insights and player data, which helped me better understand what works for Poki’s platform.&lt;/p&gt;

&lt;h5 id=&quot;being-rejected-9-times-on-poki-while-having-such-a-strong-experience-is-wild-can-you-say-a-little-bit-more-about-it-what-did-you-learn-from-those-rejections&quot;&gt;Being rejected 9 times on Poki, while having such a strong experience is wild! Can you say a little bit more about it? What did you learn from those rejections?&lt;/h5&gt;

&lt;p&gt;I learned that Tetris-like, Find Me, and Idle games don’t really resonate well with Poki’s audience! I guess it’s also important to mention that Poki requires an average session time of at least 3 minutes for the game to pass the initial test.&lt;/p&gt;

&lt;h5 id=&quot;you-do-also-make-games-with-defold-on-other-platforms&quot;&gt;You do also make games with Defold on other platforms!&lt;/h5&gt;

&lt;p&gt;Oh sure! I have released 2 (non-web) games using Defold. One was Clinko, which was a &lt;a href=&quot;https://itch.io/jam/made-with-defold-jam-2024/rate/2858601&quot;&gt;game jam winner way back in 2024&lt;/a&gt; and the other is Jeepney Stories, which is a visual novel I released on Steam back in December 2024.&lt;/p&gt;

&lt;p&gt;Clinko: https://kuyimobile.itch.io/clinko&lt;/p&gt;

&lt;p&gt;Jeepney Stories: https://kuyimobile.itch.io/jeepney&lt;/p&gt;

&lt;p&gt;Both of these have playable demos on itch.io.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-erick-kuyi-mobile/jeepney_stories.png&quot; alt=&quot;Jeepney Stories&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;and-recently-you-also-made-bos-bedroom-which-is-a-management-game-what-was-new-in-your-game-development-process-when-making-this-game&quot;&gt;And recently you also made Bo’s Bedroom, which is a management game? What was new in your game development process when making this game?&lt;/h5&gt;

&lt;p&gt;Bo’s Bedroom originally started as a casual hack-and-slash RPG set in a fantasy world. I’ve always wanted to create a hack-and-slash experience that would be more suitable for younger audiences.&lt;/p&gt;

&lt;p&gt;However, that concept didn’t resonate well with Poki’s audience, so I pivoted and redesigned it into more of a management-style game. The final product turned out great and was well received when we launched globally in January 2026. Since launch, Bo’s Bedroom has reached over 2 million gameplays.&lt;/p&gt;

&lt;h5 id=&quot;you-also-released-a-ton-of-games-on-mobile-what-advantages-do-you-see-in-releasing-games-on-web-platforms-compared-to-native-mobile-app-stores&quot;&gt;You also released a ton of games on mobile. What advantages do you see in releasing games on web platforms, compared to native mobile app stores?&lt;/h5&gt;

&lt;p&gt;On mobile, if you don’t have a publisher or direct support from Apple or Google, your game can easily get lost in a vast sea of apps. Discovery is incredibly difficult unless you have a significant marketing budget.&lt;/p&gt;

&lt;p&gt;With web games, I found a fantastic partner in Poki. They allow me to focus on developing the games, while they bring in the players. It feels more like a true publisher–developer relationship.&lt;/p&gt;

&lt;h5 id=&quot;how-has-working-with-poki-shaped-your-development-process&quot;&gt;How has working with Poki shaped your development process?&lt;/h5&gt;

&lt;p&gt;Working with the Poki team has been an amazing experience. I still maintain full control over the game design and creative direction of my game projects, while Poki provides valuable input—especially during the soft launch phase.&lt;/p&gt;

&lt;p&gt;Our development process is highly data-driven. Every major decision is informed by playtesting, player feedback, and analytics. That structured feedback loop has significantly improved the quality of my games.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-erick-kuyi-mobile/goyle_tank.png&quot; alt=&quot;Goyle Tank&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;what-made-you-choose-defold-for-your-games&quot;&gt;What made you choose Defold for your games?&lt;/h5&gt;

&lt;p&gt;Having been in the game industry for more than two decades, I’ve tried many different tools. Defold stood out to me because of its simplicity and efficiency.&lt;/p&gt;

&lt;p&gt;It’s fast, lightweight, and gives me complete control over my projects — no hidden systems or unnecessary bloat. It also allows me to create extremely small builds, which is essential for web games. Most importantly, the Defold community and team are incredibly helpful and responsive.&lt;/p&gt;

&lt;h5 id=&quot;what-technical-challenges-have-you-encountered-when-targeting-the-web&quot;&gt;What technical challenges have you encountered when targeting the web?&lt;/h5&gt;

&lt;p&gt;When releasing my first web game, keeping the build size small was critical — especially for players in regions where internet access can be slow or expensive.&lt;/p&gt;

&lt;p&gt;Another major challenge was supporting multiple screen resolutions. My games need to run smoothly on desktops, mobile phones, tablets, and even foldable devices.&lt;/p&gt;

&lt;p&gt;Defold made it possible to handle both file size optimization and responsive design without major complications, and I couldn’t be happier!&lt;/p&gt;

&lt;h5 id=&quot;if-you-could-add-or-improve-one-feature-in-defold-that-would-directly-benefit-your-workflow-especially-for-games-you-make-what-would-it-be&quot;&gt;If you could add or improve one feature in Defold that would directly benefit your workflow, especially for games you make, what would it be?&lt;/h5&gt;

&lt;p&gt;Is “none” an acceptable answer? 😅&lt;/p&gt;

&lt;p&gt;I’m genuinely happy with how Defold allows me to focus on making fun games while it handles the technical heavy lifting. I guess I’m a simple developer with simple needs and Defold has everything I need and more!&lt;/p&gt;

&lt;h5 id=&quot;what-would-be-your-recommendation-for-developers-new-to-defold&quot;&gt;What would be your recommendation for developers new to Defold?&lt;/h5&gt;

&lt;p&gt;I always advise new Defold users to just jump in and make their first game. The engine is very straightforward and easy to understand, and there’s no better way to learn than by building something.&lt;/p&gt;

&lt;p&gt;I can almost guarantee you’ll enjoy using it — whether you’re a beginner or an experienced developer looking for a streamlined tool.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-erick-kuyi-mobile/clinko.png&quot; alt=&quot;Clinko&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;can-you-share-with-us-whats-next-at-kuyi-mobile-are-there-new-directions-like-new-genres-deeper-systems-or-platform-expansions-youd-like-to-take-on&quot;&gt;Can you share with us what’s next at Kuyi Mobile? Are there new directions, like new genres, deeper systems, or platform expansions you’d like to take on?&lt;/h5&gt;

&lt;p&gt;As I’m answering this, I’ve already started working on a new game project — and it’s progressing really well. At my current pace, I expect to release it within the next month or so. I can see myself making more web games in the next 2 to 3 years!&lt;/p&gt;

&lt;h5 id=&quot;finally-how-can-the-community-follow-you&quot;&gt;Finally, how can the community follow you?&lt;/h5&gt;

&lt;p&gt;You can always find me on &lt;a href=&quot;&quot;&gt;X (Twitter) as @kuyimobile&lt;/a&gt; or on &lt;a href=&quot;https://bsky.app/profile/kuyimobile.bsky.social&quot;&gt;Bluesky at @kuyimobile.bsky.social&lt;/a&gt;. I also lurk on Defold’s Discord server, so feel free to tag if you have any questions!&lt;/p&gt;

&lt;p&gt;Please visit &lt;a href=&quot;https://www.kuyimobile.com/about.php&quot;&gt;my website&lt;/a&gt; as well if you’d like to try out my games! 🙏&lt;/p&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-and-we-wish-you-more-and-more-successes&quot;&gt;Thank you very much for the interview, and we wish you more and more successes!&lt;/h5&gt;

&lt;p&gt;&lt;a href=&quot;https://linktr.ee/kuyimobile&quot;&gt;Kuyi Mobile Linktree&lt;/a&gt;&lt;/p&gt;
</description>
			<pubDate>Tue, 17 Feb 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/02/17/Creator-Spotlight-Kuyi-Mobile/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/02/17/Creator-Spotlight-Kuyi-Mobile/</guid>
		</item>
		
		<item>
			<title>A look ahead for 2026</title>
			<description>&lt;p&gt;One of the most common questions we get is: “What’s next for Defold?”&lt;/p&gt;

&lt;p&gt;We understand why: having a sense of direction helps teams plan ahead.&lt;/p&gt;

&lt;p&gt;At the same time, building a game engine and editor means operating in a constantly shifting environment: platforms change their requirements, sometimes new opportunities appear, and sometimes some work turns out to be more complex than expected, while other work becomes more valuable and needed than we anticipated. That’s why we’ve repeated this many times over the years: a roadmap we present is just a plan, not a contract.&lt;/p&gt;

&lt;p&gt;Nevertheless, we’d like to share a near-term snapshot of the areas we’re actively aiming to push forward over the coming quarters:&lt;/p&gt;

&lt;h2 id=&quot;productivity-and-customised-editor-workflows&quot;&gt;Productivity and customised Editor workflows&lt;/h2&gt;

&lt;p&gt;A major theme for us is making Defold faster and more pleasant to use in real production. Especially when your project gets large, your content pipeline grows, or your team needs repeatable workflows.&lt;/p&gt;

&lt;p&gt;Over the past period, we’ve steadily expanded editor scripting, first with interactive UI creation, and more recently with deeper scene-editing capabilities. The next step is to build on that foundation and &lt;strong&gt;continue improving the day-to-day editor experience&lt;/strong&gt;, so we’ll be continuing to expand what you can automate and build inside the editor. We are very happy that the community is using and sharing a lot of useful Editor Scripts with some clever and inspiring ideas.&lt;/p&gt;

&lt;p&gt;Therefore, we would like to allow users to add &lt;a href=&quot;https://github.com/defold/defold/issues/10220&quot;&gt;custom images inside Editor UIs&lt;/a&gt;, so tools can become more visual and domain-specific - think custom icons, previews, and richer widgets.&lt;/p&gt;

&lt;p&gt;We also plan to add &lt;a href=&quot;https://github.com/defold/defold/issues/11671&quot;&gt;non-modal panels&lt;/a&gt; created by editor scripts, so tool UIs can live alongside the editor (similar to other editor panes), instead of being limited to blocking dialogs. This might unlock better tools, like inspectors, guided workflows, interactive tutorials, and other kinds of “mini-editors” tailored to a project.&lt;/p&gt;

&lt;p&gt;We’re also genuinely happy to see how the community is already using editor scripts in clever ways. A standout example was the &lt;a href=&quot;https://forum.defold.com/t/defold-in-editor-asset-store/81969&quot;&gt;Asset Store&lt;/a&gt; built by Insality using Editor scripts and UI. and we would like at some point to incorporate such a powerful asset browser into the Editor in some way. Longer term, ideas like this are exactly the kind of experimentation that can inspire improvements to the core editor experience.&lt;/p&gt;

&lt;p&gt;We would also like to start changing how the Editor handles history and allow for &lt;strong&gt;local undo&lt;/strong&gt; as a dedicated next step.&lt;/p&gt;

&lt;h2 id=&quot;editor-performance-and-size&quot;&gt;Editor performance and size&lt;/h2&gt;

&lt;p&gt;A major theme for us is making Defold Editor faster to use in real game development projects, especially when your project gets large, your content pipeline grows, or your team needs repeatable workflows.&lt;/p&gt;

&lt;p&gt;We’ve already made several fixes and changes in different areas, resulting in multiple improvements for loading time, responsiveness, and performance. Our partners are developing impressive games that are huge in terms of scope, help us focus on the performance for real projects, and we’d also like to improve the Editor for 3D projects. We already improved performance for handling huge 3D scenes in the Editor or scenes with many 3D models, and we’ll continue to make further improvements.&lt;/p&gt;

&lt;p&gt;Defold has always cared about performance, stability, and staying lean. One concrete focus area is engine size optimizations, including reducing the shipped footprint by nulling out unused components where possible. This also aligns with our continued push toward better modularization.&lt;/p&gt;

&lt;p&gt;We’re also planning to improve controller behavior across devices by integrating the &lt;strong&gt;SDL gamepad database&lt;/strong&gt; to help normalize and recognize controllers more consistently across platforms.&lt;/p&gt;

&lt;h2 id=&quot;further-improvements-for-3d&quot;&gt;Further improvements for 3D&lt;/h2&gt;

&lt;p&gt;For 3D projects specifically, we want to keep reducing friction in scene authoring. On top of the other UI and UX improvements we made to the Editor for 3D projects, like Grid settings, camera component, and its frustum preview improvements, one of the closest examples is a new &lt;a href=&quot;https://github.com/defold/defold/issues/11185#issue-3380495023&quot;&gt;Free Fly camera&lt;/a&gt; in the Editor that we work on.&lt;/p&gt;

&lt;p&gt;On the boundary between 3D and physics, we want to make collision authoring more flexible by allowing &lt;strong&gt;any model to be used as a collision shape&lt;/strong&gt;, removing common pipeline friction when bringing complex geometry into Defold.&lt;/p&gt;

&lt;p&gt;We’re also exploring a 3D multi-instance component aimed to improve performance with repeated scene elements such as vegetation, rocks, props, and other repeated scene elements. We think it can unlock meaningful performance and workflow wins.&lt;/p&gt;

&lt;h2 id=&quot;3d-animations&quot;&gt;3D Animations&lt;/h2&gt;

&lt;p&gt;We’ve seen increasing demand for richer animation workflows and more capable 3D features. Our approach remains focused on improving what matters most in production.&lt;/p&gt;

&lt;p&gt;On animation, we’re targeting &lt;a href=&quot;https://github.com/defold/defold/issues/8024&quot;&gt;morph targets and animation mixing&lt;/a&gt;, which are both foundational pieces for more expressive characters and smoother transitions between states.&lt;/p&gt;

&lt;h2 id=&quot;new-light-component-and-rendering-works&quot;&gt;New Light component and rendering works&lt;/h2&gt;

&lt;p&gt;Lighting is one of the most requested building blocks for developers working in 3D, and it’s also an area where the community has filled gaps with impressive extensions and solutions over time.&lt;/p&gt;

&lt;p&gt;We’re planning to add a &lt;strong&gt;new Light component&lt;/strong&gt; and supporting shader pipeline improvements. The intent is to make modern rendering workflows easier to set up and more consistent—especially in combination with existing rendering solutions and extensions.&lt;/p&gt;

&lt;p&gt;We plan to allow the &lt;strong&gt;PBR extension to use more built-in features&lt;/strong&gt; and make it feel easier to set up for the developers.&lt;/p&gt;

&lt;p&gt;We also have in plans a continued &lt;strong&gt;Metal-related work&lt;/strong&gt; to keep Apple platform support strong and future-proof. Defold has invested in modern graphics backends for years, and we’ll keep that momentum going.&lt;/p&gt;

&lt;h2 id=&quot;extensions-rive-20-and-photon-fusion&quot;&gt;Extensions: Rive 2.0 and Photon Fusion&lt;/h2&gt;

&lt;p&gt;Extensions remain a core part of Defold’s strategy of keeping the engine focused, while enabling powerful opt-in integrations where they make sense.&lt;/p&gt;

&lt;p&gt;Rive is a great example of that approach. The Foundation partnered with Rive early to bring real-time animation workflows to Defold, and it was one of the first game engines to support Rive. We’ve continued to update and improve the integration over time. In the meantime, Rive got so much traction that we were having trouble keeping our extension up to date with their new features and improvements. We did however do some work to change the approach for this extension that will allow us to keep up with the pace of Rive updates better, because it delegates more to the Rive renderer itself. We want to move the integration forward with &lt;strong&gt;Rive 2.0&lt;/strong&gt; support.&lt;/p&gt;

&lt;p&gt;We also want to reduce the friction for developers shipping multiplayer games. Last year we announced an official Photon Realtime integration, and we’ll continue investing in making networking more accessible in Defold projects. For the upcoming period, our intent is to &lt;strong&gt;work toward a seamless netcode solution&lt;/strong&gt;, and we’ll communicate specifics when we’re confident we can do so responsibly.&lt;/p&gt;

&lt;h2 id=&quot;new-platforms-microsoft-xbox&quot;&gt;New platforms: Microsoft Xbox&lt;/h2&gt;

&lt;p&gt;In earlier roadmap communication, we described Xbox as something we wanted to add, and we continue to treat it as an important platform goal. We’ve been working on Xbox support for quite some time and added core features already, and we’re closer than ever to finalizing the work on supporting the platform, but bear in mind it is work being sponsored by the Defold Foundation only, and therefore, its pace is simply slow.&lt;/p&gt;

&lt;h2 id=&quot;tutorials-and-examples&quot;&gt;Tutorials and examples&lt;/h2&gt;

&lt;p&gt;We know our tutorials and examples haven’t received the attention they deserve for some time, so we’re now investing steadily in improving onboarding and learning resources. This work has already started and includes refreshing and verifying our existing manuals, expanding the defold.com/examples collection with more practical, bite-sized projects, and adding new guides that help developers ramp up faster. A recent step in this direction is the &lt;a href=&quot;https://defold.com/manuals/unity/&quot;&gt;Defold for Unity users manual&lt;/a&gt;, and we plan to create a similar manual for Godot users, and potentially later for GameMaker users, so that developers coming from other engines can more easily map familiar concepts to Defold and start building confidently.&lt;/p&gt;

&lt;p&gt;We’ll also be organising new Community Challenges—like the current &lt;a href=&quot;https://forum.defold.com/t/community-challenge-5-break-it/82303&quot;&gt;Break it!&lt;/a&gt;, which revolves around physics—as well as a Defold game jam, which we’ll start sharing more information about soon. We’re incredibly proud of our community: always eager to help others, share knowledge, and showcase interesting projects. Keeping things lighthearted, welcoming, and engaging is important to us, and we’re happy to have you with us on this journey!&lt;/p&gt;

&lt;h2 id=&quot;future-is-bright&quot;&gt;Future is bright!&lt;/h2&gt;

&lt;p&gt;We still have more great news to share, but you’ll have to wait just a little longer. As always, please keep in mind that everything outlined above reflects our current focus and intentions, not a set of promises. The priorities may shift, but with that said, we’re genuinely excited about what’s ahead, and we believe the future of Defold looks bright.&lt;/p&gt;
</description>
			<pubDate>Tue, 10 Feb 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/02/10/Defold-A-look-ahead-for-2026/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/02/10/Defold-A-look-ahead-for-2026/</guid>
		</item>
		
		<item>
			<title>Defold release 1.12.1</title>
			<description>&lt;h1 id=&quot;defold-1121&quot;&gt;Defold 1.12.1&lt;/h1&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11563&quot;&gt;#11553&lt;/a&gt;) Update XCode to 26.2, MacOS SDK to 26.2, iOS SDK to 26.2 (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11612&quot;&gt;#11554&lt;/a&gt;) Update Android SDK to version 36.1.0 and targetSdkVersion to 36 (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11540&quot;&gt;#11447&lt;/a&gt;) Add support for http proxy connections (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11664&quot;&gt;#9505&lt;/a&gt;) Replaced the deprecated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALooper_pollAll&lt;/code&gt; call with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALooper_pollOnce&lt;/code&gt; (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11740&quot;&gt;#11739&lt;/a&gt;) Report old and new shader combinations (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11436&quot;&gt;#11429&lt;/a&gt;) Added editor option to select when to build with the profiler (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11584&quot;&gt;#11577&lt;/a&gt;) Add support for mounting live update archives from Android assets (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11626&quot;&gt;#11558&lt;/a&gt;) Fix regex for linux shared libraries (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11629&quot;&gt;#11164&lt;/a&gt;) Removed unnecessary lock of main thread when loading many large textures (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11571&quot;&gt;#11528&lt;/a&gt;) Added ‘Help’ to the list of permitted locations for editor scripts (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11441&quot;&gt;#7047&lt;/a&gt;) Breakpoints tab view (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11600&quot;&gt;#11600&lt;/a&gt;) Skip unnecessary traversal in update-overrides (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11595&quot;&gt;#11276&lt;/a&gt;) Added an ability to specify &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;library.defold_min_version&lt;/code&gt; for extensions to prevent using incompatible extensions  (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11630&quot;&gt;#11630&lt;/a&gt;) Decrease editor memory pressure from transaction steps (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11642&quot;&gt;#11607&lt;/a&gt;) Add a window title to splash, welcome, and project loading (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11696&quot;&gt;#11406&lt;/a&gt;) Editor: Add drag and drop from Assets to Properties Resource Picker (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11748&quot;&gt;#4156&lt;/a&gt;) Move project dependencies into their own separate category in the Assets panel (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11704&quot;&gt;#8960&lt;/a&gt;) Added “Close” button to the animation preview in atlas (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11708&quot;&gt;#11676&lt;/a&gt;) Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zlib&lt;/code&gt; module to editor scripts (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11715&quot;&gt;#11396&lt;/a&gt;) Do not rename items on double-click in the outline (keep only F2 for renaming) (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11526&quot;&gt;#11526&lt;/a&gt;) Update LuaJIT (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11541&quot;&gt;#11541&lt;/a&gt;) Performance optimisations for atlas creation (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11547&quot;&gt;#11547&lt;/a&gt;) Bob performance optimizations for sequential builds (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11555&quot;&gt;#11517&lt;/a&gt;) Fixed missing delete key binding on HTML5 (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11609&quot;&gt;#11609&lt;/a&gt;) Improved atlas texture creation speed in the editor (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11614&quot;&gt;#11613&lt;/a&gt;) Unblock main thread while loading a collection and a texture at the same time (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11624&quot;&gt;#11624&lt;/a&gt;) Various leak fixes: SSL socket, physics, script table, game system, engine (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11678&quot;&gt;#11678&lt;/a&gt;) Make sure the mesh component buffer’s version is taken into account when updating the vertex buffer (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11679&quot;&gt;#11679&lt;/a&gt;) Fixes in the Vulkan graphics backend (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11706&quot;&gt;#10571&lt;/a&gt;) Dont use valueptr for models in GetProperty for material constants (by Jhonnyg)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11709&quot;&gt;#11627&lt;/a&gt;) Added Safe Area related functionality (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11718&quot;&gt;#11689&lt;/a&gt;) &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bob.jar&lt;/code&gt; now scans for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext.properties&lt;/code&gt; in all folders, not just extension folders (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11741&quot;&gt;#11736&lt;/a&gt;) Fix text layout regression (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11746&quot;&gt;#11746&lt;/a&gt;) Fix Android resource detection (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11175&quot;&gt;#11104&lt;/a&gt;) Copy dynamic libs into result bundle (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11349&quot;&gt;#11349&lt;/a&gt;) Add logic to recover lost sound device on Windows (by deurell)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11663&quot;&gt;#11663&lt;/a&gt;) Fix a rare potential ANR issue on Android (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11674&quot;&gt;#11673&lt;/a&gt;) Fixed missing tracking when doing layout of glyphs (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11685&quot;&gt;#11685&lt;/a&gt;) Added support for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.jpeg&lt;/code&gt; files for models (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11720&quot;&gt;#11683&lt;/a&gt;) Added check if font glyph bitmap will fit into the font glyph texture before uploading (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11559&quot;&gt;#9702,#9401&lt;/a&gt;) Fix issues around textures shared between Model Scenes (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11568&quot;&gt;#11568&lt;/a&gt;) Revamp the Properties view (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11569&quot;&gt;#11556&lt;/a&gt;) Fixed an issue where the camera component icon would disappear after copy-pasting a camera component (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11570&quot;&gt;#11570&lt;/a&gt;) Improve project open performance in large projects (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11601&quot;&gt;#11601&lt;/a&gt;) Improve project load performance by 19% (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11604&quot;&gt;#11604&lt;/a&gt;) Improve project loading performance of large projects by 4% (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11593&quot;&gt;#10688&lt;/a&gt;) Editor: Optimize atlas preview generation (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11617&quot;&gt;#8463&lt;/a&gt;) Editor: Optimize Atlas Preview Image Generation for faster iterations (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11652&quot;&gt;#11619&lt;/a&gt;) Editor: Fix exception when showing Context Menu for a missing resource (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11655&quot;&gt;#11655&lt;/a&gt;) Exclude insignificant entries when applying gui property overrides in the editor (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11693&quot;&gt;#4959&lt;/a&gt;) Add an embedded sound component instead of using a raw sound (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11700&quot;&gt;#8442&lt;/a&gt;) Select the first element by default in forms where choosing an option reveals additional settings (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11753&quot;&gt;#11532&lt;/a&gt;) Limit max height of editor script dialogs (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11690&quot;&gt;#11690&lt;/a&gt;) Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/prefs/...&lt;/code&gt; editor HTTP server enpoints (by vlaaad)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;engine&quot;&gt;Engine&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11563&quot;&gt;#11553&lt;/a&gt;) &lt;strong&gt;‘Update XCode to 26.2, MacOS SDK to 26.2, iOS SDK to 26.2’&lt;/strong&gt; by AGulev
Build toolchain updated with:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;XCode 26.2&lt;/li&gt;
  &lt;li&gt;macOS SDK 26.2&lt;/li&gt;
  &lt;li&gt;iOS SDK 26.2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MinimumOSVersion&lt;/code&gt; for iOS has been updated to 15.0 (it was 11.0 previously)
⚠️ The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;LSMinimumSystemVersion&lt;/code&gt; for macOS has been updated to 11.5 (it was 10.15 previously)
⚠️ &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;info.plist&lt;/code&gt; notice: if your project uses a custom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;info.plist&lt;/code&gt; file, ensure it includes the latest changes from the default version&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11612&quot;&gt;#11554&lt;/a&gt;) &lt;strong&gt;‘Update Android SDK to version 36.1.0 and targetSdkVersion to 36’&lt;/strong&gt; by AGulev
Android SDK updated to the latest stable version 36.1.0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11540&quot;&gt;#11447&lt;/a&gt;) &lt;strong&gt;‘Add support for http proxy connections’&lt;/strong&gt; by britzl
HTTP requests can now specify a proxy server to use when connecting to the destination server. When a proxy is used the connection to the destination server is established using an a HTTP tunnel through the proxy. The HTTP tunnel is established using the &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Methods/CONNECT&quot;&gt;CONNECT HTTP method&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;	&lt;span class=&quot;c1&quot;&gt;-- connect to www.defold.com via localhost proxy on port 8888&lt;/span&gt;
	&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;url&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;https://www.defold.com:443&quot;&lt;/span&gt;
	&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;method&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;GET&quot;&lt;/span&gt;
	&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;headers&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{}&lt;/span&gt;
	&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_data&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;nil&lt;/span&gt;
	&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
		&lt;span class=&quot;n&quot;&gt;proxy&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;https://127.0.0.1:8888&quot;&lt;/span&gt;
	&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
	&lt;span class=&quot;n&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
		&lt;span class=&quot;n&quot;&gt;pprint&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
	&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;post_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11664&quot;&gt;#9505&lt;/a&gt;) &lt;strong&gt;‘Replaced the deprecated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALooper_pollAll&lt;/code&gt; call with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALooper_pollOnce&lt;/code&gt;‘&lt;/strong&gt; by AGulev
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALooper_pollAll&lt;/code&gt; has been deprecated due to &lt;a href=&quot;https://github.com/android/ndk-samples/issues/999&quot;&gt;a potential race condition&lt;/a&gt;. It has been replaced with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ALooper_pollOnce&lt;/code&gt; in the engine code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11740&quot;&gt;#11739&lt;/a&gt;) &lt;strong&gt;‘Report old and new shader combinations’&lt;/strong&gt; by Jhonnyg
When mixing old and new shader pipelines, we currently show a warning but don’t tell the users which shaders is causing it. Instead, we now show which shader resources that are causing this to happen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11436&quot;&gt;#11429&lt;/a&gt;) &lt;strong&gt;‘Added editor option to select when to build with the profiler’&lt;/strong&gt; by JCash
This allows for the option to use the profiler in a release build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11584&quot;&gt;#11577&lt;/a&gt;) &lt;strong&gt;‘Add support for mounting live update archives from Android assets’&lt;/strong&gt; by britzl
It is now possible to mount a live update archive located inside the assets folder of an Android bundle by using a specific prefix to the archive path:&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;liveupdate&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_mount&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;my_mount&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;zip:/android_asset/myassets.zip&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;priority&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;callback&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The archive can be added to the Android bundle using the bundle resources option or as an install-time Play Asset Delivery pack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11626&quot;&gt;#11558&lt;/a&gt;) &lt;strong&gt;‘Fix regex for linux shared libraries’&lt;/strong&gt; by ekharkunov&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11629&quot;&gt;#11164&lt;/a&gt;) &lt;strong&gt;‘Removed unnecessary lock of main thread when loading many large textures’&lt;/strong&gt; by britzl
This change makes sure that the resource system doesn’t lock the main thread when loading many large textures (or other large resources).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11526&quot;&gt;#11526&lt;/a&gt;) &lt;strong&gt;‘Update LuaJIT’&lt;/strong&gt; by AGulev
This update resolves performance issues on arm64 platforms with JIT enabled, such as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arm64-mac&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arm64-android&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;arm64-linux&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11541&quot;&gt;#11541&lt;/a&gt;) &lt;strong&gt;‘Performance optimisations for atlas creation’&lt;/strong&gt; by AGulev
These improvements reduced the total atlas build time in Bob.jar from ~2850ms down to ~1100ms for a tested atlas (8192x4096, 4818 images on MBP M1 Max), including a drop in layout calculation time from ~1300ms down to ~490ms. With the reduced algorithmic complexity, adding more images will affect performance far less than before.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11547&quot;&gt;#11547&lt;/a&gt;) &lt;strong&gt;‘Bob performance optimizations for sequential builds’&lt;/strong&gt; by AGulev
Load the native libraries used for shader, model and texture building in advance during Bob’s initialisation stage, and do it in parallel. This can save up to 2 seconds during a rebuild when all three libraries are needed. While that might not be a big deal for a full build, for sequential builds (builds without &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;clean&lt;/code&gt;) it can be a noticeable improvement (for example, 4s -&amp;gt; 2s).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11555&quot;&gt;#11517&lt;/a&gt;) &lt;strong&gt;‘Fixed missing delete key binding on HTML5’&lt;/strong&gt; by britzl
The delete key was not correctly identified in HTML5 builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11609&quot;&gt;#11609&lt;/a&gt;) &lt;strong&gt;‘Improved atlas texture creation speed in the editor’&lt;/strong&gt; by AGulev&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11614&quot;&gt;#11613&lt;/a&gt;) &lt;strong&gt;‘Unblock main thread while loading a collection and a texture at the same time’&lt;/strong&gt; by britzl
This fixes an issue where the main thread locked for an extender period of time when loading and initialising a collection while at the same time doing a texture upload on Vulkan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11624&quot;&gt;#11624&lt;/a&gt;) &lt;strong&gt;‘Various leak fixes: SSL socket, physics, script table, game system, engine’&lt;/strong&gt; by JCash&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11678&quot;&gt;#11678&lt;/a&gt;) &lt;strong&gt;‘Make sure the mesh component buffer’s version is taken into account when updating the vertex buffer’&lt;/strong&gt; by JCash
This fixes an issue when setting a buffer via the “vertices” property, and the vertex buffer wasn’t updated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11679&quot;&gt;#11679&lt;/a&gt;) &lt;strong&gt;‘Fixes in the Vulkan graphics backend’&lt;/strong&gt; by JCash
The issue presented itself when running with diagnostics, but could lead to odd behaviors at runtime.
The fixes:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;an image size was occasionally miscalculated, which could result in a read out-of-bounds&lt;/li&gt;
  &lt;li&gt;the graphics async state was written to twice, in a non thread safe manner&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11706&quot;&gt;#10571&lt;/a&gt;) &lt;strong&gt;‘Dont use valueptr for models in GetProperty for material constants’&lt;/strong&gt; by Jhonnyg
Fixed an issue where using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.animate&lt;/code&gt; to animate material constants would cause model hashes to not be updated. This would cause model instancing to behave incorrectly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11709&quot;&gt;#11627&lt;/a&gt;) &lt;strong&gt;‘Added Safe Area related functionality’&lt;/strong&gt; by AGulev
Safe Area support for Android and iOS phones is now available in the engine out of the box.
You can control how the GUI respects the safe area using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gui.safe_area_mode = none|long|short|both&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.project&lt;/code&gt;, with the option to override this per GUI scene at runtime via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gui.gui.set_safe_area_mode(gui.SAFE_AREA_*)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;408&quot; height=&quot;233&quot; alt=&quot;Safe area settings available in game.project&quot; src=&quot;https://github.com/user-attachments/assets/3b0c7a82-b9ff-4ec7-98ff-0dc30d7f3f9a&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This allows UI elements to stay within safe zones on devices with notches, while still using the full screen when no cutout is present (On platforms without cutouts, the inset values are returned as 0).
The new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;window.get_safe_area()&lt;/code&gt; API provides the current safe area rectangle along with inset values, making it possible to use this data in custom layout and positioning logic.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;1000&quot; height=&quot;648&quot; alt=&quot;User interface laid out within the safe area on a device with a notch&quot; src=&quot;https://github.com/user-attachments/assets/f4d12bec-5b3c-4088-94db-2b624859fb9b&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11718&quot;&gt;#11689&lt;/a&gt;) &lt;strong&gt;‘&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bob.jar&lt;/code&gt; now scans for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext.properties&lt;/code&gt; in all folders, not just extension folders’&lt;/strong&gt; by AGulev
Fix an inconsistency where the Editor scans &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext.properties&lt;/code&gt; in all folders, while &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bob.jar&lt;/code&gt; only scans extension folders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11741&quot;&gt;#11736&lt;/a&gt;) &lt;strong&gt;‘Fix text layout regression’&lt;/strong&gt; by britzl
This fixes a regression and discrepancy between how fonts are viewed in the editor and rendered in the engine. Monospace font padding were not properly respected and trailing spaces had an incorrect length.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11746&quot;&gt;#11746&lt;/a&gt;) &lt;strong&gt;‘Fix Android resource detection’&lt;/strong&gt; by ekharkunov
Fixed issue when bundle resources doesn’t detected as valid Android resources because of additional .DS_Store files&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11175&quot;&gt;#11104&lt;/a&gt;) &lt;strong&gt;‘Copy dynamic libs into result bundle’&lt;/strong&gt; by ekharkunov&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11349&quot;&gt;#11349&lt;/a&gt;) &lt;strong&gt;‘Add logic to recover lost sound device on Windows’&lt;/strong&gt; by deurell
Handle recovery of lost sound device on Windows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11663&quot;&gt;#11663&lt;/a&gt;) &lt;strong&gt;‘Fix a rare potential ANR issue on Android’&lt;/strong&gt; by AGulev
The expensive part of window termination on android was moved from the looper thread to the engine thread to prevent potential ANRs when terminating a window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11674&quot;&gt;#11673&lt;/a&gt;) &lt;strong&gt;‘Fixed missing tracking when doing layout of glyphs’&lt;/strong&gt; by JCash&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11685&quot;&gt;#11685&lt;/a&gt;) &lt;strong&gt;‘Added support for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.jpeg&lt;/code&gt; files for models’&lt;/strong&gt; by JCash
Previously, models could only refer to .jpg or .png files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11720&quot;&gt;#11683&lt;/a&gt;) &lt;strong&gt;‘Added check if font glyph bitmap will fit into the font glyph texture before uploading’&lt;/strong&gt; by JCash
This fixes an issue where blitting an image outside of the texture size is throwing errors on OpenGL backend.&lt;/p&gt;

&lt;h2 id=&quot;editor&quot;&gt;Editor&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11571&quot;&gt;#11528&lt;/a&gt;) &lt;strong&gt;‘Added ‘Help’ to the list of permitted locations for editor scripts’&lt;/strong&gt; by AGulev&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11441&quot;&gt;#7047&lt;/a&gt;) &lt;strong&gt;‘Breakpoints tab view’&lt;/strong&gt; by JosephFerano
Breapoints Tab has been added to the Tool’s Panel which allows the user to manage all breakpoints in their project. Breakpoints also received an enhancement with the ability to toggle their enabled state, allowing users to temporarily disable them without deleting them. Breakpoints also now persistent across sessions so you don’t lose them when you close the project.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;528&quot; height=&quot;229&quot; alt=&quot;Breakpoints tab showing all breakpoints in a project&quot; src=&quot;https://github.com/user-attachments/assets/d0849419-d734-4744-b287-73836c04fde3&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;1328&quot; height=&quot;358&quot; alt=&quot;Breakpoint actions and conditions available from the new Breakpoints tab&quot; src=&quot;https://github.com/user-attachments/assets/2bd727a4-e3b5-4c2e-b227-7d996b68cd6c&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Features include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Enable/Disable/Toggle/Remove All or selected with right-click context menu actions&lt;/li&gt;
  &lt;li&gt;Toggle breakpoint enabled state checkbox&lt;/li&gt;
  &lt;li&gt;Add/Edit/Remove conditions&lt;/li&gt;
  &lt;li&gt;Go to line or show asset in the browser&lt;/li&gt;
  &lt;li&gt;Keyboard shortcuts!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11600&quot;&gt;#11600&lt;/a&gt;) &lt;strong&gt;‘Skip unnecessary traversal in update-overrides’&lt;/strong&gt; by matgis
Skipping some graph traversal in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update-overrides&lt;/code&gt; step that concludes transactions is now around 14.7 times faster. In the large project we were testing with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update-overrides&lt;/code&gt; step during the initial project loading went from taking 1:43 to 6.8 seconds, resulting in a 27% project load time improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11595&quot;&gt;#11276&lt;/a&gt;) &lt;strong&gt;‘Added an ability to specify &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;library.defold_min_version&lt;/code&gt; for extensions to prevent using incompatible extensions ‘&lt;/strong&gt; by AGulev
Extensions that define &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;library.defold_min_version&lt;/code&gt; are now validated against the current Defold version.
If the extension requires a newer version than the one being used, the build will fail with an error message.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11630&quot;&gt;#11630&lt;/a&gt;) &lt;strong&gt;‘Decrease editor memory pressure from transaction steps’&lt;/strong&gt; by matgis
Refactored the data structures we use to represent atomic changes to the editor graph. This yields a small improvement to peak memory usage when loading the project.&lt;/p&gt;

&lt;p&gt;For comparison, in our large test project, the transaction steps needed to load the project went from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1.02 GB&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;695 MB&lt;/code&gt;. In practice, the improvement will not be directly reflected as a corresponding decrease in peak memory usage, but the change puts less pressure on the garbage collector and enables further optimizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11642&quot;&gt;#11607&lt;/a&gt;) &lt;strong&gt;‘Add a window title to splash, welcome, and project loading’&lt;/strong&gt; by JosephFerano
Defold now has an OS window title while starting up, showing the welcome screen, and during the project loading window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11696&quot;&gt;#11406&lt;/a&gt;) &lt;strong&gt;‘Editor: Add drag and drop from Assets to Properties Resource Picker’&lt;/strong&gt; by JosephFerano
Allow dragging and dropping of assets from the Asset Browser pane into a Resource Picker in the Properties pane.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11748&quot;&gt;#4156&lt;/a&gt;) &lt;strong&gt;‘Move project dependencies into their own separate category in the Assets panel’&lt;/strong&gt; by vlaaad
In projects with many dependencies, having them all in the main folder can be disruptive. To improve this, all dependencies are moved into a separate Dependencies folder at the same root level as the project.&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;562&quot; height=&quot;902&quot; alt=&quot;Dependencies folder shown separately in the Assets panel&quot; src=&quot;https://github.com/user-attachments/assets/1b7a9084-080d-463f-b3b0-4a1bf8631fe0&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11704&quot;&gt;#8960&lt;/a&gt;) &lt;strong&gt;‘Added “Close” button to the animation preview in atlas’&lt;/strong&gt; by AGulev
It wasn’t obvious how to close the animation preview in the atlas, so a Close button was added along with a tooltip reminding users of the shortcut:&lt;/p&gt;

&lt;p&gt;&lt;img width=&quot;422&quot; height=&quot;198&quot; alt=&quot;Atlas animation preview with the new Close button&quot; src=&quot;https://github.com/user-attachments/assets/5d38c15f-9dfc-41bb-91df-037a7711d2f8&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11708&quot;&gt;#11676&lt;/a&gt;) &lt;strong&gt;‘Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zlib&lt;/code&gt; module to editor scripts’&lt;/strong&gt; by vlaaad
Now, the editor scripts’ Lua runtime has &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zlib&lt;/code&gt; module — with the same semantics as the engine’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zlib&lt;/code&gt; module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11715&quot;&gt;#11396&lt;/a&gt;) &lt;strong&gt;‘Do not rename items on double-click in the outline (keep only F2 for renaming)’&lt;/strong&gt; by AGulev&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11559&quot;&gt;#9702,#9401&lt;/a&gt;) &lt;strong&gt;‘Fix issues around textures shared between Model Scenes’&lt;/strong&gt; by matgis
Texture resources shared across multiple Model Scenes (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.gltf&lt;/code&gt; files) will now properly share VRAM resources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11568&quot;&gt;#11568&lt;/a&gt;) &lt;strong&gt;‘Revamp the Properties view’&lt;/strong&gt; by vlaaad
We have now refreshed the Properties view.&lt;/p&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;![522333438-7a215758-fe39-4b9b-991f-4cf46db9f833&lt;/td&gt;
      &lt;td&gt;video](upload://2sokhM2b8I35J8KaiAtqHeKtXq0.mp4)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;It looks better than it was before; it shows the updates immediately, and its styling is now more consistent with the rest of the editor, particularly with the editor scripts UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11569&quot;&gt;#11556&lt;/a&gt;) &lt;strong&gt;‘Fixed an issue where the camera component icon would disappear after copy-pasting a camera component’&lt;/strong&gt; by AGulev&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11570&quot;&gt;#11570&lt;/a&gt;) &lt;strong&gt;‘Improve project open performance in large projects’&lt;/strong&gt; by vlaaad
A project now opens approximately 15% faster (as measured on a large project with thousands of assets: time to open reduced from 3m36s to 3m02s on my machine).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11601&quot;&gt;#11601&lt;/a&gt;) &lt;strong&gt;‘Improve project load performance by 19%’&lt;/strong&gt; by vlaaad
This performance optimization improves project load performance on big projects. As measured on a large project, the load time decreased from 3:01 to 2:25, a 19% improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11604&quot;&gt;#11604&lt;/a&gt;) &lt;strong&gt;‘Improve project loading performance of large projects by 4%’&lt;/strong&gt; by vlaaad
This change defines resource types for common file formats (binary and text) to avoid binary/text detection during project load.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11593&quot;&gt;#10688&lt;/a&gt;) &lt;strong&gt;‘Editor: Optimize atlas preview generation’&lt;/strong&gt; by JosephFerano
Working with Atlases now have better performance characteristics. Changes to image and animation properties that do not affect the atlas texture are now near instant, and changes to Atlas properties that do require recalculation perform faster. Finally, an error is now shown in the Scene View when texture page count exceeds 8 pages, since that is the maximum supported amount.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11617&quot;&gt;#8463&lt;/a&gt;) &lt;strong&gt;‘Editor: Optimize Atlas Preview Image Generation for faster iterations’&lt;/strong&gt; by JosephFerano
The time it takes to generate a new atlas preview after changing its properties was reduced significantly. It should now be around 6x faster on slower machines. As well, dragging/dropping images or moving them up/down in the Outline view of an Atlas when working with Animations will no longer trigger a recalculation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11652&quot;&gt;#11619&lt;/a&gt;) &lt;strong&gt;‘Editor: Fix exception when showing Context Menu for a missing resource’&lt;/strong&gt; by matgis
Accessing the Context Menu for a deleted image file referenced from an Atlas no longer throws an exception.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11655&quot;&gt;#11655&lt;/a&gt;) &lt;strong&gt;‘Exclude insignificant entries when applying gui property overrides in the editor’&lt;/strong&gt; by matgis
When applying property overrides to Gui nodes, filter out entries that have no significance. This significantly shrinks the list of affected nodes and properties that will need to be applied when loading, which saves around 82 MB of memory and a few seconds of load time in the large project we’re testing with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11693&quot;&gt;#4959&lt;/a&gt;) &lt;strong&gt;‘Add an embedded sound component instead of using a raw sound’&lt;/strong&gt; by AGulev
When a raw sound component is added to a GameObject, it is automatically wrapped and converted into an embedded sound component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11700&quot;&gt;#8442&lt;/a&gt;) &lt;strong&gt;‘Select the first element by default in forms where choosing an option reveals additional settings’&lt;/strong&gt; by vlaaad
In some forms, it’s not immediately clear that menu selections reveal additional options. To improve this, those options are selected by default.&lt;/p&gt;

&lt;p&gt;Here’s an example showing how the same file looks to the user immediately after opening it, before and after the changes:
&lt;img width=&quot;1448&quot; height=&quot;762&quot; alt=&quot;Before-and-after comparison of a form with a default option selected&quot; src=&quot;https://github.com/user-attachments/assets/b799cfa4-b1f8-459d-a6b6-096cb182c1ec&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11753&quot;&gt;#11532&lt;/a&gt;) &lt;strong&gt;‘Limit max height of editor script dialogs’&lt;/strong&gt; by vlaaad
Now, editor dialogs are limited in height. Users are encouraged to use the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;editor.ui.scroll()&lt;/code&gt; container for dialogs that may display a lot of content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11690&quot;&gt;#11690&lt;/a&gt;) &lt;strong&gt;‘Add &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/prefs/...&lt;/code&gt; editor HTTP server enpoints’&lt;/strong&gt; by vlaaad
Now, the editor’s HTTP server allows querying and modifying the preferences using its &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/prefs/...&lt;/code&gt; endpoints.&lt;/p&gt;

&lt;p&gt;Use a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;GET&lt;/code&gt; request for reading all preferences:&lt;/p&gt;
&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;curl http://localhost:&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; .internal/editor.port&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;/prefs | jq
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  ...big JSON blob...
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Or a group of settings:&lt;/p&gt;
&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;curl http://localhost:&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; .internal/editor.port&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;/prefs/build | jq
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;lint-code&quot;&lt;/span&gt;: &lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt;,
  &lt;span class=&quot;s2&quot;&gt;&quot;texture-compression&quot;&lt;/span&gt;: &lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt;,
  &lt;span class=&quot;s2&quot;&gt;&quot;open-html5-build&quot;&lt;/span&gt;: &lt;span class=&quot;nb&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Or a single setting:&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ curl http://localhost:$(cat .internal/editor.port)/prefs/build/texture-compression | jq
true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Use a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;POST&lt;/code&gt; request for writing:&lt;/p&gt;
&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;curl http://localhost:&lt;span class=&quot;si&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; .internal/editor.port&lt;span class=&quot;si&quot;&gt;)&lt;/span&gt;/prefs/build/texture-compression &lt;span class=&quot;nt&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;nt&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;false&apos;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
			<pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/02/04/Defold-1-12-1/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/02/04/Defold-1-12-1/</guid>
		</item>
		
		<item>
			<title>Defold release 1.12.0</title>
			<description>&lt;h1 id=&quot;defold-1120&quot;&gt;Defold 1.12.0&lt;/h1&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;BREAKING CHANGE&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11491&quot;&gt;#11491&lt;/a&gt;) Rearrange component’s update (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11403&quot;&gt;#11386&lt;/a&gt;) Added new camera functions for converting between world and screen coordinates.   (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11445&quot;&gt;#8309&lt;/a&gt;) Added engine throttle performance Lua api (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11285&quot;&gt;#9981&lt;/a&gt;) Add sys.get_config_boolean() (by appsoluut)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11448&quot;&gt;#10948&lt;/a&gt;) Added support for .astc texture format in gui.new_texture() (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11512&quot;&gt;#7277&lt;/a&gt;) Introduce &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update&lt;/code&gt; script function (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11427&quot;&gt;#8763&lt;/a&gt;) Added sound group mute functionality to C++ dmSDK (by deurell)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11014&quot;&gt;#9844&lt;/a&gt;) Added support for text shaping (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11367&quot;&gt;#11184&lt;/a&gt;) WelcomeScreen: Enter keybinding to open selected project (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11407&quot;&gt;#11334&lt;/a&gt;) Check ENV and validate DM_SERVICE_PORT (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11385&quot;&gt;#3868&lt;/a&gt;) Save and Restore open tabs (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11518&quot;&gt;#10999&lt;/a&gt;) Build runtime-generated fonts from the editor (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11508&quot;&gt;#11508&lt;/a&gt;) Improve Model rendering performance in Scene View (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11072&quot;&gt;#10971&lt;/a&gt;) New sound backend for iOS and macOS: AVAudio (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11434&quot;&gt;#11416&lt;/a&gt;) Make sure ASTC used in maximum possible cases in HTML5 bundle (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11357&quot;&gt;#10312&lt;/a&gt;) Fixed Crash when using raycasts under certain conditions (by DarkRavenStar)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11485&quot;&gt;#11464&lt;/a&gt;) Add astc encoding context destruction to deallocate memory (by JCash)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11498&quot;&gt;#9917&lt;/a&gt;) Fix frustrum culling for sprites with pivot point  (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11519&quot;&gt;#11519&lt;/a&gt;) ASTC encoder fixes (by AGulev)&lt;/li&gt;
  &lt;li&gt;
    &lt;table&gt;
      &lt;tbody&gt;
        &lt;tr&gt;
          &lt;td&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11419&quot;&gt;#11419&lt;/a&gt;) Added Microsoft Xbox Series S&lt;/td&gt;
          &lt;td&gt;X Controller for Linux (by paweljarosz)&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11537&quot;&gt;#11537&lt;/a&gt;) Add multithreaded encoding for ASTC encoder (by AGulev)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11633&quot;&gt;#11632&lt;/a&gt;) Fix text metrics width calculation (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11728&quot;&gt;#11728&lt;/a&gt;) Fix memory leak / fragmentation in PreStepEmscripten (by meehaul)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11762&quot;&gt;#11743&lt;/a&gt;) Remove validation of glyph order (by britzl)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11414&quot;&gt;#11379&lt;/a&gt;) Allow typing tilde (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~&lt;/code&gt;) on Swedish keyboard layout (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11412&quot;&gt;#11377&lt;/a&gt;) Repaint up to last visible minimap row (by JosephFerano)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11354&quot;&gt;#10891&lt;/a&gt;) Update Java version to 25 (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11428&quot;&gt;#11400&lt;/a&gt;) Show errors from exceptions thrown during tile source texture layout (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11442&quot;&gt;#11166&lt;/a&gt;) Produce user-friendly build errors from invalid Tile Sources (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11455&quot;&gt;#11452&lt;/a&gt;) Fix exceptions from removed nodes when getting overridden properties (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11457&quot;&gt;#11457&lt;/a&gt;) Localize resource type labels (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11465&quot;&gt;#11465&lt;/a&gt;) Localize form views (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11484&quot;&gt;#11462&lt;/a&gt;) Fix editor exception when double-clicking on a Build Error from a resource with an empty Outline  (by matgis)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11487&quot;&gt;#11487&lt;/a&gt;) Localize editor scripts and bundle dialogs (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11489&quot;&gt;#11461&lt;/a&gt;) Fix outline re-ordering (by vlaaad)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/extender/pull/804&quot;&gt;extender#802&lt;/a&gt;) Update JDK to 25 (Docker image only) (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/extender/pull/803&quot;&gt;extender#801&lt;/a&gt;) Fix extension build errors when PodSpec has more than 2 level of subspecs (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/extender/pull/810&quot;&gt;extender#806&lt;/a&gt;) Rework health report collection (by ekharkunov)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/doc/pull/590&quot;&gt;doc#590&lt;/a&gt;) Updated Application Lifecycle for Defold 1.12.0+ and added new diagrams. (by paweljarosz)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;engine&quot;&gt;Engine&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;BREAKING CHANGE&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11491&quot;&gt;#11491&lt;/a&gt;) &lt;strong&gt;‘Rearrange component’s update’&lt;/strong&gt; by ekharkunov
⚠️ ⚠️ ⚠️ &lt;strong&gt;Possible breaking change&lt;/strong&gt; ⚠️ ⚠️ ⚠️
Our Lua script update order has changed, and fixed_update() is now called &lt;em&gt;before&lt;/em&gt; update().
We’ve also added &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update()&lt;/code&gt; which happens last in the engine frame, just before the render script is called.&lt;/p&gt;

&lt;p&gt;For each engine update, you will now get:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;* fixed_update(fixed_dt) -- zero or more times *
* update(dt)             -- one time
* late_update(dt)        -- one time
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In terms of how components are updated in relation to those functions.
Between each of these steps, we also flush any posted messages, it’s just left out here to make the description more compact:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Engine Component Fixed Update (zero or more steps)
    &lt;ul&gt;
      &lt;li&gt;Lua fixed_update(fixed_dt)
        &lt;ul&gt;
          &lt;li&gt;Lua Flush Messages&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
      &lt;li&gt;Physics Fixed Update(fixed_dt) *&lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Engine Component Update
    &lt;ul&gt;
      &lt;li&gt;Lua update(dt)
        &lt;ul&gt;
          &lt;li&gt;Lua Flush Messages&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
      &lt;li&gt;Physics Update(dt) *&lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Engine Component Late Update
    &lt;ul&gt;
      &lt;li&gt;Lua late_update(dt)
        &lt;ul&gt;
          &lt;li&gt;Lua Flush Messages&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*) Note that fixed_update() is only called if you’ve enabled it in project settings “Use fixed timestep”&lt;/p&gt;

&lt;p&gt;For further information regarding life cycle, and component update order, we’ll refer to the &lt;a href=&quot;https://defold.com/manuals/application-lifecycle/&quot;&gt;documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11403&quot;&gt;#11386&lt;/a&gt;) &lt;strong&gt;‘Added new camera functions for converting between world and screen coordinates.  ‘&lt;/strong&gt; by AGulev
Adds three camera-space conversion helpers to the Lua &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera&lt;/code&gt; module:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera.world_to_screen(world_pos, [camera])&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera.screen_xy_to_world(x, y, [camera])&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera.screen_to_world(pos, [camera])&lt;/code&gt;
    &lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;-- Place objects at the touch point.&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;on_input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action_id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action_id&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;touch&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pressed&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;world_position&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;screen_xy_to_world&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;screen_x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;screen_y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;world_position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/go1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;-- Place objects at the touch point with a random Z position, keeping them within the visible view zone.&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;on_input&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action_id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action_id&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;touch&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pressed&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
            &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;percpective_camera&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;msg&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;#perspective_camera&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;random_z&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;math.random&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_near_z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;percpective_camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;01&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_far_z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;percpective_camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;01&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;world_position&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;screen_to_world&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vmath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;screen_x&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;screen_y&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;random_z&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;percpective_camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
            &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;world_position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/go1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
        &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;-- Convert go position into screen position&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;update_world_transform&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/go1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;world_pos&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;go&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_world_position&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/go1&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;screen_pos&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;camera&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;world_to_screen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;world_pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11445&quot;&gt;#8309&lt;/a&gt;) &lt;strong&gt;‘Added engine throttle performance Lua api’&lt;/strong&gt; by JCash
This api allows the developer to skip engine updates altogether, except input detection.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;No update or rendering will occur once the engine is throttled&lt;/li&gt;
  &lt;li&gt;Any input will wake up the engine again&lt;/li&gt;
  &lt;li&gt;The engine will be throttled again after the cooldown period&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Api:&lt;/p&gt;
&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_engine_throttle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;-- No throttling, full engine updates + rendering (default)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_engine_throttle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;-- Throttling with a cooldown. Engine will wake up for 1 second after each input&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_engine_throttle&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kc&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;-- Throttling with a cooldown. Engine will wake up for 1 frame after each input.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11285&quot;&gt;#9981&lt;/a&gt;) &lt;strong&gt;‘Add sys.get_config_boolean()’&lt;/strong&gt; by appsoluut
Allow to get the config parameter as a boolean in Lua. Converts only &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0&lt;/code&gt; to their boolean counterparts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11448&quot;&gt;#10948&lt;/a&gt;) &lt;strong&gt;‘Added support for .astc texture format in gui.new_texture()’&lt;/strong&gt; by JCash
This allows for using compressed textures in gui.&lt;/p&gt;

&lt;p&gt;There are some restrictions on the input .astc file:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Format should be RGBA&lt;/li&gt;
  &lt;li&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;flip&lt;/code&gt; parameter is not supported, so make sure texture is already flipped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;/p&gt;
&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;path&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/assets/images/logo_4x4.astc&quot;&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;sys&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;load_resource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;n&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;gui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new_box_node&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;pos&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;vmath&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;vector3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;))&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;gui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;new_texture&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;astc&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kc&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;gui&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;set_texture&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;n&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11512&quot;&gt;#7277&lt;/a&gt;) &lt;strong&gt;‘Introduce &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update&lt;/code&gt; script function’&lt;/strong&gt; by ekharkunov
New script function &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update(self, dt)&lt;/code&gt; was introduced. That function runs &lt;strong&gt;after&lt;/strong&gt; regular &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update(self, dt)&lt;/code&gt; function. All in-games messages are dispacthed in between &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update(self, dt)&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update(self, dt)&lt;/code&gt;. You can safely update game object’s transforms in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update(self, dt)&lt;/code&gt; because components will update inner transforms after script execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11427&quot;&gt;#8763&lt;/a&gt;) &lt;strong&gt;‘Added sound group mute functionality to C++ dmSDK’&lt;/strong&gt; by deurell
Add functionality to mute sound groups from extensions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11014&quot;&gt;#9844&lt;/a&gt;) &lt;strong&gt;‘Added support for text shaping’&lt;/strong&gt; by JCash
Added support for&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Text shaping&lt;/li&gt;
  &lt;li&gt;Font Collections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deprecated support for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;extension-font&lt;/code&gt; native extension.
Most that code has moved into the core engine, along with major improvements to the workflow.&lt;/p&gt;

&lt;p&gt;We added the Lua script functions:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;font.add_font(font_hash, ttf_hash)&lt;/code&gt; – associate .ttf font with .fontc&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;font.remove_font(font_hash, ttf_hash)&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;font.prewarm_text(font_hash, text, callback)&lt;/code&gt; – generate necessary glyphs before rendering.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;font.get_info(font_hash)&lt;/code&gt; - print info about the .fontc&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;text-shaping&quot;&gt;Text shaping&lt;/h3&gt;
&lt;p&gt;This feature adds support for unicode text shaping at runtime.
For instance proper pair kernings, ligatures and right-to-left text.&lt;/p&gt;

&lt;p&gt;The overhead of the extra engine code is around 22%, which means ca 178kb size increase on Wasm target (brotli compressed). That should be compared to the prerasterized font textures in our ligacy system, and the new system where it includes the raw .ttf fonts.
We feel that this is an acceptable cost to pay, for the return value of getting better support for different languages.&lt;/p&gt;

&lt;h4 id=&quot;prewarming-glyph-cache&quot;&gt;Prewarming glyph cache&lt;/h4&gt;

&lt;p&gt;As the text layout system considers the internal glyph indices of a font, it is no longer sufficient to specify a list of code points to use for prewarming the glyph texture cache.
Instead, add an example text is currently recommended&lt;/p&gt;

&lt;h4 id=&quot;asynchronous&quot;&gt;Asynchronous&lt;/h4&gt;
&lt;p&gt;On systems that support threading, the glyph image generation is handled on a worker thread.
Due to this fact, and the fact that the font resource glyph cache may not yet contain your needed glyphs, we also added helper functions to prewarm the font glyph cache.&lt;/p&gt;

&lt;p&gt;The helper has a callback function, which is useful to let you know when the glyphs have landed in the cache, and it’s safe to show the text on screen.&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;font_hash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/assets/fonts/roboto.fontc&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;font&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;prewarm_text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Some text&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;font-collections&quot;&gt;Font Collections&lt;/h3&gt;

&lt;p&gt;To help with localization, we added support to our font resources to associate multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.ttf&lt;/code&gt; files with a single font resource. It allows for easier memory management. E.g. only load the language fonts you need.&lt;/p&gt;

&lt;div class=&quot;language-lua highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;font_hash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/assets/fonts/roboto.fontc&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ttf_hash&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/assets/fonts/Roboto/Roboto-Bold.ttf&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;font&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;add_font&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;font_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ttf_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;how-to-use-in-your-project&quot;&gt;How to use in your project&lt;/h3&gt;

&lt;p&gt;You need to…&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;set the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;font.runtime_generation = 1&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.project&lt;/code&gt; to use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.ttf&lt;/code&gt; fonts at runtime.&lt;/li&gt;
  &lt;li&gt;use an app manifest, selecting the “Font Layout” feature.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11072&quot;&gt;#10971&lt;/a&gt;) &lt;strong&gt;‘New sound backend for iOS and macOS: AVAudio’&lt;/strong&gt; by AGulev
This new backend replaces the deprecated OpenAL backend on iOS and macOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11434&quot;&gt;#11416&lt;/a&gt;) &lt;strong&gt;‘Make sure ASTC used in maximum possible cases in HTML5 bundle’&lt;/strong&gt; by AGulev
&lt;a href=&quot;https://issues.chromium.org/issues/434983812&quot;&gt;Because of a Chromium-side issue&lt;/a&gt;, Defold uses a workaround that disables ASTC compression when the issue is detected, falling back to ETC2 - which offers lower visual quality.&lt;/p&gt;

&lt;p&gt;This update narrows the fallback to ETC2 so it only applies to &lt;strong&gt;paged atlases&lt;/strong&gt; in affected cases.&lt;br /&gt;
As a result, single-paged atlases now use ASTC for maximum texture quality, while multi-paged atlases remain visible even on devices impacted by the Chromium problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11357&quot;&gt;#10312&lt;/a&gt;) &lt;strong&gt;‘Fixed Crash when using raycasts under certain conditions’&lt;/strong&gt; by DarkRavenStar
This fixes a crash when the length of a 2D or 3D raycast is zero.
This fix specifically takes into account the case when the ray length becomes zero after applying the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;physics.scale&lt;/code&gt; setting in game.project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11485&quot;&gt;#11464&lt;/a&gt;) &lt;strong&gt;‘Add astc encoding context destruction to deallocate memory’&lt;/strong&gt; by JCash
Added memory fix when using ASTC texture compression. It previously leaked memory after each compressed image.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11498&quot;&gt;#9917&lt;/a&gt;) &lt;strong&gt;‘Fix frustrum culling for sprites with pivot point ‘&lt;/strong&gt; by ekharkunov
Fixed culling for sprites with pivot points. Also implemented some optimization on how geometry data calculated and stored between batches. So now it should be a bit faster in terms of calculation but consume some memory to store cached information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11519&quot;&gt;#11519&lt;/a&gt;) &lt;strong&gt;‘ASTC encoder fixes’&lt;/strong&gt; by AGulev&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Updated the ASTC encoder to version 5.3.0&lt;/li&gt;
  &lt;li&gt;Enabled the release flag to ensure full performance&lt;/li&gt;
  &lt;li&gt;Fixed the ASTC 4x4 RGB build&lt;/li&gt;
&lt;/ul&gt;

&lt;table&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11419&quot;&gt;#11419&lt;/a&gt;) __‘Added Microsoft Xbox Series S&lt;/td&gt;
      &lt;td&gt;X Controller for Linux’__ by paweljarosz&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Added gamepad mapping for the Microsoft Xbox Series S&lt;/td&gt;
      &lt;td&gt;X controller for Linux to the built-in default.gamepads.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11537&quot;&gt;#11537&lt;/a&gt;) &lt;strong&gt;‘Add multithreaded encoding for ASTC encoder’&lt;/strong&gt; by AGulev
Speed up the ASTC encoder using a few threads per image (in addition to encoding a few images at the same time)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11633&quot;&gt;#11632&lt;/a&gt;) &lt;strong&gt;‘Fix text metrics width calculation’&lt;/strong&gt; by britzl
This change fixes an issue with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;resource.get_text_metrics()&lt;/code&gt; calculation where the width of the last character of a string of text is incorrect. This leads to problems when placing words one by one or align other objects next to words.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11728&quot;&gt;#11728&lt;/a&gt;) &lt;strong&gt;‘Fix memory leak / fragmentation in PreStepEmscripten’&lt;/strong&gt; by meehaul
Fixed a memory leak on every frame with Emscripten builds, resulting in significant heap fragmentation and usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11762&quot;&gt;#11743&lt;/a&gt;) &lt;strong&gt;‘Remove validation of glyph order’&lt;/strong&gt; by britzl
This fixes a crash when using fonts in the BMFont format when the glyphs of the font are not sorted in increasing order.&lt;/p&gt;

&lt;h2 id=&quot;editor&quot;&gt;Editor&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11367&quot;&gt;#11184&lt;/a&gt;) &lt;strong&gt;‘WelcomeScreen: Enter keybinding to open selected project’&lt;/strong&gt; by JosephFerano
Currently pressing ENTER in the welcome screen to select a project doesn’t do anything. This PR adds the ENTER keybinding so it opens the currently selected project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11407&quot;&gt;#11334&lt;/a&gt;) &lt;strong&gt;‘Check ENV and validate DM_SERVICE_PORT’&lt;/strong&gt; by JosephFerano
Editor used to ignore &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;DM_SERVICE_PORT&lt;/code&gt; and always use a dynamic port. Now the editor can read the port when the environment variable supplied.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11385&quot;&gt;#3868&lt;/a&gt;) &lt;strong&gt;‘Save and Restore open tabs’&lt;/strong&gt; by JosephFerano
Currently, when a user has open tabs and assigned to different panes, when they close the editor, they are all closed out and require opening them up again. This PR will restore all previous open tabs, in the correct order, and in the proper splits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11518&quot;&gt;#10999&lt;/a&gt;) &lt;strong&gt;‘Build runtime-generated fonts from the editor’&lt;/strong&gt; by matgis
The editor now respects the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;font.runtime_generation&lt;/code&gt; setting in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.project&lt;/code&gt;. Previously only Bob would produce runtime-generated fonts when this setting was enabled for the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11508&quot;&gt;#11508&lt;/a&gt;) &lt;strong&gt;‘Improve Model rendering performance in Scene View’&lt;/strong&gt; by matgis
The editor responsiveness in scenes that feature Models has been drastically improved, especially when per-instance vertex attributes are involved.&lt;/p&gt;

&lt;p&gt;Partially adresses #9817.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11414&quot;&gt;#11379&lt;/a&gt;) &lt;strong&gt;‘Allow typing tilde (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~&lt;/code&gt;) on Swedish keyboard layout’&lt;/strong&gt; by vlaaad
Now it’s possible to enter the tilde character (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~&lt;/code&gt;) when using the Swedish keyboard layout by pressing &lt;kbd&gt;⌥ ^&lt;/kbd&gt; followed by space or another character.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11412&quot;&gt;#11377&lt;/a&gt;) &lt;strong&gt;‘Repaint up to last visible minimap row’&lt;/strong&gt; by JosephFerano
The minimap in the code editor wasn’t syntax highlighting all the lines visible in larger files. Now the minimap will have syntax colors all the way through.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11354&quot;&gt;#10891&lt;/a&gt;) &lt;strong&gt;‘Update Java version to 25’&lt;/strong&gt; by vlaaad
Defold Java version is updated to 25 (from 21). If you are only using the editor, you don’t need to do anything, but if you use bob.jar (e.g., in a CI pipeline), you’ll need to update Java from 21 to 25.&lt;/p&gt;

&lt;p&gt;The update gives us a small, but noticeable performance and memory use improvement:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;memory usage when opening a big project decreased by 5% (7.4Gb -&amp;gt; 7Gb)&lt;/li&gt;
  &lt;li&gt;time to open a big project decreased by 17% (4m34s -&amp;gt; 3m47s)&lt;/li&gt;
  &lt;li&gt;time to build a big project decreased by 10% (8m18s -&amp;gt; 7m20s)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11428&quot;&gt;#11400&lt;/a&gt;) &lt;strong&gt;‘Show errors from exceptions thrown during tile source texture layout’&lt;/strong&gt; by matgis&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11442&quot;&gt;#11166&lt;/a&gt;) &lt;strong&gt;‘Produce user-friendly build errors from invalid Tile Sources’&lt;/strong&gt; by matgis&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;All invalid properties in Tile Sources now generate clickable build errors.&lt;/li&gt;
  &lt;li&gt;Highlight Tile Source Animations with invalid properties in the Outline View.&lt;/li&gt;
  &lt;li&gt;Render errors in the Scene View will now report the source file when the error originates from a substructure node.&lt;/li&gt;
  &lt;li&gt;Fixed Exception in the editor when setting the Tile Source Tile Margin to a negative value.&lt;/li&gt;
  &lt;li&gt;Tile Source Tile Width and Height must be positive.&lt;/li&gt;
  &lt;li&gt;The error tooltip for the Sprite Default Animation field now refers to the correct Image property label.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11455&quot;&gt;#11452&lt;/a&gt;) &lt;strong&gt;‘Fix exceptions from removed nodes when getting overridden properties’&lt;/strong&gt; by matgis&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11457&quot;&gt;#11457&lt;/a&gt;) &lt;strong&gt;‘Localize resource type labels’&lt;/strong&gt; by vlaaad&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11465&quot;&gt;#11465&lt;/a&gt;) &lt;strong&gt;‘Localize form views’&lt;/strong&gt; by vlaaad&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11484&quot;&gt;#11462&lt;/a&gt;) &lt;strong&gt;‘Fix editor exception when double-clicking on a Build Error from a resource with an empty Outline ‘&lt;/strong&gt; by matgis&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Fixed exception in the editor if the user double-clicked a Build Error originating from a resource whose Outline view was empty after opened.&lt;/li&gt;
  &lt;li&gt;Fixed empty Outline view for Tile Sources whose tile count couldn’t be determined as a result of invalid property values. This was a regression introduced by #11442.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11487&quot;&gt;#11487&lt;/a&gt;) &lt;strong&gt;‘Localize editor scripts and bundle dialogs’&lt;/strong&gt; by vlaaad&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11489&quot;&gt;#11461&lt;/a&gt;) &lt;strong&gt;‘Fix outline re-ordering’&lt;/strong&gt; by vlaaad
We introduced a regression in 1.11.2 during the outline refactor that made re-ordering behavior erratic. Now the issue is fixed.&lt;/p&gt;

&lt;h2 id=&quot;other&quot;&gt;Other&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/extender/pull/804&quot;&gt;extender#802&lt;/a&gt;) &lt;strong&gt;‘Update JDK to 25 (Docker image only)’&lt;/strong&gt; by ekharkunov
The base Docker image has been updated to use JDK 25&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/extender/pull/803&quot;&gt;extender#801&lt;/a&gt;) &lt;strong&gt;‘Fix extension build errors when PodSpec has more than 2 level of subspecs’&lt;/strong&gt; by ekharkunov
This change fixes issues when building extensions with certain Cocopod dependencies, for instance Appmetrica.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/extender/pull/810&quot;&gt;extender#806&lt;/a&gt;) &lt;strong&gt;‘Rework health report collection’&lt;/strong&gt; by ekharkunov
Improved how the data for the &lt;a href=&quot;https://defold.com/status/&quot;&gt;build server status page&lt;/a&gt; is collected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/doc/pull/590&quot;&gt;doc#590&lt;/a&gt;) &lt;strong&gt;‘Updated Application Lifecycle for Defold 1.12.0+ and added new diagrams.’&lt;/strong&gt; by paweljarosz&lt;/p&gt;

</description>
			<pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/01/12/Defold-1-12-0/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/01/12/Defold-1-12-0/</guid>
		</item>
		
		<item>
			<title>Creator Spotlight - Koen Bollen</title>
			<description>&lt;p&gt;In the Creator Spotlight posts we invite Defold users to present themselves and share a bit of their background, their work and things that inspire them. It is an excellent opportunity for the community to come together, to recognise achievements and to share some of the great work done by Defold users.&lt;/p&gt;

&lt;p&gt;In this Defold Creator Spotlight we invited Koen Bollen to tell us a little bit about himself and his latest Defold project - Sprint City - a competitive platformer from the original creators of SpeedRunners now being developed with Defold!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/header.png&quot; alt=&quot;Sprint City Made with Defold&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;hello-koen-introduce-yourself-to-our-community&quot;&gt;Hello Koen! Introduce yourself to our community!&lt;/h5&gt;

&lt;p&gt;Hello! My name is Koen Bollen, or &lt;em&gt;Kaji&lt;/em&gt; in-game. I’m the co-founder and lead engineer of the Second Stage Studio.&lt;/p&gt;

&lt;h5 id=&quot;what-is-your-favorite-game-of-all-time&quot;&gt;What is your favorite game of all time?&lt;/h5&gt;

&lt;p&gt;My favorite games, with a healthy amount of recency-bias are &lt;em&gt;Half-Life: Alyx&lt;/em&gt;, &lt;em&gt;Minecraft&lt;/em&gt; and &lt;em&gt;Hollow Knight: Silksong&lt;/em&gt;.&lt;/p&gt;

&lt;h5 id=&quot;we-know-youve-had-an-interesting-journey-tell-us-a-bit-about-your-experience-prior-to-forming-second-stage-studio-what-is-your-background-in-game-development&quot;&gt;We know you’ve had an interesting journey. Tell us a bit about your experience prior to forming Second Stage Studio. What is your background in game development?&lt;/h5&gt;

&lt;p&gt;Where to start? Well, I started tinkering with computers at the age of 11, breaking my parents’ computer often enough to get my own. I started making games at around age 21 whilst teaching gamedev and computer science. Later I did a lot of backend engineering, most notably at &lt;a href=&quot;https://poki.com/&quot;&gt;Poki&lt;/a&gt; (a web games platform) and I’ve been making Sprint City for about two years now.&lt;/p&gt;

&lt;h5 id=&quot;what-is-sprint-city-about-what-can-players-expect-from-the-game-and-its-core-gameplay&quot;&gt;What is Sprint City about? What can players expect from the game and its core gameplay?&lt;/h5&gt;

&lt;p&gt;The core of our game is movement and momentum, “got to go fast!”. When you race against others, you try to drain their clocks by finishing a lap first and clock them out! Or you time trial alone and set the world record on every track.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city_climbing.gif&quot; alt=&quot;Sprint City Climbing&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;what-are-you-working-on-in-the-project&quot;&gt;What are you working on in the project?&lt;/h5&gt;

&lt;p&gt;I’m responsible for all things tech-heavy: The backend, hosting, net-code. But also shaders, the render pipeline and designing more complicated game systems.&lt;/p&gt;

&lt;h5 id=&quot;with-an-official-speedrunners-2-in-development-by-another-studio-what-led-your-team-to-create-sprint-city-independently-as-a-spiritual-successor&quot;&gt;With an official SpeedRunners 2 in development by another studio, what led your team to create Sprint City independently as a spiritual successor?&lt;/h5&gt;

&lt;p&gt;Casper van Est (the creator of Speedrunners) and I decided to do a week-long gamejam (just us, not a public event). The result of that was so much fun, and it inspired Casper to maybe make a new game or even a sequel. So we started a new studio and worked on our game, codenamed Playground.&lt;/p&gt;

&lt;p&gt;In parallel, tinyBuild, who owns Speedrunners, got a proposal for Speedrunners 2 and went ahead with this.
Because of this mismatch we decided to pivot into a new IP, Sprint City!&lt;/p&gt;

&lt;h5 id=&quot;speedrunners-became-a-cult-hit-in-the-competitive-platformer-genre-what-lessons-from-that-game-are-you-carrying-over-into-sprint-city-and-in-what-ways-are-you-pushing-the-concept-further-or-in-a-new-direction&quot;&gt;SpeedRunners became a cult hit in the competitive platformer genre. What lessons from that game are you carrying over into Sprint City, and in what ways are you pushing the concept further or in a new direction?&lt;/h5&gt;

&lt;p&gt;The main thing we want to carry over is the feel of movement; you need to be flying through the city. Just traversal on its own should be fun, other gameplay is just extra.&lt;/p&gt;

&lt;p&gt;Something we wanted to improve on is waiting in menus to start playing the game (while waiting for matchmaking for example), so in Sprint City you are always gaming! At the end of a race, you just stay in the game and can hang around with friends and show off your moves.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city_hooks.gif&quot; alt=&quot;Sprint City Grapling Hooks&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;were-curious-about-the-story-behind-the-studios-name-does-second-stage-studio-have-a-special-meaning&quot;&gt;We’re curious about the story behind the studio’s name. Does Second Stage Studio have a special meaning?&lt;/h5&gt;

&lt;p&gt;Ha. Not a lot of thought went into this. This is the second game studio for both Casper and me, and we like space and rockets. “Second Stage Studio? As in the second stage of a rocket? Sounds good!”&lt;/p&gt;

&lt;h5 id=&quot;sprint-city-is-planned-for-early-access-on-steam-in-2026-do-you-have-additional-launch-plans-or-platforms-in-mind&quot;&gt;Sprint City is planned for Early Access on Steam in 2026. Do you have additional launch plans or platforms in mind?&lt;/h5&gt;

&lt;p&gt;We are focusing on Steam during development and early access. This platform is the easiest to update on frequently.
When the game is fully released we plan to launch on the major consoles as well.&lt;/p&gt;

&lt;h5 id=&quot;the-game-will-let-players-invite-friends-via-a-web-browser-to-play-for-free--a-very-unique-feature-how-does-that-system-work-and-what-was-the-motivation-behind-it&quot;&gt;The game will let players invite friends via a web browser to play for free – a very unique feature! How does that system work, and what was the motivation behind it?&lt;/h5&gt;

&lt;p&gt;A couple of things came together for this idea. We wanted to support cross-play between platforms. I had a lot of experience with WebRTC (the browser network technology that Discord and Zoom use). And Defold has excellent support for the web.&lt;/p&gt;

&lt;p&gt;And we feel it’s super fair if you can have your friends play without having to convince them to buy and download/install it first.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city.gif&quot; alt=&quot;Sprint City Sliding&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;what-have-been-the-biggest-technical-challenges-in-developing-sprint-city-and-how-did-you-overcome-them-every-developer-sometimes-has-a-funny-horror-story-did-you-have-to-resort-to-any-ugly-hacks-or-quick-and-dirty-tricks-during-sprint-citys-development-to-make-something-work-in-a-pinch&quot;&gt;What have been the biggest technical challenges in developing Sprint City, and how did you overcome them? Every developer sometimes has a funny horror story. Did you have to resort to any “ugly” hacks or quick-and-dirty tricks during Sprint City’s development to make something work in a pinch?&lt;/h5&gt;

&lt;p&gt;Three categories:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;The most work: The networking code. We created a custom extension that allows for WebRTC P2P communication. And a backend that dynamically has players connect to each other when they are in proximity in the game world.&lt;/li&gt;
  &lt;li&gt;The hardest to get to work: The shader based parallaxing and Defold’s frustum culling. We do parallaxing using a vertex shader, since we have too big of a world to do it based on the game-object position. But far away objects got culled by the rendering frustum. We, and mostly our intern Leo, designed a way to make a perspective projection matrix that would include all objects in rendering, even though the game objects are technically far offscreen&lt;/li&gt;
  &lt;li&gt;The hackiest: Our in-game shadows use a very hacky rendering trick to insert them in a postshader phase. I already have a better system cooked up, but who has time to improve on an already working system?&lt;/li&gt;
&lt;/ol&gt;

&lt;h5 id=&quot;sprint-citys-art-style-and-animation-are-striking--the-game-is-set-in-a-seemingly-vibrant-solarpunk-city-with-cool-and-funky-character-animations-can-you-tell-us-about-your-art-pipeline-and-tools&quot;&gt;Sprint City’s art style and animation are striking – the game is set in a seemingly vibrant solarpunk city with cool and funky character animations. Can you tell us about your art pipeline and tools?&lt;/h5&gt;

&lt;p&gt;Our artists and animator just work in our Git repository, they use Defold to add images to atlases and use our in-game level editor to place decals and other visuals like shadows. Then they make a pull-request (PR) and one of the coders checks their work before we merge it. We also have a bunch of automated checks (like naming conventions on animation names and no capital letters in filename).&lt;/p&gt;

&lt;p&gt;Super useful feature: We use a github Action to automatically build a PR and host that somewhere, so we can play that version without having to pull it and build it locally.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city.png&quot; alt=&quot;Sprint City Solarpunk&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;being-based-in-the-netherlands-how-do-you-find-the-local-game-development-scene&quot;&gt;Being based in the Netherlands, how do you find the local game development scene?&lt;/h5&gt;

&lt;p&gt;The indie scene here is very nice and active, there are plenty of meetups and other get-togethers. We sometimes have people over to work from our office for a day. Sadly, there are not many AAA studios in the Netherlands.&lt;/p&gt;

&lt;h5 id=&quot;when-and-how-did-you-first-discover-defold-and-why-did-you-choose-defold-as-the-engine-for-sprint-city-what-made-defold-stand-out-for-this-project&quot;&gt;When and how did you first discover Defold, and why did you choose Defold as the engine for Sprint City? What made Defold stand out for this project?&lt;/h5&gt;

&lt;p&gt;I learned about Defold in my time at Poki. And I have a soft spot for web games. Defold is very light weight, 2D friendly and very flexible in extending. Making an extension was very important for our network stack, using (crossplatform) WebRTC was not possible in other engines (at least not super easy). Then having a build-server was a big plus for the rest of the team.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city_gui.png&quot; alt=&quot;Sprint City Defold GUI&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;what-do-you-like-the-most-about-working-with-defold-are-there-particular-features-workflows-or-aspects-of-defold-that-you-and-your-team-appreciate-during-development&quot;&gt;What do you like the most about working with Defold? Are there particular features, workflows or aspects of Defold that you and your team appreciate during development?&lt;/h5&gt;

&lt;p&gt;Mostly ease of use, and fast build speed. You just need to install Defold and you can build our project, even though we use a lot of custom extensions and C++ code.
We don’t use the Defold editor a lot - we code in VSCode and only use the Defold editor for atlases, particles and GUIs, and we use it to build the game during development of course.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city_defold_editor.png&quot; alt=&quot;Sprint City Defold Editor&quot; /&gt;&lt;/p&gt;

&lt;h5 id=&quot;what-would-be-your-recommendations-for-defold-developers&quot;&gt;What would be your recommendations for Defold developers?&lt;/h5&gt;

&lt;ul&gt;
  &lt;li&gt;Add &lt;a href=&quot;https://luals.github.io/wiki/annotations/&quot;&gt;Lua type annotations&lt;/a&gt; to everything, from the start! Lua is a great language for hacking, not so great for larger engineering projects. Adding annotations later on in the project is just not going to happen. Having types (and a system that checks them) will prevent a lot of bugs from being introduced, and helps auto-complete while developing.&lt;/li&gt;
  &lt;li&gt;I also recommend setting up a repository wide formatter like &lt;a href=&quot;https://github.com/JohnnyMorganz/StyLua&quot;&gt;StyLua&lt;/a&gt; to never have to think about it again (and enforce it with a Github Action).&lt;/li&gt;
  &lt;li&gt;Have dynamic loading from the start, or very early on. We added dynamic loading (having the game in a Collection Proxy) later on in the process and it was very hard to get it to work and have the communication working in our game. Later we also added large open world loading (where regions load/unload as you run around) and that would have been 100x easier, if created from the start.&lt;/li&gt;
  &lt;li&gt;Your game will be played in different aspect-ratios, make sure you support that from the beginning.&lt;/li&gt;
  &lt;li&gt;Protip: Use &lt;a href=&quot;https://github.com/subsoap/defos&quot;&gt;defos&lt;/a&gt; to randomize the window size every time you run your game in debug while developing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;finally-how-can-the-community-follow-your-progress-and-get-their-hands-on-sprint-city&quot;&gt;Finally, how can the community follow your progress and get their hands on Sprint City?&lt;/h5&gt;

&lt;p&gt;Wishlist the game on Steam: &lt;a href=&quot;https://store.steampowered.com/app/4191250/Sprint_City&quot;&gt;https://store.steampowered.com/app/4191250/Sprint_City&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Join us on Discord:
&lt;a href=&quot;https://discord.com/invite/sprintcity&quot;&gt;https://discord.com/invite/sprintcity&lt;/a&gt;&lt;/p&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-and-we-wish-you-a-tremendous-success-with-sprint-city&quot;&gt;Thank you very much for the interview, and we wish you a tremendous success with Sprint City!&lt;/h5&gt;

&lt;h6 id=&quot;official-sprint-city-announcement-trailer&quot;&gt;Official Sprint City announcement trailer:&lt;/h6&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=2M4SkQLFRGM&quot;&gt;https://www.youtube.com/watch?v=2M4SkQLFRGM&lt;/a&gt;&lt;/p&gt;
</description>
			<pubDate>Sat, 03 Jan 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/01/03/Creator-Spotlight-Koen-Bollen/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/01/03/Creator-Spotlight-Koen-Bollen/</guid>
		</item>
		
	</channel>
</rss>
