<?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>Power Fantasies - 8BitSkull on Skull Horde and Sustainable Indie Development</title>
			<description>&lt;p&gt;We invited Alex Asvegren from &lt;a href=&quot;https://www.8bitskull.com/&quot;&gt;8BitSkull&lt;/a&gt; back to the Defold blog. Since our first interview after the release of &lt;a href=&quot;https://store.steampowered.com/app/895480/Fates_of_Ort/&quot;&gt;Fates of Ort&lt;/a&gt;, 8BitSkull has shipped &lt;a href=&quot;https://store.steampowered.com/app/2005210/Void_Scrappers/&quot;&gt;Void Scrappers&lt;/a&gt;, &lt;a href=&quot;https://store.steampowered.com/app/2398170/BORE_BLASTERS/&quot;&gt;Bore Blasters&lt;/a&gt;, and now &lt;a href=&quot;https://store.steampowered.com/app/3199360/Skull_Horde/&quot;&gt;Skull Horde&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This time we talked about the studio strategy behind those games, the launch of Skull Horde, Steam marketing, localization, console plans, Defold performance, and what it means for a small indie studio to build a sustainable rhythm around compact power fantasies.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/8bitskull_games.webp&quot; alt=&quot;8BitSkull games made with Defold&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;8BitSkull has shipped four commercial Defold games: Skull Horde, Bore Blasters, Void Scrappers, and Fates of Ort&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;h5 id=&quot;alex-welcome-back-to-our-blog-we-first-spoke-when-fates-of-ort-had-just-released-and-you-were-just-starting-with-defold-later-we-talked-about-releasing-void-scrappers-on-nintendo-switch-now-you-are-here-with-four-commercial-defold-games-shipped-as-8bitskull-an-established-and-successful-indie-game-studio-how-would-you-introduce-8bitskull-today-especially-to-new-readers&quot;&gt;Alex, welcome back to our blog! We first spoke when Fates of Ort had just released and you were just starting with Defold. Later, we talked about releasing Void Scrappers on Nintendo Switch. Now you are here with four commercial Defold games shipped as 8BitSkull, an established and successful indie game studio. How would you introduce 8BitSkull today, especially to new readers?&lt;/h5&gt;

&lt;p&gt;Thanks for having me yet again! I hope I have something sufficiently interesting to say that warrants a third interview.&lt;/p&gt;

&lt;p&gt;8BitSkull is a small indie studio based in Scotland. We focus on games that deliver compact and exciting power fantasies, often with elements of action and destruction. We primarily target the PC market via Steam, but also sometimes consoles like Nintendo Switch, thanks to Defold for making that easy!&lt;/p&gt;

&lt;h5 id=&quot;you-have-now-released-four-games-made-with-defold-fates-of-ort-void-scrappers-bore-blasters-and-now-skull-horde-all-are-on-pc-and-some-are-already-on-nintendo-switch-your-games-feel-very-different-on-the-surface-fantasy-rpg-space-survivor-mining-roguelite-and-necromancer-auto-battler-but-they-share-a-strong-sense-of-escalation-and-power-is-satisfying-power-fantasy-now-a-deliberate-8bitskull-design-pillar&quot;&gt;You have now released four games made with Defold: Fates of Ort, Void Scrappers, Bore Blasters, and now Skull Horde. All are on PC, and some are already on Nintendo Switch. Your games feel very different on the surface: fantasy RPG, space survivor, mining roguelite, and necromancer auto-battler. But they share a strong sense of escalation and power. Is “satisfying power fantasy” now a deliberate 8BitSkull design pillar?&lt;/h5&gt;

&lt;p&gt;Yes. Our first commercial project, Fates of Ort, was a naive labour of love. We did not particularly concern ourselves with market research or anything like that, and I think the reason the game did even moderately well was through the sheer amount of earnestness poured into it. It was not a sustainable approach though. With a development time in excess of 2.5 years, we would not be able to continue as a studio with games like this.&lt;/p&gt;

&lt;p&gt;We tried to scope out a new direction, abandoning a few prototypes on the way. Finally, Void Scrappers ended up being our next released title. In many ways it was the polar opposite of Fates of Ort: tight scope, pure gameplay, and a focus on replayability. Crucially, development time was less than a year. I realised we had stumbled upon the centre of this diagram:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/studio-strategy.webp&quot; alt=&quot;8BitSkull studio strategy diagram&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;The studio strategy diagram behind 8BitSkull’s current direction&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In order to formalise this learning and make sure it would not be forgotten, I wrote a document I refer to as our studio strategy. This details our approach as a studio, and in terms of gameplay elements it includes these four pillars:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Power&lt;/strong&gt; - enjoyment through gaining strength in the game world&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Excitement&lt;/strong&gt; - fast pace, intensity, and thrills&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Destruction&lt;/strong&gt; - joy through causing chaos, mayhem, and destruction&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Completion&lt;/strong&gt; - upgrades, unlocks, and achievements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think the existence of this strategy becomes readily apparent when evaluating Bore Blasters and Skull Horde.&lt;/p&gt;

&lt;h5 id=&quot;what-has-changed-most-in-how-you-think-about-game-scope-production-and-sustainability-as-an-indie-developer&quot;&gt;What has changed most in how you think about game scope, production, and sustainability as an indie developer?&lt;/h5&gt;

&lt;p&gt;The aforementioned studio strategy document covers this area as well. Every game idea we come up with is assessed against this document. A game does not have to meet every criterion. For example, we would not reject a game idea just because it does not have enough “destruction”.&lt;/p&gt;

&lt;p&gt;Beyond gameplay, we also assess factors like scope and production requirements, which directly inform sustainability. We consider how many systems we can carry over from project to project, whether a game idea leverages our experience, and so on. We design with gamepad input in mind so that our games work flawlessly on the Steam Deck and are trivial to bring to consoles like Nintendo Switch. We develop with localisation in mind from the start. We know how important demos are as a marketing tool, so we make sure to pick game ideas that demo well.&lt;/p&gt;

&lt;p&gt;The final factor is scope. How much development time is required to launch? Every unit of development time is a cost that needs to be recovered, and thus increased scope needs to come with an increase in expected returns. Our soft target is about a year of development per game, though this often slips. We think we can strike a balance between a scope sufficiently large to make a meaningful game, but not so large that an unexpected failure would damage the studio.&lt;/p&gt;

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

&lt;h5 id=&quot;skull-horde-is-described-as-an-auto-battler-dungeon-crawler-where-you-play-as-a-flying-skull-necromancer-what-was-the-original-spark-for-that-idea&quot;&gt;Skull Horde is described as an auto-battler dungeon crawler where you play as a flying skull necromancer. What was the original spark for that idea?&lt;/h5&gt;

&lt;p&gt;I have always been drawn to minion-managing roles in ARPGs. I love the feeling of summoning a horde of minions and having them do the fighting for me. At its core, we are trying to recreate the feeling of playing a Diablo 2 summoner necromancer, just modernised and with our own twist.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/dungeon1.webp&quot; alt=&quot;Skull Horde made with Defold&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Skull Horde is a real-time auto-battler dungeon crawler where you play as a flying skull necromancer&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;how-did-you-decide-which-systems-should-be-automatic-and-which-should-stay-under-direct-player-control&quot;&gt;How did you decide which systems should be automatic and which should stay under direct player control?&lt;/h5&gt;

&lt;p&gt;Simple and limited input is called out as something desirable in our studio strategy. We do not like tutorials, as both designers and players, so we like to aim for designs that minimise the amount of tutorialisation needed. Automated systems help achieve this goal.&lt;/p&gt;

&lt;h5 id=&quot;in-void-scrappers-you-talked-about-letting-players-become-absurdly-powerful-rather-than-nerfing-everything-into-balance-did-that-same-philosophy-carry-into-skull-horde&quot;&gt;In Void Scrappers, you talked about letting players become absurdly powerful rather than nerfing everything into balance. Did that same philosophy carry into Skull Horde?&lt;/h5&gt;

&lt;p&gt;To an extent! We keep it in mind, but sometimes it is not possible. I was quite concerned with players finding a favourite build and always heading straight for it, neglecting the joy of discovering other builds. Skull Horde is quite generous with rerolling and banishing, which means this is very achievable for players. As a result, we did need to nerf away some properly unbeatable builds, such as hordes of rats causing chill on hit and an infinite invulnerability engine.&lt;/p&gt;

&lt;p&gt;However, when designing, I try not to be too heavy handed. One mechanic I am quite pleased with is the Curse system. At higher difficulties, players are forced to pick Curses that add additional challenges. Multiple Curses beyond the minimum can be selected, which gives access to Rites, powerful boons.&lt;/p&gt;

&lt;p&gt;The game detects what builds a player uses a lot and offers up related Curses. Using Burn a lot? One of the Curses on offer will steer you away from it while buffing something else. This gives the player the opportunity to intentionally avoid a certain build trope in exchange for a reward. There are always enough options to choose from, so the player is not forced to abandon their favourite playstyle, but the design nudges them to give other builds a try.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“The player is not forced to abandon their favourite playstyle, but the design nudges them to give other builds a try.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/summon3.webp&quot; alt=&quot;Skull Horde builds&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Various builds in Skull Horde&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-was-the-hardest-part-of-making-summoned-minions-feel-readable-useful-and-satisfying-without-turning-the-screen-into-visual-noise-especially-because-there-are-hordes-of-enemies-approaching-as-well&quot;&gt;What was the hardest part of making summoned minions feel readable, useful, and satisfying without turning the screen into visual noise, especially because there are hordes of enemies approaching as well?&lt;/h5&gt;

&lt;p&gt;We have some experience with this, partly from Bore Blasters but particularly from Void Scrappers. It is difficult to fully solve this because the visual carnage is part of the fun, but here are a few things we implemented in Skull Horde:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Single-pixel-thickness outlines for units, so they are distinct from each other&lt;/li&gt;
  &lt;li&gt;Squad units have colour accents matched to their type, such as Rogue or Beast, that make them distinct from other classes&lt;/li&gt;
  &lt;li&gt;An option to highlight the player by rendering an animated circle around the character&lt;/li&gt;
  &lt;li&gt;An option to turn off things like health bars or stack icons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/skull-horde-gameplay.webp&quot; alt=&quot;Skull Horde minions and enemies&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;The visual carnage is part of the fun, but readability still matters&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;steam&quot;&gt;Steam&lt;/h3&gt;

&lt;h5 id=&quot;skull-horde-launched-with-strong-reception-and-a-very-warm-welcome-what-did-players-understand-immediately-and-what-did-you-have-to-patch-explain-or-improve-after-launch&quot;&gt;Skull Horde launched with strong reception and a very warm welcome. What did players understand immediately, and what did you have to patch, explain, or improve after launch?&lt;/h5&gt;

&lt;p&gt;The single biggest post-launch issue we experienced was an issue where some Windows users with unicode characters in their username encountered a crash when launching the game, particularly impacting East Asian users. As confused and disappointed players began leaving negative reviews, our score started dropping and threatened to go below 80% positive. At 70%, the score would turn into a “Mixed” rating, which would have been disastrous for the launch.&lt;/p&gt;

&lt;p&gt;In a panic, I reached out to the Defold team, who kindly generated a hotfix on a Saturday morning to resolve the issue for me! I am extremely thankful for this as it had a huge impact on the success of our launch. Our score has now stabilised at 82% positive.&lt;/p&gt;

&lt;p&gt;There were a few additional crashes happening as well. The Defold team helped me resolve the ones caused by my implementation, and fixed the ones that were a problem on the Defold side.&lt;/p&gt;

&lt;p&gt;Beyond that, I have been hard at work over the past few weeks, doing daily updates with bug fixes, performance improvements, and quality of life features. As the pace of these has slowed down, I have started working on the first big post-launch content update.&lt;/p&gt;

&lt;h5 id=&quot;your-games-tend-to-sit-in-crowded-genres-but-you-always-manage-to-find-a-sharp-appeal-space-horde-survival-machine-gun-mining-skull-necromancer-auto-battling-how-do-you-come-up-with-those-ideas-how-do-you-test-whether-an-idea-is-marketable-enough-before-committing-to-production&quot;&gt;Your games tend to sit in crowded genres, but you always manage to find a sharp appeal: space horde survival, machine-gun mining, skull necromancer auto-battling. How do you come up with those ideas? How do you test whether an idea is marketable enough before committing to production?&lt;/h5&gt;

&lt;p&gt;Actually, I am moving away from hooks a little bit! I think all the hooks for my games have been fairly weak. I am not even sure what the hook was for Void Scrappers - “Vampire Survivors in space”, maybe? Now I try to frame the appeal of a game in terms of the “fantasy” the player gets to experience.&lt;/p&gt;

&lt;p&gt;Blasting swarms of enemies in space in an unstoppable racing ship, mining thousands of gems with a ridiculous gatling gun, amassing a huge horde of skeletal warriors… These are not really hooks, but they are super appealing fantasies.&lt;/p&gt;

&lt;p&gt;If you are interested in this concept, I can strongly recommend this video by Jonas Tyroller: &lt;a href=&quot;https://www.youtube.com/watch?v=uiBDyZ-Pf2M&quot;&gt;What Sells on Steam: You Don’t Need a Hook&lt;/a&gt;.&lt;/p&gt;

&lt;h5 id=&quot;how-much-do-you-follow-genre-trends-such-as-survivor-likes-roguelites-and-auto-battlers-and-how-much-do-you-try-to-deliberately-move-close-to-or-away-from-them&quot;&gt;How much do you follow genre trends, such as survivor-likes, roguelites, and auto-battlers, and how much do you try to deliberately move close to or away from them?&lt;/h5&gt;

&lt;p&gt;I do not tend to particularly chase or avoid genre trends. I do get inspiration from contemporary games, but I do not intentionally set out to quickly chase trends. I am fairly comfortable that the audience I have identified for my games will continue having the same preferences, so I do not need to worry too much about trends.&lt;/p&gt;

&lt;h5 id=&quot;did-the-demo-wishlists-festivals-streamers-or-early-community-feedback-play-a-major-role-in-shaping-the-final-release-what-would-you-do-the-same-again&quot;&gt;Did the demo, wishlists, festivals, streamers, or early community feedback play a major role in shaping the final release? What would you do the same again?&lt;/h5&gt;

&lt;p&gt;Here is a chart of the wishlists gathered before release:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/wishlists.webp&quot; alt=&quot;Skull Horde wishlists before release&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Skull Horde wishlists before release&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Notably, we did not rely on festivals, other than Next Fest, or social media at all. The marketing strategy should be tailored to the type of game you are developing. A game trying to go viral should probably focus more on social media, but our gameplay-first approach is more suited for a demo and content creator strategy.&lt;/p&gt;

&lt;p&gt;We had the demo out for about a year before release, which was tremendously valuable in terms of gameplay feedback, but also for bug fixing and spotting technical issues.&lt;/p&gt;

&lt;h5 id=&quot;which-markets-are-most-important-to-you-and-which-languages-would-you-recommend-other-developers-consider-for-localization&quot;&gt;Which markets are most important to you, and which languages would you recommend other developers consider for localization?&lt;/h5&gt;

&lt;p&gt;Skull Horde unit sales are distributed as follows:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;United States - 28%&lt;/li&gt;
  &lt;li&gt;China* - 16%&lt;/li&gt;
  &lt;li&gt;Japan* - 9%&lt;/li&gt;
  &lt;li&gt;Germany* - 8%&lt;/li&gt;
  &lt;li&gt;Korea* - 5%&lt;/li&gt;
  &lt;li&gt;Canada - 3%&lt;/li&gt;
  &lt;li&gt;United Kingdom - 3%&lt;/li&gt;
  &lt;li&gt;France* - 3%&lt;/li&gt;
  &lt;li&gt;Australia - 2%&lt;/li&gt;
  &lt;li&gt;Poland* - 2%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;* = localised&lt;/p&gt;

&lt;p&gt;Due to regional pricing, the US will have contributed way more than 28% of revenue. Nevertheless, this distribution shows the importance of localising into languages beyond English.&lt;/p&gt;

&lt;p&gt;We tend to localise into the following languages:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Simplified Chinese&lt;/li&gt;
  &lt;li&gt;Japanese&lt;/li&gt;
  &lt;li&gt;Korean&lt;/li&gt;
  &lt;li&gt;French&lt;/li&gt;
  &lt;li&gt;German&lt;/li&gt;
  &lt;li&gt;Spanish&lt;/li&gt;
  &lt;li&gt;Brazilian Portuguese&lt;/li&gt;
  &lt;li&gt;Polish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We intentionally do not bother with Traditional Chinese, Spanish (LATAM), and Portuguese. I think there is a high degree of mutual intelligibility for these languages, and if not, we have not ever received any complaints!&lt;/p&gt;

&lt;p&gt;There are more languages we could add, such as Italian or Turkish, but you have to draw the line somewhere. We use human translators, so each language is a cost and an administrative burden.&lt;/p&gt;

&lt;p&gt;When choosing what languages to localise into, you should consider:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;How big is the market?&lt;/li&gt;
  &lt;li&gt;How well does that market speak English?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, it might not be worth it to translate into Dutch or Swedish, as the markets are not huge and English proficiency in the population is very high.&lt;/p&gt;

&lt;h5 id=&quot;what-do-you-think-indie-developers-misunderstand-most-about-steam-launches&quot;&gt;What do you think indie developers misunderstand most about Steam launches?&lt;/h5&gt;

&lt;p&gt;Good question! Here are a few things people should know:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Do not shadowdrop your game! Your Steam page should be up throughout your development cycle, gathering wishlists. Your launch is really important, and it is very hard to recover from a bad one.&lt;/li&gt;
  &lt;li&gt;Make sure you release a demo long before launch, and participate in a Steam Next Fest. Pick a Next Fest late in your development cycle so that your demo is in a polished state.&lt;/li&gt;
  &lt;li&gt;You can be successful without posting on social media. I mention this because I have always struggled to get traction on social media, and it has felt like a waste of time posting daily into the void. So I give you permission to ignore it, if it does not suit you or your game. Instead, treat the demo itself as a very powerful marketing tool.&lt;/li&gt;
  &lt;li&gt;Make sure to get 10 reviews from paying customers, meaning free keys do not count, quickly after launch. Same day if possible! This unlocks base visibility on Steam. Not explicitly, but it seems having a review score is required for certain visibility mechanisms. You are not allowed to reward people for leaving reviews, or ask for them in game, but you are allowed to yell at people in your community!&lt;/li&gt;
  &lt;li&gt;If it is feasible, try to aim for more than 5,000 wishlists to have a shot at appearing in the Popular Upcoming widget. You can verify whether you have enough by going to your game on &lt;a href=&quot;https://steamdb.info/&quot;&gt;steamdb.info&lt;/a&gt; and checking the “Store data” section under the Charts tab. If you have a “top wishlists” ranking, you will appear in Popular Upcoming. Note that there is currently a change in the Steam beta client that might remove Popular Upcoming altogether, so it is possible this information is stale when you read it!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am not sure I have covered everything, so if anyone is interested in discussing this, the #business channel in the community Discord is a place you will find me.&lt;/p&gt;

&lt;h3 id=&quot;8bitskull-studio&quot;&gt;8BitSkull Studio&lt;/h3&gt;

&lt;h5 id=&quot;how-early-do-you-bring-artists-and-musicians-into-a-project-do-you-prototype-alone-first-or-do-visuals-and-audio-shape-the-core-loop-from-the-beginning-christoph-grays-music-has-been-part-of-earlier-8bitskull-titles-how-important-is-continuity-with-collaborators-when-building-a-recognizable-studio-identity&quot;&gt;How early do you bring artists and musicians into a project? Do you prototype alone first, or do visuals and audio shape the core loop from the beginning? Christoph Gray’s music has been part of earlier 8BitSkull titles. How important is continuity with collaborators when building a recognizable studio identity?&lt;/h5&gt;

&lt;p&gt;Collaborator continuity is super important. I have worked with the same people for years, and losing any one of them would be a big setback. They are reliable, quality people with detailed knowledge of the workflow.&lt;/p&gt;

&lt;p&gt;I tend to take ownership of project selection myself, because I am the one running the business side and will be investing the most in terms of man-hours and money. Once a project is selected, I involve the rest of the team early. We develop things like visual identity cooperatively.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/concept.webp&quot; alt=&quot;Skull Horde concept art&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Skull Horde concept art sketches&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;from-the-outside-8bitskull-looks-like-a-studio-that-has-found-a-repeatable-rhythm-is-that-accurate-or-is-every-project-still-a-leap-into-uncertainty&quot;&gt;From the outside, 8BitSkull looks like a studio that has found a repeatable rhythm. Is that accurate, or is every project still a leap into uncertainty?&lt;/h5&gt;

&lt;p&gt;Since the development of the studio strategy, we have definitely managed to hit our stride with multiple consecutive successful projects. I think in large part we owe that to the intentionality we apply to project selection, ensuring the games we develop suit our strengths and expertise. This is a creative industry though, so every project is still a risk. This is why we try to keep scope tight, so that any failures do not have an excessive impact on the survival chances of the studio as a whole.&lt;/p&gt;

&lt;h5 id=&quot;you-previously-spoke-candidly-about-cancelled-or-paused-projects-what-did-those-projects-teach-you-that-directly-improved-void-scrappers-bore-blasters-or-skull-horde-and-what-does-success-mean-for-8bitskull-now&quot;&gt;You previously spoke candidly about cancelled or paused projects. What did those projects teach you that directly improved Void Scrappers, Bore Blasters, or Skull Horde? And what does success mean for 8BitSkull now?&lt;/h5&gt;

&lt;p&gt;I think they taught me a few things that we have already touched on. Primarily, this was about tight scope, with reasonably defined project boundaries in place before development starts. The abandoned projects were more aligned with Fates of Ort, in that we had a vibe we were going for and then just started developing without a plan in mind.&lt;/p&gt;

&lt;p&gt;It was in the middle of development of one of the abandoned projects that I spent two weeks laying the foundation for Void Scrappers. I was frustrated with spinning my wheels on a poorly defined project with no end in sight. In contrast, the progress on Void Scrappers in two short weeks was exhilarating, and it was easy to visualise the finished project. I think the ability to imagine what the final product will be is a crucial aspect of actually delivering a completed game. Without this, you will be endlessly polishing and adding new features.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/void-scrappers.webp&quot; alt=&quot;Void Scrappers&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Void Scrappers gameplay&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;in-the-earlier-interview-you-described-the-fates-of-ort-switch-release-as-fulfilling-a-childhood-dream-i-bet-you-still-have-it-deeply-in-your-heart-but-how-do-you-feel-about-your-other-games-now&quot;&gt;In the earlier interview, you described the Fates of Ort Switch release as fulfilling a childhood dream. I bet you still have it deeply in your heart, but how do you feel about your other games now?&lt;/h5&gt;

&lt;p&gt;There is definitely a higher degree of cynicism in the games I have released after Fates of Ort, but I think I have struck a healthy balance. Fates of Ort is more a work of art than a commercial product, but it was a naive approach to game development as a business. I get way more fulfillment and artistic expression from developing Skull Horde than I would if I had to go back to working as an accountant.&lt;/p&gt;

&lt;p&gt;That said, I will still be making games when I retire, so I can lean more heavily into the artistic side again then!&lt;/p&gt;

&lt;h3 id=&quot;practices&quot;&gt;Practices&lt;/h3&gt;

&lt;h5 id=&quot;your-games-often-involve-many-enemies-projectiles-loot-objects-terrain-chunks-or-minions-is-defold-helpful-for-these-kinds-of-games-what-are-your-current-best-practices-for-high-object-count-games-in-defold&quot;&gt;Your games often involve many enemies, projectiles, loot objects, terrain chunks, or minions. Is Defold helpful for these kinds of games? What are your current best practices for high-object-count games in Defold?&lt;/h5&gt;

&lt;p&gt;Defold is very performant in this sense, so it benefits me tremendously. I also lean heavily on the work of more skilled developers for performance-heavy tasks, for example using Selim Anaç’s A* and AABB extensions. Things like pathfinding and collision detection are really expensive, particularly in a game like this, so my biggest recommendation is outsourcing these to extensions that perform these tasks very well.&lt;/p&gt;

&lt;h5 id=&quot;has-your-technical-architecture-evolved-since-then-what-defold-patterns-have-survived-across-all-your-games-and-what-did-you-completely-rewrite&quot;&gt;Has your technical architecture evolved since then? What Defold patterns have survived across all your games, and what did you completely rewrite?&lt;/h5&gt;

&lt;p&gt;There are a lot of modules and components I have developed over the years that I carry with me from project to project. Things like game saving, input, menus and settings, collection proxy management, and so on. With each project, I naturally end up tweaking these to make them progressively better and more robust. I rarely throw anything out entirely, and end up making huge development time savings by reusing old code.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/explosion.webp&quot; alt=&quot;Bore Blasters&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Bore Blasters gameplay&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;defold&quot;&gt;Defold&lt;/h3&gt;

&lt;h5 id=&quot;you-have-been-using-defold-for-almost-10-years-and-you-have-created-a-sustainable-indie-studio-that-is-now-a-corporate-partner-of-the-defold-foundation-which-we-are-very-proud-of-what-still-makes-defold-the-right-engine-for-8bitskull-why-was-now-the-right-moment-to-formalize-that-relationship&quot;&gt;You have been using Defold for almost 10 years, and you have created a sustainable indie studio that is now a Corporate Partner of the Defold Foundation, which we are very proud of! What still makes Defold the right engine for 8BitSkull? Why was now the right moment to formalize that relationship?&lt;/h5&gt;

&lt;p&gt;Why fix what is not broken! Defold is really performant, I love Lua, and have tons of experience using the engine. I want to keep using it for years to come and so I am happy to finally be able to contribute more. I have been sponsoring Defold at the community level for years, and the reason we are going up to the corporate level now is simply because of the success of Skull Horde.&lt;/p&gt;

&lt;h5 id=&quot;the-announcement-mentions-performance-improvements-and-desktop-specific-functionality-without-revealing-anything-confidential-what-kinds-of-improvements-matter-most-to-a-studio-like-yours&quot;&gt;The announcement mentions performance improvements and desktop-specific functionality. Without revealing anything confidential, what kinds of improvements matter most to a studio like yours?&lt;/h5&gt;

&lt;p&gt;Our top priority is a big overhaul to the gamepad mapping functionality to leverage the SDL game controller database. I believe this is almost ready to ship!&lt;/p&gt;

&lt;p&gt;We also want to see improved sound functionality in the engine so there is not a need to use sound engines like FMOD. I would also love to see some more features in the particlefx component, as we use it a lot for our juicy effects.&lt;/p&gt;

&lt;h5 id=&quot;what-does-a-good-partnership-look-like-from-the-developer-side-is-it-about-feature-requests-technical-dialogue-funding-specific-work-roadmap-influence-or-simply-supporting-a-tool-you-depend-on-what-would-you-like-other-commercial-defold-developers-to-understand-about-supporting-the-engine-financially-or-technically&quot;&gt;What does a good partnership look like from the developer side? Is it about feature requests, technical dialogue, funding specific work, roadmap influence, or simply supporting a tool you depend on? What would you like other commercial Defold developers to understand about supporting the engine financially or technically?&lt;/h5&gt;

&lt;p&gt;A big part of the benefit to me is simply contributing to the continued existence of the engine. Even without any other perks, this is a good enough reason to contribute financially. If I had to switch from the Defold engine to another one, this would represent a significant financial hit to my business, and I really want to avoid that happening.&lt;/p&gt;

&lt;p&gt;I do not have the technical ability to support the engine, so financial support suits me better. Those that do have technical skills should get involved! The Defold team is quite small, and I have it on good authority that pull requests are very welcome and help lighten the workload.&lt;/p&gt;

&lt;h3 id=&quot;consoles&quot;&gt;Consoles&lt;/h3&gt;

&lt;h5 id=&quot;fates-of-ort-and-void-scrappers-both-reached-nintendo-switch-but-bore-blasters-was-pc-only-do-you-plan-to-release-skull-horde-on-consoles-maybe-on-other-consoles-as-well-how-do-you-decide-now-whether-a-game-is-worth-porting-to-switch-or-other-consoles-is-it-sales-potential-controls-performance-genre-fit-or-something-else&quot;&gt;Fates of Ort and Void Scrappers both reached Nintendo Switch, but Bore Blasters was PC only. Do you plan to release Skull Horde on consoles? Maybe on other consoles as well? How do you decide now whether a game is worth porting to Switch or other consoles? Is it sales potential, controls, performance, genre fit, or something else?&lt;/h5&gt;

&lt;p&gt;We are not experts on the console market, and so our basic approach is to just release on the Switch and hope for the best. Our plan is to move on to porting Skull Horde to Switch after post-launch fixes and updates are more or less stable. We may also explore other consoles, but that is very uncertain at the moment.&lt;/p&gt;

&lt;h5 id=&quot;are-there-particular-design-choices-you-now-make-earlier-because-you-know-a-game-may-later-go-to-console&quot;&gt;Are there particular design choices you now make earlier because you know a game may later go to console?&lt;/h5&gt;

&lt;p&gt;Absolutely. This is a core part of the studio strategy document. When you develop a game with these things in mind from the beginning, things like porting to consoles become much easier.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/fungal2_wide.webp&quot; alt=&quot;Fates of Ort&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Fates of Ort gameplay&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-advice-would-you-give-to-defold-developers-who-want-to-move-from-jams-and-prototypes-to-their-first-serious-releases&quot;&gt;What advice would you give to Defold developers who want to move from jams and prototypes to their first serious releases?&lt;/h5&gt;

&lt;p&gt;Start small. You do not have to make a tiny project, but you should be able to create a development roadmap with a sensible timeframe and clearly defined end goal. If you are targeting Steam, release this project even if you know it will not be successful. There is a tremendous amount to learn about the Steam release process, so it is worth doing a trial run first.&lt;/p&gt;

&lt;h5 id=&quot;what-is-next-for-8bitskull-updates-ports-expansions-experiments-or-moving-on-to-the-next-game&quot;&gt;What is next for 8BitSkull: updates, ports, expansions, experiments, or moving on to the next game?&lt;/h5&gt;

&lt;p&gt;For the past few weeks, we have been swamped with fixes, and have now finally moved on to post-launch content updates. We will do this for a while until interest cools down, then we will port to Switch and start considering the next game project.&lt;/p&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-alex-finally-how-can-the-community-follow-you-and-the-studio&quot;&gt;Thank you very much for the interview, Alex! Finally, how can the community follow you and the studio?&lt;/h5&gt;

&lt;p&gt;You are welcome! You can follow our Steam developer page and subscribe to our newsletter. You can also find me in the Defold forums and community Discord.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.8bitskull.com/&quot;&gt;8BitSkull website&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.8bitskull.com/newsletter/&quot;&gt;8BitSkull newsletter&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/developer/8bitskull/&quot;&gt;8BitSkull on Steam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://forum.defold.com/&quot;&gt;Defold forum&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://defold.com/discord/&quot;&gt;Defold Discord&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
			<pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/05/15/8BitSkull-Skull-Horde-Interview/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/05/15/8BitSkull-Skull-Horde-Interview/</guid>
		</item>
		
		<item>
			<title>Defold Newsletter May 2026</title>
			<description>&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/may_2026_newsletter.webp&quot; alt=&quot;Defold Newsletter May 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/aomjxlke4lpfe.html?t=1777984920785&quot;&gt;Read the formatted newsletter here&lt;/a&gt; or read its content below:&lt;/p&gt;

&lt;h2 id=&quot;8bitskull-now-supports-defold&quot;&gt;8BitSkull Now Supports Defold&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/8bitskull.webp&quot; alt=&quot;8BitSkull Now Supports Defold&quot; /&gt;&lt;/p&gt;

&lt;p&gt;8BitSkull has joined the Defold Foundation as a Bronze Partner. The studio creates successful PC and console games with Defold.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/2026/04/29/Indie-studio-8bitskull-partners-with-defold/&quot;&gt;Read the Announcement Post&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;meet-us-in-poland-and-czech-republic&quot;&gt;Meet Us in Poland and Czech Republic&lt;/h2&gt;

&lt;p&gt;The Defold team will attend Digital Dragons in Cracow, Poland on May 17-19 and Game Access in Brno, Czech Republic on May 29-30. If you are nearby, we would like to meet the local community.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/digital-dragons-2026&quot;&gt;Digital Dragons, Cracow, Poland, May 17-19&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/game-access-2026&quot;&gt;Game Access, Brno, Czech Republic, May 29-30&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;clean-up-crew&quot;&gt;Clean-up Crew&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/cleanup_crew.webp&quot; alt=&quot;Clean-up Crew&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Kuyi Mobile&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A relaxed cleaning and renovation simulation where players clean, fix, and rebuild messy rooms.&lt;/p&gt;

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

&lt;h3 id=&quot;janes-fashion-studio&quot;&gt;Jane’s Fashion Studio&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/janes_fashion_studio.webp&quot; alt=&quot;Jane&apos;s Fashion Studio&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Orenji Spark&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A stylish dress-up game about creating looks, styling unique characters, and following their stories through fashion.&lt;/p&gt;

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

&lt;h3 id=&quot;throst&quot;&gt;Throst&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/throst.webp&quot; alt=&quot;Throst&quot; /&gt;&lt;/p&gt;

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

&lt;p&gt;A 2D retro arcade action adventure game about precision flying, gravity, and fighting through enemy defenses.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://store.steampowered.com/app/4153910/Throst/&quot;&gt;Throst on Steam&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;defdragon---dragonbones-extension&quot;&gt;DefDragon - DragonBones Extension&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/assets_tools.webp&quot; alt=&quot;DefDragon - DragonBones Extension&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Ronald K Bett&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A community extension for the free 2D skeleton animation software DragonBones, with support for DragonBones Pro 5.5 runtimes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defdragon/82624&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;live-unbundler&quot;&gt;Live Unbundler&lt;/h3&gt;

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

&lt;p&gt;Enhances Defold Live Update by splitting large archives into smaller chunks.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/live-unbundler-liveupdate-splitter-and-loader/82697&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;random-number-generator&quot;&gt;Random Number Generator&lt;/h3&gt;

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

&lt;p&gt;Defold-RNG is a fast, instance-based native extension for random number generation.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;graph-pathfinder&quot;&gt;Graph Pathfinder&lt;/h3&gt;

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

&lt;p&gt;Graph Pathfinder now supports multiple navmeshes for pathfinding.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/graph-pathfinder/81871/6&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;defold-a-pathfinding&quot;&gt;Defold A* Pathfinding&lt;/h3&gt;

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

&lt;p&gt;This native extension for A-star navigation has been updated.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/a-native-extension/60405/53&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;daabbcc&quot;&gt;DAABBCC&lt;/h3&gt;

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

&lt;p&gt;Version 3.0.8 is available with object validation improvements.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/daabbcc-dynamic-tree-aka-aabb-tree-native-extension-for-fast-aabb-collision-detection/18328/150&quot;&gt;Learn More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;daabbcc3d&quot;&gt;DAABBCC3D&lt;/h3&gt;

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

&lt;p&gt;Version 1.0.5 is available with object validation improvements.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/daabbcc3d-3d-aabb-collision-detection/79673/9&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;how-we-stayed-on-the-front-page-of-itch-for-over-a-month&quot;&gt;How We Stayed on the Front Page of Itch for Over a Month&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;by Oleg Chumakov, Luden.io&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A practical case study on how Luden.io kept SuperWEIRD visible on itch.io through tag strategy, strong banners, and page clarity.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.luden.io/how-we-stayed-on-the-front-page-of-itch-io-for-over-a-month-8e0d0cf1cc17&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;unity-to-defold---understanding-the-shift-in-component-architecture&quot;&gt;Unity to Defold - Understanding the Shift in Component Architecture&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;by Orenji Spark&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An article about recreating Unity-style component architecture in Defold with Lua modules, and how to adjust your mental model when moving from Unity.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://orenjispark.com/blog/posts/unity-to-defold-component-architecture&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;robo-dance---gamedevjs-post-mortem&quot;&gt;Robo Dance - GamedevJS Post-mortem&lt;/h3&gt;

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

&lt;p&gt;Read about making Robo Dance for GamedevJS Jam 2026, from early ideas to a rhythm-synced turn-based game.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/robo-dance-postmortem-gamedevjs-jam-2026/82698&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;space-base-maintenance---gamedevjs-post-mortem&quot;&gt;Space Base Maintenance - GamedevJS Post-mortem&lt;/h3&gt;

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

&lt;p&gt;How the Machines theme became a Defold-made 3D base-building game with resource loops, fragile systems, and balancing challenges.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/space-base-maintenance-post-mortem-gamedevjs-jam-2026/82699&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;marshaller-of-inalpla---ludum-dare-post-mortem&quot;&gt;Marshaller of Inalpla - Ludum Dare Post-mortem&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;by Jennifer S. Lange&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A jam postmortem about making a whimsical fantasy interdimensional airport marshalling game with Defold.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jenniferslange.wordpress.com/2026/04/24/marshaller-of-inalpla/&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;what-engine-i-choose-in-2026---my-personal-take&quot;&gt;What Engine I Choose in 2026 - My Personal Take&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;by Orenji Spark&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Iwan from Orenji Spark shares why Defold is his main engine in 2026.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://orenjispark.com/blog/posts/game-engine-choice-2026&quot;&gt;Read More&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-may-2026/defold_1124.webp&quot; alt=&quot;Defold 1.12.4 Has Been Released&quot; /&gt;&lt;/p&gt;

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

&lt;ul&gt;
  &lt;li&gt;Free Camera mode in Scene View&lt;/li&gt;
  &lt;li&gt;glTF validator integrated into the asset pipeline&lt;/li&gt;
  &lt;li&gt;New shader precision options&lt;/li&gt;
  &lt;li&gt;16 texture units per draw for better rendering capabilities&lt;/li&gt;
  &lt;li&gt;Text rendering performance boost&lt;/li&gt;
  &lt;li&gt;Smaller HTML5/WASM builds, with an empty project now 1.06 MB&lt;/li&gt;
  &lt;li&gt;Editor, rendering, and runtime performance improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have also added new examples, refreshed Defold’s website, and updated the Rive extension.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/updated-rive-extension/82642&quot;&gt;Updated Rive Extension&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/2026/05/04/Defold-1-12-4/&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, 05 May 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/05/05/Newsletter-May-2026/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/05/05/Newsletter-May-2026/</guid>
		</item>
		
		<item>
			<title>Defold release 1.12.4</title>
			<description>&lt;h1 id=&quot;defold-1124&quot;&gt;Defold 1.12.4&lt;/h1&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/releases/defold_1_12_4_thumb.webp&quot; alt=&quot;defold_1_12_4&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;a href=&quot;https://www.fatesofort.com/&quot;&gt;Featured: Fates of Ort by 8BitSkull&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;We continue our focus on making the engine faster, smoother and more reliable, while still maintaining the small size - and even decreasing it further - for HTML5 builds the empty project is now 1.06 MB. We also keep adding some nice features, i.a. a new Free Fly mode in the Editor for easier scene nagivation in 3D projects.&lt;/p&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/12051&quot;&gt;#6519&lt;/a&gt;) Shader precision options (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/12081&quot;&gt;#11750&lt;/a&gt;) Increase number of texture units per draw from 8 to 16 (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/12153&quot;&gt;#12032&lt;/a&gt;) Deprecate the legacy LiveUpdate APIs (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/12023&quot;&gt;#10478&lt;/a&gt;) Add glTF validator (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/12061&quot;&gt;#11697&lt;/a&gt;) Fix build error source links for embedded resources (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/12092&quot;&gt;#11828&lt;/a&gt;) Improved Scene View manipulator performance (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/12173&quot;&gt;#3893,#12171&lt;/a&gt;) Update editor JGit dependency to version 7.6.0 (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/11309&quot;&gt;#11185,#8840&lt;/a&gt;) Free camera mode in scene view + enhanced camera controls (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/12055&quot;&gt;#11845&lt;/a&gt;) Shut down the engine gracefully when creating a model component with model and rig are excluded (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/12078&quot;&gt;#12078&lt;/a&gt;) Cleanup of missing argument types etc in our api documentation (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/12091&quot;&gt;#9647&lt;/a&gt;) Fix for models with multiple meshes and mixed coordinate spaced materials (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/12079&quot;&gt;#12031,#9045,#10327&lt;/a&gt;) Allow the sound system to grow its used memory to increase the sound speed limit and fix possible crashes (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/12103&quot;&gt;#12097&lt;/a&gt;) Added type safety to the graphics context handle (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/12107&quot;&gt;#12107&lt;/a&gt;) Exclude unused code from the HTML5 build to reduce binary size (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/12110&quot;&gt;#12110&lt;/a&gt;) Fix for uniform buffers on WebGPU (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/12105&quot;&gt;#11196&lt;/a&gt;) Don’t apply skinning twice (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/12114&quot;&gt;#12114&lt;/a&gt;) Updated to Zip v0.3.8 and miniz 3.1.0 (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/12127&quot;&gt;#12127&lt;/a&gt;) Remove unsupported luasocket functionality from HTML5 build (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/12138&quot;&gt;#12138&lt;/a&gt;) Optimize sprite culling (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/12137&quot;&gt;#8088&lt;/a&gt;) Store frustum has in render items to avoid already calculated culling (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/12136&quot;&gt;#12136&lt;/a&gt;) Cache the text layout to speed up text rendering (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/12149&quot;&gt;#8899&lt;/a&gt;) Avoid deadlocks when the profiler stack is unbalanced (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/12184&quot;&gt;#11913&lt;/a&gt;) Switching the atlas in a sprite no longer throws an error if the current animation doesn’t exist in the new atlas (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/12155&quot;&gt;#12141&lt;/a&gt;) Fixed crash when calling &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;model.play_anim()&lt;/code&gt; with an animation that is not present in the model (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/12161&quot;&gt;#12134&lt;/a&gt;) Show a Lua error when attempting to set the render target size &amp;lt;= 0 (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/12163&quot;&gt;#11572&lt;/a&gt;) Update GUI nodes if the texture has been replaced from a script (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/12179&quot;&gt;#12154&lt;/a&gt;) Fix occasional freezes on load in debug 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/12095&quot;&gt;#12093&lt;/a&gt;) Fix Box2D 3.1 trigger enter/exit when one collision object overlaps several triggers (by aglitchman)&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12181&quot;&gt;#12181&lt;/a&gt;) Display a warning when a profiler scope overflow occurs (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/12189&quot;&gt;#12189&lt;/a&gt;) Fixed an issue where HTTP requests could stall during app restart (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/12190&quot;&gt;#12190&lt;/a&gt;) Add the ability to increase the maximum sample count in the profiler (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/12193&quot;&gt;#12191&lt;/a&gt;) Windows fix for file operations using Unicode paths (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/12199&quot;&gt;#12187&lt;/a&gt;) Apply filter params when uploading texture data (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/12067&quot;&gt;#10552&lt;/a&gt;) Add check for ES2/WebGL1 shaders that highp is supported in shaders (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/12072&quot;&gt;#11951&lt;/a&gt;) Add xdg-open fallback on Linux when attempting to open a link in the browser (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/12100&quot;&gt;#11054&lt;/a&gt;) Apply skeleton transforms for orphaned joints (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/12104&quot;&gt;#11524,#11643&lt;/a&gt;) Fix glb rendering issue (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/12106&quot;&gt;#12106&lt;/a&gt;) Allow go.property() only in .script files (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/12109&quot;&gt;#12025&lt;/a&gt;) Insert call arguments for LSP completions (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/12135&quot;&gt;#9430&lt;/a&gt;) Fix build error log parse exception (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/12088&quot;&gt;#8570,#3660&lt;/a&gt;) Replace SSDP/UPnP target discovery with mDNS/DNS-SD for Defold debug targets (by AGulev)&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/12051&quot;&gt;#6519&lt;/a&gt;) &lt;strong&gt;‘Shader precision options’&lt;/strong&gt; by Jhonnyg
Two new game.project options have been added that controls how the default type precision for floats and ints are generated for GLSL ES shaders:&lt;/p&gt;

&lt;div class=&quot;language-yaml 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;s&quot;&gt;shader.glsl_es_default_precision_float = highp | mediump&lt;/span&gt;
&lt;span class=&quot;s&quot;&gt;shader.glsl_es_default_precision_int = highp | mediump&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;These will affect how the global type qualifiers are generated in the cross-compiled shaders:&lt;/p&gt;

&lt;div class=&quot;language-glsl 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;cp&quot;&gt;#version 300 es
&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;precision&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;highp&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;precision&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;mediump&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&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/12081&quot;&gt;#11750&lt;/a&gt;) &lt;strong&gt;‘Increase number of texture units per draw from 8 to 16’&lt;/strong&gt; by Jhonnyg
Max texture units a draw call can reference has been increased from 8 to 16.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12153&quot;&gt;#12032&lt;/a&gt;) &lt;strong&gt;‘Deprecate the legacy LiveUpdate APIs’&lt;/strong&gt; by AGulev
⚠️ We are deprecating old LiveUpdate functionality in favor of mount/archive-based Live Update workflows.&lt;/p&gt;

&lt;p&gt;The following Lua API has been deprecated:&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;get_current_manifest&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&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;store_resource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&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;store_manifest&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&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;store_archive&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&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;is_using_liveupdate_data&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;()&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;collectionproxy&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;missing_resources&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;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;resource.*&lt;/code&gt; aliases for these APIs have been removed:&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;resource&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;get_current_manifest&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;is_using_liveupdate_data&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;store_resource&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;store_manifest&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;store_archive&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 deprecated API still works, giving users of the old Live Update time to migrate before it is removed later this year. However, it has been removed from the documentation, and some functionality has changed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, manifest signing keys are no longer part of the pipeline, which means:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bob.jar&lt;/code&gt; no longer accepts &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--manifest-private-key&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--manifest-public-key&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.public.der&lt;/code&gt; is no longer generated or bundled, and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;publickey&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;privatekey&lt;/code&gt; fields in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;liveupdate.settings&lt;/code&gt; are now deprecated and unused&lt;/li&gt;
  &lt;li&gt;At runtime, deprecated Live Update manifest and archive validation now check only supported engine versions instead of using bundled public/private key signatures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This change reduces the engine’s build size (for example, from 2,339,290 bytes to 2,423,041 bytes for a WASM release build, about ~3.6%).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, archive builds now include a new Live Update setting, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Strip Live Update Entries from Main Manifest&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.project&lt;/code&gt; (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;liveupdate.exclude_entries_from_main_manifest&lt;/code&gt;), enabled by default.&lt;/p&gt;

&lt;p&gt;When this option is enabled for archive builds that publish Live Update content, liveupdate-only resources are excluded from the bundled &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.dmanifest&lt;/code&gt;, while the published &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;liveupdate.game.dmanifest&lt;/code&gt; still contains the full resource list required for remote content delivery. Disable this setting only if you need the deprecated behavior where excluded entries remain in the bundled &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.dmanifest&lt;/code&gt;. This reduces build size and runtime memory usage, especially for projects with a large number of resources in Live Update archives.&lt;/p&gt;

&lt;p&gt;This option is enabled by default because mount/archive-based Live Update workflows are highly dynamic and users can replace archive content at any time, manifest data cannot be relied upon for resources excluded during the bundle build.
For the same reason, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;collectionproxy.missing_resources()&lt;/code&gt; is now deprecated, as it depends on manifest data to detect excluded resources. It can be partially replaced by &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;collectionproxy.get_resources()&lt;/code&gt;, which now returns an empty table &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{}&lt;/code&gt; when no collection exists in any mounted archive and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Strip Live Update Entries from Main Manifest&lt;/code&gt; checked, indicating that the required archive has not been mounted yet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12055&quot;&gt;#11845&lt;/a&gt;) &lt;strong&gt;‘Shut down the engine gracefully when creating a model component with model and rig are excluded’&lt;/strong&gt; by britzl
This fixes a crash when trying to create a model component with model and rig excluded using an app manifest. The engine will now shut down gracefully and the log will show that the operation is not supported:&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;WARNING:RESOURCE: Unable to create resource: /_generated_90739376.modelc: NOT_SUPPORTED
WARNING:RESOURCE: Unable to create resource: /_generated_1f27f107.goc: NOT_SUPPORTED
ERROR:GAMEOBJECT: Could not instantiate game object from prototype /_generated_1f27f107.goc.
WARNING:RESOURCE: Unable to create resource: /main/game/game.collectionc: FORMAT_ERROR
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12078&quot;&gt;#12078&lt;/a&gt;) &lt;strong&gt;‘Cleanup of missing argument types etc in our api documentation’&lt;/strong&gt; by JCash
Some parts of the C++ api generation was missing some type information.
Fixes to our internal scripts also now make it easier to spot such errors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12091&quot;&gt;#9647&lt;/a&gt;) &lt;strong&gt;‘Fix for models with multiple meshes and mixed coordinate spaced materials’&lt;/strong&gt; by Jhonnyg
Models that use .gltf files that use materials with different coordinate spaces can now be batched correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12079&quot;&gt;#12031,#9045,#10327&lt;/a&gt;) &lt;strong&gt;‘Allow the sound system to grow its used memory to increase the sound speed limit and fix possible crashes’&lt;/strong&gt; by AGulev
Compile-time assumptions about how large audio buffers need to be for all sounds created limitations on the playback speed that could be applied and on the sound quality that could be played safely. For example, playing a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;384 kHz&lt;/code&gt; sound could crash on a device with a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;44 kHz&lt;/code&gt; output rate. A similar issue existed for playback speed: increasing the speed requires more decoded data to be fed into the resampler, and the sound system could end up with a buffer that was too small, which could also cause a crash.&lt;/p&gt;

&lt;p&gt;To fix this, the sound system can now grow its scratch buffers dynamically to ensure that enough data fits when needed. This fixes crashes in those situations and also allows the maximum speed limit to be increased from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;5&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;50&lt;/code&gt;. It still makes sense to use reasonable sound sample rates, such as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;44 kHz&lt;/code&gt;, since higher rates increase runtime memory usage as well as using high speed sounds. To help track that memory usage, a new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Sound System&lt;/code&gt; section has been added to the profiler.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12103&quot;&gt;#12097&lt;/a&gt;) &lt;strong&gt;‘Added type safety to the graphics context handle’&lt;/strong&gt; by JCash
This fixes a regression where the WebGPU backend used the wrong information to setup its context, resulting in erroneous rendering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12107&quot;&gt;#12107&lt;/a&gt;) &lt;strong&gt;‘Exclude unused code from the HTML5 build to reduce binary size’&lt;/strong&gt; by AGulev
Even though &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http_service.cpp&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;provider_http.cpp&lt;/code&gt; were unused in HTML5, they were accidentally included in the HTML5 binary.&lt;/p&gt;

&lt;p&gt;Excluding them reduces the HTML5 release build from 2 604 862 bytes to 2 469 942 bytes, saving 134 920 bytes (~5.2%)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12110&quot;&gt;#12110&lt;/a&gt;) &lt;strong&gt;‘Fix for uniform buffers on WebGPU’&lt;/strong&gt; by JCash
This fixes some uninitialized memory and handling of cached states that was introduced in 1.12.2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12105&quot;&gt;#11196&lt;/a&gt;) &lt;strong&gt;‘Don’t apply skinning twice’&lt;/strong&gt; by Jhonnyg
An issue has been fixed where world transforms are applied twice for static non-skinned meshes that are anchored to skeletal bones. Essentially, in some cases meshes would render in an incorrect position when playing an animation as opposed to the bind pose (i.e when no animation is playing).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12114&quot;&gt;#12114&lt;/a&gt;) &lt;strong&gt;‘Updated to Zip v0.3.8 and miniz 3.1.0’&lt;/strong&gt; by JCash
This allows us to use vanilla library files which will help keeping the library up-to-date.
We’ve also removed our &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;zlib&lt;/code&gt; dependency, and instead rely on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;miniz&lt;/code&gt; library, eliminating duplicate code. In doing this we can save on executable size.
On macOS, the combined savings of the libraries is roughly 40kb.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12127&quot;&gt;#12127&lt;/a&gt;) &lt;strong&gt;‘Remove unsupported luasocket functionality from HTML5 build’&lt;/strong&gt; by AGulev
TCP/UDP isn’t supported on the HTML5 platform with luasockets. Removing this functionality from the binary helps reduce the WASM binary size slightly (~1%)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12138&quot;&gt;#12138&lt;/a&gt;) &lt;strong&gt;‘Optimize sprite culling’&lt;/strong&gt; by ekharkunov
Sprite culling spends less time calculating visibility now. But memory footprint grows by 20 bytes per every sprite component.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12137&quot;&gt;#8088&lt;/a&gt;) &lt;strong&gt;‘Store frustum has in render items to avoid already calculated culling’&lt;/strong&gt; by Jhonnyg
The amount of time spent on frustum culling has been reduced when issuing multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;render.draw&lt;/code&gt; calls during 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/12136&quot;&gt;#12136&lt;/a&gt;) &lt;strong&gt;‘Cache the text layout to speed up text rendering’&lt;/strong&gt; by AGulev
Text layout calculation is pretty expensive. To reduce its cost, we cache it once and reuse it until layout-related parameters change. This significantly speeds up text rendering (1.5x-4.5x, depending on the selected font system, classic or dynamic fonts), but increases memory consumption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12149&quot;&gt;#8899&lt;/a&gt;) &lt;strong&gt;‘Avoid deadlocks when the profiler stack is unbalanced’&lt;/strong&gt; by AGulev
Fixes an issue where the engine may freeze if a user calls &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;profiler.scope_begin(&quot;my_scope&quot;)&lt;/code&gt; without later closing it with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;profiler.scope_end()&lt;/code&gt;, or vice versa: closing without opening. In such cases, an error will be shown and scopes will be auto-closed at the moment of detection.&lt;/p&gt;

&lt;p&gt;Also fixes occasional freezes when using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;profiler.dump_frame()&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/12184&quot;&gt;#11913&lt;/a&gt;) &lt;strong&gt;‘Switching the atlas in a sprite no longer throws an error if the current animation doesn’t exist in the new atlas’&lt;/strong&gt; by AGulev
Switching the atlas previously showed an error when an animation didn’t exist in the new atlas:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;ERROR:GAMESYS: Atlas doesn’t contain animation ‘anim’. Animation ‘new_0’ will be used&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This used to happen even when the next line after changing the atlas switched the animation, which made the error unnecessary and annoying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12155&quot;&gt;#12141&lt;/a&gt;) &lt;strong&gt;‘Fixed crash when calling &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;model.play_anim()&lt;/code&gt; with an animation that is not present in the model’&lt;/strong&gt; by AGulev
Fixed a crash when &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;model.play_anim()&lt;/code&gt; is called without a callback and attempts to play an animation that doesn’t exist in the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12161&quot;&gt;#12134&lt;/a&gt;) &lt;strong&gt;‘Show a Lua error when attempting to set the render target size &amp;lt;= 0’&lt;/strong&gt; by AGulev
An attempt to set the render target size less than or equal to zero crashes the engine. This fix prevents it by showing a Lua error instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12163&quot;&gt;#11572&lt;/a&gt;) &lt;strong&gt;‘Update GUI nodes if the texture has been replaced from a script’&lt;/strong&gt; by AGulev
Fixed an issue where, when updating a texture in GUI, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.set()&lt;/code&gt; updates node parameters in debug builds but doesn’t update them in release builds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12179&quot;&gt;#12154&lt;/a&gt;) &lt;strong&gt;‘Fix occasional freezes on load in debug builds’&lt;/strong&gt; by AGulev
Fixes an issue where the profiler may get stuck in a deadlock in some cases, which is easier to reproduce on Android.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12095&quot;&gt;#12093&lt;/a&gt;) &lt;strong&gt;‘Fix Box2D 3.1 trigger enter/exit when one collision object overlaps several triggers’&lt;/strong&gt; by aglitchman
2D physics with Box2D 3.1 could report wrong trigger enter/exit when one object overlapped more than one trigger at the same time. Exits were applied incorrectly to all overlaps of a body instead of only the pair that ended. This change fixes that tracking and adds a regression test. Sensor overlap queries used for collision callbacks also read overlap counts from Box2D correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12181&quot;&gt;#12181&lt;/a&gt;) &lt;strong&gt;‘Display a warning when a profiler scope overflow occurs’&lt;/strong&gt; by AGulev
The app used to hang if the user made a mistake and created too many scopes. That made it hard to debug. Now the profiler warns the user about the problem.&lt;/p&gt;

&lt;p&gt;⚠️ This introduces a breaking change to the DMSDK API:&lt;/p&gt;
&lt;div class=&quot;language-cpp 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;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileSetThreadName&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileScopeBegin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileFrameEnd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HProfile&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;profile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileScopeEnd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileLogText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&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;replaced with&lt;/p&gt;
&lt;div class=&quot;language-cpp 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;ProfileResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileSetThreadName&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ProfileResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileScopeBegin&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ProfileResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileFrameEnd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HProfile&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;profile&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ProfileResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileScopeEnd&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;uint64_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;name_hash&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;ProfileResult&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;ProfileLogText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;text&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;c1&quot;&gt;// The result can be one of the following values:&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// PROFILE_RESULT_OK&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// PROFILE_RESULT_NOT_INITIALIZED&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// PROFILE_RESULT_OUT_OF_SAMPLES&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12189&quot;&gt;#12189&lt;/a&gt;) &lt;strong&gt;‘Fixed an issue where HTTP requests could stall during app restart’&lt;/strong&gt; by AGulev
In some cases, an application restart could not complete an ongoing HTTP request, which could result in the app freezing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12190&quot;&gt;#12190&lt;/a&gt;) &lt;strong&gt;‘Add the ability to increase the maximum sample count in the profiler’&lt;/strong&gt; by AGulev
Added &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;profiler.max_sample_count&lt;/code&gt; to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game.project&lt;/code&gt; to allow using more than the default 4096 samples, which can be useful in rare cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12193&quot;&gt;#12191&lt;/a&gt;) &lt;strong&gt;‘Windows fix for file operations using Unicode paths’&lt;/strong&gt; by JCash
This fixes issues when a folder or a filename contain Unicode characters.
E.g. you could see &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Failed get application support path&lt;/code&gt; due to invalid conversions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12199&quot;&gt;#12187&lt;/a&gt;) &lt;strong&gt;‘Apply filter params when uploading texture data’&lt;/strong&gt; by Jhonnyg
Fixed an issue where updating font data in OpenGL changes texture filtering parameters but didn’t update the sampler dirty state. This caused a mismatch between the expected filtering state since the sampler settings were never applied.&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/12023&quot;&gt;#10478&lt;/a&gt;) &lt;strong&gt;‘Add glTF validator’&lt;/strong&gt; by Jhonnyg
The glTF validation tool has been integrated into the asset pipeline. Building / loading a project with faulty glTF files will output errors now that needs to be addressed before they can be used in Defold. Usually, the quickest route to fixing the content is to re-export them via Blender (https://www.blender.org/).&lt;/p&gt;

&lt;p&gt;Note: Validating .gltf files inside an archive (e.g project dependency) does not validate external buffers and/or textures.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12061&quot;&gt;#11697&lt;/a&gt;) &lt;strong&gt;‘Fix build error source links for embedded resources’&lt;/strong&gt; by AGulev
Build errors coming from embedded resources now consistently open the owning file instead of ending up with an unknown or missing source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12092&quot;&gt;#11828&lt;/a&gt;) &lt;strong&gt;‘Improved Scene View manipulator performance’&lt;/strong&gt; by matgis
We now defer committing changes to the graph until the drag operation has completed when using Scene View manipulators. This can significantly improve responsiveness when the manipulated objects are referenced from a large number of scenes. An unfortunate downside of this new approach is that you won’t see the drag reflected across multiple open tabs in Split View until you complete the drag.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12173&quot;&gt;#3893,#12171&lt;/a&gt;) &lt;strong&gt;‘Update editor JGit dependency to version 7.6.0’&lt;/strong&gt; by matgis
It seems the old version of JGit we were using has trouble with some repositories created by newer Git versions.&lt;/p&gt;

&lt;p&gt;See: https://bugs.eclipse.org/bugs/show_bug.cgi?id=581723&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NEW&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/11309&quot;&gt;#11185,#8840&lt;/a&gt;) &lt;strong&gt;‘Free camera mode in scene view + enhanced camera controls’&lt;/strong&gt; by JosephFerano
We have added a new 3D perspective free camera mode for navigating scenes! Click and hold the right mouse button to activate and move around with the WASD keys. There is a scene view popup on the perspective camera button with additional controls for the camera.  The left mouse button controls (orbit, zoom, pan) now warp around the editor window to allow you to keep going forever. There are also several smaller improvements, like smoother zooming and localization for the grid menu.&lt;/p&gt;

&lt;p&gt;Shoutout to @sprocketc who started the PR and @delinx who contributed his winapi know-how to the mouse_capture_windows.cpp module.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12067&quot;&gt;#10552&lt;/a&gt;) &lt;strong&gt;‘Add check for ES2/WebGL1 shaders that highp is supported in shaders’&lt;/strong&gt; by Jhonnyg
ES2/WebGL1 shaders that have specified highp as the default precision qualifier might not work on all devices since &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;highp&lt;/code&gt; for fragment shaders is not guaranteed to work on ES2.&lt;/p&gt;

&lt;p&gt;To fix this, the shader build pipeline now patches the cross-compiled ES2 shaders with the following snippet:&lt;/p&gt;

&lt;div class=&quot;language-glsl 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;cp&quot;&gt;#version 100 es
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// If highp is specified as the default precision for floats:&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#ifdef GL_FRAGMENT_PRECISION_HIGH
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;precision&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;highp&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#else
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;precision&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;mediump&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#endif
&lt;/span&gt;
&lt;span class=&quot;c1&quot;&gt;// If highp is specified as the default precision for ints:&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#ifdef GL_FRAGMENT_PRECISION_HIGH
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;precision&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;highp&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#else
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;precision&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;mediump&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;cp&quot;&gt;#endif
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12072&quot;&gt;#11951&lt;/a&gt;) &lt;strong&gt;‘Add xdg-open fallback on Linux when attempting to open a link in the browser’&lt;/strong&gt; by JosephFerano&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12100&quot;&gt;#11054&lt;/a&gt;) &lt;strong&gt;‘Apply skeleton transforms for orphaned joints’&lt;/strong&gt; by Jhonnyg
In the cases where animations coming from a .gltf file where the root node of a skeleton has non-identity transform, the skinned objects in the engine would not be correctly placed when animating.&lt;/p&gt;

&lt;p&gt;NOTE: This could mean that your projects with skinned characters might be rotated, scaled or positioned differently now when animating. If this happens, you need to fix this in your authoring package (e.g Blender) and re-export the offending .gltf files!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12104&quot;&gt;#11524,#11643&lt;/a&gt;) &lt;strong&gt;‘Fix glb rendering issue’&lt;/strong&gt; by JosephFerano
Fixed issue on Linux and Macos where glb models weren’t being rendered correctly  on systems with locales that use commas for decimal numbers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12106&quot;&gt;#12106&lt;/a&gt;) &lt;strong&gt;‘Allow go.property() only in .script files’&lt;/strong&gt; by vlaaad
Both editor and bob will now only allow &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;go.property()&lt;/code&gt; in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.script&lt;/code&gt; files. It never worked in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.lua&lt;/code&gt; files, but now it explicitly generates a build error.&lt;/p&gt;

&lt;p&gt;As a side effect of this, the editor now loads faster on big proejcts, where it no longer needs to parse all &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.lua&lt;/code&gt; files for properties. On an example big project, the observed improvement in load time was 6% (1m31s -&amp;gt; 1m25s).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12109&quot;&gt;#12025&lt;/a&gt;) &lt;strong&gt;‘Insert call arguments for LSP completions’&lt;/strong&gt; by vlaaad
Accepting Lua function completions from the Lua language server now inserts the call with parentheses and arguments instead of only the function name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FIX&lt;/strong&gt;: (&lt;a href=&quot;https://github.com/defold/defold/pull/12135&quot;&gt;#9430&lt;/a&gt;) &lt;strong&gt;‘Fix build error log parse exception’&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/12088&quot;&gt;#8570,#3660&lt;/a&gt;) &lt;strong&gt;‘Replace SSDP/UPnP target discovery with mDNS/DNS-SD for Defold debug targets’&lt;/strong&gt; by AGulev
Debug engine builds now advertise themselves over mDNS/DNS-SD using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_defold._tcp&lt;/code&gt; service and the editor now discovers debug targets through mDNS instead of SSDP/UPnP. iOS debug builds now publish the discovery service through Bonjour, so they can be discovered by the editor over the local network without an extra entitlements.&lt;/p&gt;

&lt;p&gt;It fixes the issue that iOS targets can’t be discovered by the editor.&lt;/p&gt;

&lt;p&gt;⚠️If you are using a custom &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Info.plist&lt;/code&gt; in your project, please make sure it is updated with the changes introduced in this version (new section):&lt;/p&gt;

&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;        {{^variant_release}}
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;NSBonjourServices&lt;span class=&quot;nt&quot;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;array&amp;gt;&lt;/span&gt;
                &lt;span class=&quot;nt&quot;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;_defold._tcp&lt;span class=&quot;nt&quot;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/array&amp;gt;&lt;/span&gt;

        &lt;span class=&quot;nt&quot;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;NSLocalNetworkUsageDescription&lt;span class=&quot;nt&quot;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;Discover Defold targets on the local network.&lt;span class=&quot;nt&quot;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
        {{/variant_release}}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

</description>
			<pubDate>Mon, 04 May 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/05/04/Defold-1-12-4/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/05/04/Defold-1-12-4/</guid>
		</item>
		
		<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>
		
	</channel>
</rss>
