<?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>From tabletop mystery to mobile city - how Soft Boiled Games brought MicroMacro to Defold</title>
			<description>&lt;p&gt;In the Creator Spotlight posts we invite Defold users to present themselves and share a bit of their background, their work and things that inspire them. It is an excellent opportunity for the community to come together, to recognise achievements and to share some of the great work done by Defold users.&lt;/p&gt;

&lt;p&gt;This time we invited Felix Weiler from Soft Boiled Games to talk about &lt;em&gt;MicroMacro: Downtown Detective&lt;/em&gt; - a very successful mobile title made with Defold, adapted from the hit board game series, and an upcoming Steam release.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-felix-weiler/mobile.png&quot; alt=&quot;MicroMacro: Downtown Detective&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;MicroMacro: Downtown Detective made with Defold and released on Google Play and App Store&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;hello-felix-introduce-yourself-to-our-community&quot;&gt;Hello Felix, introduce yourself to our community!&lt;/h5&gt;

&lt;p&gt;Hi, my name is Felix Weiler and I’m co-founder and developer at Soft Boiled Games. We’re based in Düsseldorf, Germany. In August 2025 we released &lt;em&gt;MicroMacro: Downtown Detective&lt;/em&gt;, our first commercial game, a continuation of the successful board game series, made for the most part by the same team.&lt;/p&gt;

&lt;h5 id=&quot;what-are-your-favorite-games-do-you-have-some-nice-hobbies&quot;&gt;What are your favorite games? Do you have some nice hobbies?&lt;/h5&gt;

&lt;p&gt;I’m drawn to clever puzzle games and deep narratives, ideally both at once. &lt;em&gt;Outer Wilds&lt;/em&gt; is probably my all-time favorite for exactly that reason: knowledge-gated puzzles, a miniature solar system to explore, and a real sense of discovery driving the whole thing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Return of the Obra Dinn&lt;/em&gt; and &lt;em&gt;The Witness&lt;/em&gt; are favorites that scratch a similar itch, and I’ll also always make room for &lt;em&gt;Factorio&lt;/em&gt;, which is just so remarkably polished.&lt;/p&gt;

&lt;p&gt;Right now I’m playing through &lt;em&gt;Lorelei and the Laser Eyes&lt;/em&gt;, which I’m enjoying a lot for its striking visual style and how tightly the puzzles are woven into the narrative.&lt;/p&gt;

&lt;p&gt;Outside of game development, I make music, and sometimes get away from screens with running, climbing, and hiking.&lt;/p&gt;

&lt;h5 id=&quot;how-did-you-get-into-game-development-what-did-your-journey-look-like&quot;&gt;How did you get into game development? What did your journey look like?&lt;/h5&gt;

&lt;p&gt;Even as a kid I was more interested in taking games apart and figuring out how they worked than just playing them, so I got into programming early, before the internet made tutorials and resources as accessible as they are today. I was always tinkering on small game projects as a teenager, without any real plan to make a career of it.&lt;/p&gt;

&lt;p&gt;I ended up studying and working as an electronics engineer in R&amp;amp;D, and later ran my own small consulting and development firm for electronic products. Game projects stayed a constant in the background the whole time.&lt;/p&gt;

&lt;p&gt;The MicroMacro board game team and Soft Boiled Games are, at their core, friends who know each other from school and university, and had already worked together on other projects and businesses over the years. The board game’s success gave us the opening to found Soft Boiled Games and finally bring MicroMacro to mobile, something we’d considered from very early on.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-felix-weiler/board_games.png&quot; alt=&quot;MicroMacro board game series&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;MicroMacro board game series&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;you-described-micromacro-downtown-detective-as-probably-a-bit-of-an-unusual-case-that-immediately-sounds-intriguing-what-makes-this-project-unusual&quot;&gt;You described MicroMacro: Downtown Detective as “probably a bit of an unusual case.” That immediately sounds intriguing. What makes this project unusual?&lt;/h5&gt;

&lt;p&gt;MicroMacro breaks with a lot of mobile market conventions on purpose: no pay-to-win, no in-game currencies, no timers. Where a lot of mobile design is built around quick action and manufactured waiting, MicroMacro asks for the opposite, a kind of analog slowing-down, real attention and thinking-through rather than just tapping whatever’s in front of you.&lt;/p&gt;

&lt;p&gt;That same principle carries into the world itself: it’s one huge, continuous city, drawn in a minimalist comic style, filled with handcrafted stories and carefully placed clues. At a glance it might look like a typical hidden-object game, but it really isn’t about clicking around until something highlights: it’s about looking closely, thinking, and connecting stories.&lt;/p&gt;

&lt;h5 id=&quot;the-starting-point-was-a-beloved-physical-board-game-what-was-the-first-moment-when-you-felt-that-micromacro-could-work-as-a-digital-game-what-parts-of-that-experience-did-you-most-want-to-preserve&quot;&gt;The starting point was a beloved physical board game! What was the first moment when you felt that MicroMacro could work as a digital game? What parts of that experience did you most want to preserve?&lt;/h5&gt;

&lt;p&gt;We actually had a very early iPad prototype before the board game even existed, and our biggest worry from the start was whether a map that size would translate to a small screen. But we were confident early on that the core mechanic and feel would carry over. The board game itself was already known for its broad appeal, approachable even for people who don’t normally play board games, and going mobile only extended that further: a phone is in almost everyone’s hands these days. The board game also works best with a small group, while on mobile you can dive into a case entirely on your own.&lt;/p&gt;

&lt;p&gt;Above all, what we wanted to preserve was the main mechanic that everything else grows out of: the same characters turn up in multiple locations across the map, each showing a different point in time. Following those threads is what turns a big illustrated city into surprisingly deep crime stories, closer to reading a comic panel by panel. We also wanted to keep the distinct style and feel of the original: that the city stays the same and you get to know it over time, that there’s always something interesting happening around you as you explore, and the humor and pop-culture references that run through it.&lt;/p&gt;

&lt;h5 id=&quot;designing-detective-cases-for-a-zoomable-screen-must-be-very-different-from-designing-them-for-a-printed-map-how-did-that-shape-the-way-you-approached-development-what-did-you-discover-could-not-simply-be-translated-one-to-one-from-the-tabletop-version-to-mobile&quot;&gt;Designing detective cases for a zoomable screen must be very different from designing them for a printed map. How did that shape the way you approached development? What did you discover could not simply be translated one-to-one from the tabletop version to mobile?&lt;/h5&gt;

&lt;p&gt;We had to rethink how we design cases, mostly around readability on a small screen. What doesn’t translate at all is the immediate full overview you get on a printed map, the way one player can keep a finger on one corner while someone else is finding something in another place across the table. On mobile you’re always looking through a much smaller window into the world, so we introduced interactive elements and markers to help players navigate cases without losing that sense of the whole city.&lt;/p&gt;

&lt;p&gt;During development we had time to really settle into designing cases for mobile. The new cases for the upcoming expansion, our second, are in our opinion the biggest and most complex we’ve built yet, and make full use of the whole nine-district city.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-felix-weiler/mobile_1.png&quot; alt=&quot;MicroMacro: Downtown Detective on mobile&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Mobile version has been released on Google Play and App Store&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;the-game-gives-players-digital-affordances-such-as-zooming-touch-navigation-guidance-and-interactive-progression-how-did-you-make-sure-these-features-helped-the-detective-experience-without-making-it-feel-too-automated&quot;&gt;The game gives players digital affordances such as zooming, touch navigation, guidance, and interactive progression. How did you make sure these features helped the detective experience without making it feel too automated?&lt;/h5&gt;

&lt;p&gt;Compared to our earliest drafts, before we’d really learned what worked on a small screen, we ended up adapting the storytelling quite a bit: shorter texts, fewer guided camera movements, more situations that leave room for freer investigation.&lt;/p&gt;

&lt;p&gt;Getting the balance right between free investigation and gentle guidance took a lot of fine-tuning, and a lot of playtesting with real players. The feedback shows it lands well for a lot of player types, though some would want it freer and harder, and for others it’s already fairly challenging. We’re currently exploring new ways to allow more open investigation without players getting lost, something like the “hard mode” the board game offers, which isn’t really possible in quite the same form on mobile.&lt;/p&gt;

&lt;h5 id=&quot;the-app-uses-its-own-city-map-and-new-cases-what-made-original-content-the-right-choice-for-the-digital-version-how-do-you-approach-the-design-of-these&quot;&gt;The app uses its own city map and new cases. What made original content the right choice for the digital version? How do you approach the design of these?&lt;/h5&gt;

&lt;p&gt;Cases for the digital version are designed a bit differently, and we wanted to make good use of what the format allows. Search Warrants, letting players look inside houses, uncover crime scenes, find hideouts, and what we call “Superzoom”, where the player can zoom in very far in certain spots to find tiny details, are both good examples of things that simply aren’t possible in the physical version.&lt;/p&gt;

&lt;p&gt;More importantly, we wanted to offer genuinely new content for fans of the series rather than a re-skin of something they’d already solved. Planning a new city and bringing it to life is something we really enjoy, and a lot of fans end up playing every version, board game and app alike.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-felix-weiler/mobile_2.png&quot; alt=&quot;Search Warrants and Superzoom in MicroMacro: Downtown Detective&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Digital version is designed a bit differently than board games&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-are-the-plans-for-the-steam-version-how-do-you-think-it-will-be-different-from-mobile-and-board-games-are-you-preparing-it-with-defold-too&quot;&gt;What are the plans for the Steam version? How do you think it will be different from mobile and board games? Are you preparing it with Defold too?&lt;/h5&gt;

&lt;p&gt;There’s been demand from players for a Steam version since early on, and the format suits the game well, sitting down at a PC to work through a few cases is a mode we enjoy ourselves, even though MicroMacro started as a mobile game. There are also players who just aren’t interested in mobile and want it on PC in a more familiar form.&lt;/p&gt;

&lt;p&gt;On the technical side, the main adaptation is the interface: the mobile version is built around portrait orientation with a necessarily minimal UI, while the larger screen just gives us more room to work with, and removes some of the constraints we’re designing around on mobile.&lt;/p&gt;

&lt;p&gt;We’re building the Steam version in Defold as well, we know the engine well by now, and it’s been a good, productive environment to work in. It also means the mobile version can benefit from any improvements made along the way, which should be especially useful for tablet play.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-felix-weiler/steam_1.png&quot; alt=&quot;MicroMacro: Downtown Detective on Steam&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Upcoming Steam release is also being made with Defold&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;when-you-started-thinking-about-the-technical-side-what-were-the-biggest-requirements-for-the-engine-why-did-defold-become-the-right-engine-for-this-project&quot;&gt;When you started thinking about the technical side, what were the biggest requirements for the engine? Why did Defold become the right engine for this project?&lt;/h5&gt;

&lt;p&gt;Performance mattered a lot to us. It’s not a technically demanding game in the traditional sense, but we didn’t want to limit support to only the newest devices, and we realized fairly early on that quick, low-latency feedback on touch input is essential to how the game feels and how well players can concentrate while working through a case. It directly affects players’ ability to focus on finding clues and solving cases.&lt;/p&gt;

&lt;p&gt;It also felt like a natural match: Defold started out as a mobile-focused engine, and that focus is still very much built into it.&lt;/p&gt;

&lt;h5 id=&quot;what-did-defold-make-easier-than-expected&quot;&gt;What did Defold make easier than expected?&lt;/h5&gt;

&lt;p&gt;Defold’s regular updates are rarely breaking, you can usually take new features and improvements without worry, and when something does break compatibility, it’s clearly documented.&lt;/p&gt;

&lt;p&gt;Cross-platform build workflows have been solid, and native extensions give us flexibility to go beyond the built-in functionality when needed. Overall it doesn’t feel bloated: the detailed control is there when you actually need it, and you don’t have to think about it when you don’t.&lt;/p&gt;

&lt;h5 id=&quot;the-game-is-built-around-a-very-detailed-zoomable-city-map-how-did-you-approach-rendering-memory-and-performance-for-something-like-that&quot;&gt;The game is built around a very detailed, zoomable city map. How did you approach rendering, memory, and performance for something like that?&lt;/h5&gt;

&lt;p&gt;The city map is genuinely large, and the total data footprint for the whole city ends up being bigger than you’d intuitively expect, even accounting for our fairly minimalist black-and-white style. Since we also wanted to support somewhat older, less powerful devices well, this became a core technical challenge.&lt;/p&gt;

&lt;p&gt;Defold usually expects most of a game’s objects and their counts to be defined ahead of time, with memory preallocated accordingly. We do things a bit differently: we create and manage the relevant game objects and image data dynamically at runtime instead. I think it’s not the most common pattern in Defold projects, but it’s supported, and it’s what made our approach possible.&lt;/p&gt;

&lt;p&gt;Loading and preparing data works against a per-frame budget, so we spread the cost out over time while still using that time efficiently, without stalling any other part of the game. Because the visible area can change very quickly during scrolling and zooming, we also try to predict which not-yet-visible parts of the city are likely to become visible next, and preload those where possible, including using idle time to load a bit further ahead. For unavoidable delays, we fall back to lower-resolution image tiles so there’s never a visible gap in the map, even briefly. The overall goal is to keep the experience free of stutters or distractions.&lt;/p&gt;

&lt;h5 id=&quot;looking-back-what-is-the-biggest-design-or-technical-lesson-from-the-development&quot;&gt;Looking back, what is the biggest design or technical lesson from the development?&lt;/h5&gt;

&lt;p&gt;Playtesting, above everything else: starting early, doing it often, and using it to actually check whether the core mechanic holds up and is fun, and whether every element in a case is really serving that, not just to find and remove friction. A lot of the case design decisions that mattered most only became clear once we watched real players get stuck, or breeze past something we expected to be a challenge, or once we realized something we liked just wasn’t pulling its weight.&lt;/p&gt;

&lt;p&gt;And the tools you build your game with matter almost as much as the engine itself. Since our levels are really cases laid out across the city map, we ended up building a kind of level editor outside of Defold, for map and case configuration, and how good that tool was directly shaped how well, and how fast, we could design and iterate on cases.&lt;/p&gt;

&lt;h5 id=&quot;what-did-you-learn-from-testing-and-launching-the-game-on-mobile-how-do-you-see-the-mobile-games-market-nowadays&quot;&gt;What did you learn from testing and launching the game on mobile? How do you see the mobile games market nowadays?&lt;/h5&gt;

&lt;p&gt;We went in knowingly pushing back against some norms of the market, we wanted to make a mobile game we’d actually want to play ourselves. Honestly, there aren’t that many of those, and most of them are ports of PC games rather than mobile-first designs.&lt;/p&gt;

&lt;p&gt;What we found is that a lot of our players really respond to a game that’s monetized fairly and transparently, no ads, no currencies, no subscriptions, you buy the game and own the content. Players also often highlight the relaxed pace paired with genuinely engaging content and puzzles, as a contrast to the louder, more aggressive side of the mobile games market.&lt;/p&gt;

&lt;p&gt;I do hope, and I think I see some signs of it, that there’s growing room for games that don’t lean on the more aggressive end of monetization, where the experience matters more than squeezing every session for revenue. The indie space seems especially well-suited to that, particularly for more story-driven, mid-core games, it’s still a place where care and passion can carry a game.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/creator-spotlight-felix-weiler/steam_2.png&quot; alt=&quot;The city map in MicroMacro: Downtown Detective&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;The game’s huge, continuous city map&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-advice-would-you-give-to-developers-considering-defold-for-making-a-game-what-kinds-of-games-do-you-think-defold-is-especially-well-suited-for-after-making-micromacro-downtown-detective&quot;&gt;What advice would you give to developers considering Defold for making a game? What kinds of games do you think Defold is especially well suited for after making MicroMacro: Downtown Detective?&lt;/h5&gt;

&lt;p&gt;I’d really encourage looking closely at which engine fits the specific game you’re planning, including alternatives that might not be the obvious first choice, and making that decision independent of what’s currently fashionable in the market. For us, it was clear early on that dynamically loading and rendering a huge, multi-scale city map would be the core technical challenge, so we built proof-of-concept versions in a few different engines and compared performance directly, which also gave us a first feel for what day-to-day development would be like in each.&lt;/p&gt;

&lt;p&gt;In conversations with other developers, I keep noticing that Defold still isn’t very well known. It’s probably not the first choice for huge 3D AAA projects any time soon, but for more modestly scoped games, it’s certainly worth putting on the list, and for mobile games specifically, the performance really stood out, especially on older devices.&lt;/p&gt;

&lt;h5 id=&quot;you-mentioned-that-you-built-proof-of-concept-versions-in-several-engines-before-choosing-defold-what-exactly-did-you-test-or-what-results-made-defold-stand-out-were-there-any-measurable-differences-between-the-prototypes&quot;&gt;You mentioned that you built proof-of-concept versions in several engines before choosing Defold. What exactly did you test, or what results made Defold stand out? Were there any measurable differences between the prototypes?&lt;/h5&gt;

&lt;p&gt;We tested a handful of core metrics across all the prototypes: initial loading time (from opening the map to the first view being fully loaded), tile processing time (how long it takes for a tile to fully load once it enters the visible area), time to a full view after zooming or panning, frame rate and how consistent it stayed, and memory footprint. We ran all of this on high-end, mid-range, and older, low-end devices too, I generally like testing a bit below our actual target spec, and we also paid attention to perceived speed and smoothness, plus how the development experience itself felt in each engine.&lt;/p&gt;

&lt;p&gt;With Defold, the implementation turned out to be surprisingly straightforward, including the dynamic tile loading. Initial load time was great, and the per-tile timings and full-view-after-interaction times were solid too. But what mattered most was that it just felt noticeably snappier to users, especially on older, less powerful hardware. Looking ahead to building the whole game on top of that, the decision was an easy one.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“What mattered most was that it just felt noticeably snappier to users, especially on older, less powerful hardware.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;and-finally-what-are-your-future-plans-that-you-can-share-and-how-can-we-follow-your-progress-and-next-games&quot;&gt;And finally, what are your future plans that you can share and how can we follow your progress and next games?&lt;/h5&gt;

&lt;p&gt;Next up is the second expansion pack for &lt;em&gt;Downtown Detective&lt;/em&gt;, which will finally complete the nine city districts we’ve been hinting at, we’re hoping to release that by the end of the year.&lt;/p&gt;

&lt;p&gt;After that comes the Steam version, which we think will open the game up to a good chunk of players who’d otherwise never have touched it on mobile.&lt;/p&gt;

&lt;p&gt;Beyond that, we’ve just started early work on a next title in the series, built around a new, or heavily reworked, core mechanic. It’s still some way off, but it’s something we’re really excited about.&lt;/p&gt;

&lt;p&gt;To stay up to date with any news and upcoming games:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Join the &lt;a href=&quot;https://discord.com/invite/448xjpajfh&quot;&gt;MicroMacro Discord&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://store.steampowered.com/app/4543500/MicroMacro_Downtown_Detective/&quot;&gt;Wishlist the game on Steam&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Follow &lt;a href=&quot;https://www.instagram.com/micromacro_game/&quot;&gt;MicroMacro on Instagram&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-and-we-wish-you-tremendous-success-with-micromacro-downtown-detective-and-your-future-games&quot;&gt;Thank you very much for the interview, and we wish you tremendous success with MicroMacro: Downtown Detective and your future games!&lt;/h5&gt;
</description>
			<pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/07/30/Creator-Spotlight-Felix-Weiler/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/07/30/Creator-Spotlight-Felix-Weiler/</guid>
		</item>
		
		<item>
			<title>Defold Newsletter June 2026</title>
			<description>&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/thumbnail.webp&quot; alt=&quot;Defold Newsletter June 2026&quot; /&gt;&lt;/p&gt;

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

&lt;p&gt;It’s been a long time!&lt;/p&gt;

&lt;p&gt;The beta of the currently released Defold 1.13.0 was longer than usual because it was a bigger one with spring cleanup. And it also comes with great features! Check out our progress in the first half of 2026! If you have something you wish to share, please 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/3g2xillke4lpfe.html?t=1782885697731&quot;&gt;Read the formatted newsletter here&lt;/a&gt; or read its content below:&lt;/p&gt;

&lt;h2 id=&quot;wavedash-now-supports-defold&quot;&gt;&lt;a href=&quot;https://forum.defold.com/t/wavedash-joins-the-defold-foundation-as-a-bronze-partner/82869&quot;&gt;Wavedash now supports Defold&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/wavedash.webp&quot; alt=&quot;Wavedash now supports Defold&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We’re very happy to announce that Wavedash joins us as a Bronze partner! Wavedash is a website with free and paid premium web games, and we now have a Defold native extension for &lt;a href=&quot;https://defold.com/assets/wavedash/&quot;&gt;Wavedash SDK&lt;/a&gt;, check out the details here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/wavedash-joins-the-defold-foundation-as-a-bronze-partner/82869&quot;&gt;Read the announcement post&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;summary-of-the-first-half-of-2026&quot;&gt;&lt;a href=&quot;https://defold.com/2026/06/30/Defold-H1-2026/&quot;&gt;Summary of the first half of 2026&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/summary.webp&quot; alt=&quot;Summary of the first half of 2026&quot; /&gt;&lt;/p&gt;

&lt;p&gt;We invite you to read the summary of the recent 1.12.x and 1.13.0 releases that marked half of the year of work on Defold to make it a better engine:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/2026/06/30/Defold-H1-2026/&quot;&gt;Read our mid-year summary&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;gamedevjs-jam-2026-results&quot;&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-x-gamedev-js-jam-2026/82563/61&quot;&gt;GamedevJS Jam 2026 results&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;A total of 495 games were submitted, of which 17 were made with Defold! We have awarded 10 best games made with Defold, check the results here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-x-gamedev-js-jam-2026/82563/61&quot;&gt;Check all games made with Defold on GamedevJS Jam 2026&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;div class=&quot;newsletter-media-list&quot;&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.circlup.app&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/circlup.webp&quot; alt=&quot;Circlup&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.circlup.app&quot;&gt;Circlup&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;&lt;em&gt;by Son of a Byte&lt;/em&gt;&lt;/p&gt;
			&lt;p&gt;Minimalist experience where the primary task is to complete a circle across 50 unique challenges, now out:&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.circlup.app&quot;&gt;Free on Google Play&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://apps.apple.com/us/app/blocks-away-escape-puzzle/id6763660455&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/blocks_away.webp&quot; alt=&quot;Blocks Away&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://apps.apple.com/us/app/blocks-away-escape-puzzle/id6763660455&quot;&gt;Blocks Away&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;&lt;em&gt;by Denis Mikhaylov&lt;/em&gt;&lt;/p&gt;
			&lt;p&gt;Satisfying minimalist puzzle game where you tap the blocks to remove them from the board, play for free on mobile:&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;https://apps.apple.com/us/app/blocks-away-escape-puzzle/id6763660455&quot;&gt;Free on App Store&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://on.itch.io/ona&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/ona.webp&quot; alt=&quot;ONA&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://on.itch.io/ona&quot;&gt;ONA&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;&lt;em&gt;by on&lt;/em&gt;&lt;/p&gt;
			&lt;p&gt;Neon shapeshifting game made for Spark Game Jam 2026, where the player changes shape to overcome obstacles:&lt;/p&gt;
			&lt;p&gt;&lt;a href=&quot;https://on.itch.io/ona&quot;&gt;Play for free on itch.io&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;

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

&lt;div class=&quot;newsletter-media-list&quot;&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://forum.defold.com/t/fmod-extension-for-defold-now-official/82973&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/fmod.webp&quot; alt=&quot;FMOD official Defold extension&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://forum.defold.com/t/fmod-extension-for-defold-now-official/82973&quot;&gt;FMOD official Defold extension&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;Over the past year we&apos;ve maintained and updated the community library for FMOD to make it official now&lt;/p&gt;
			&lt;p&gt;&lt;em&gt;by Defold Foundation&lt;/em&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://forum.defold.com/t/firebase-crashlytics-for-defold/82884&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/firebase.webp&quot; alt=&quot;Firebase Crashlytics Defold extension&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://forum.defold.com/t/firebase-crashlytics-for-defold/82884&quot;&gt;Firebase Crashlytics Defold extension&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;Powerful extension for reporting native crashes on Android, iOS, and macOS is now available for Defold&lt;/p&gt;
			&lt;p&gt;&lt;em&gt;by Defold Foundation&lt;/em&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://forum.defold.com/t/spriteloop-defold-extension-development-log/82835&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/sprite_loop.webp&quot; alt=&quot;Sprite Loop&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://forum.defold.com/t/spriteloop-defold-extension-development-log/82835&quot;&gt;Sprite Loop&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;Free lightweight 2D cut-out animation tool for games with a Defold native extension and Editor component support&lt;/p&gt;
			&lt;p&gt;&lt;em&gt;by Balkan Ram Games&lt;/em&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://forum.defold.com/t/defold-fake-real-glass/82734&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/glass.webp&quot; alt=&quot;Defold Fake Real Glass&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-fake-real-glass/82734&quot;&gt;Defold Fake Real Glass&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;Multipass glass effect shader and rendering pipeline for Defold with different glass material properties&lt;/p&gt;
			&lt;p&gt;&lt;em&gt;by Paweł Jarosz&lt;/em&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;

&lt;h5 id=&quot;defold-xoshiro-256&quot;&gt;&lt;a href=&quot;https://defold.com/assets/xoshiro256/&quot;&gt;Defold Xoshiro 256&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;A fast, high-quality procedural random number generator&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Glorius Silver&lt;/em&gt;&lt;/p&gt;

&lt;h5 id=&quot;defold-vscode-kit&quot;&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-kit-visual-studio-code-extension/74119/75&quot;&gt;Defold VSCode Kit&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;Using Defold Kit you can now e.g. build or hot reload from VSCode&lt;/p&gt;

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

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

&lt;h5 id=&quot;power-fantasies---interview-with-alex-from-8bitskull-on-skull-horde-and-more&quot;&gt;&lt;a href=&quot;https://defold.com/2026/05/15/8BitSkull-Skull-Horde-Interview/&quot;&gt;Power Fantasies - interview with Alex from 8BitSkull on Skull Horde and more&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;How is it to release 4 games and still run a sustainable game studio?&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Defold Foundation&lt;/em&gt;&lt;/p&gt;

&lt;h5 id=&quot;building-mad-skills-motocross-2-for-poki-with-defold&quot;&gt;&lt;a href=&quot;https://defold.com/2026/06/02/Mad-Skills-Motocross-2/&quot;&gt;Building Mad Skills Motocross 2 for Poki with Defold&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;In this Creator Spotlight interview we discuss about porting MSM2 to web.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Defold Foundation&lt;/em&gt;&lt;/p&gt;

&lt;h5 id=&quot;best-practices-for-web-games-development&quot;&gt;&lt;a href=&quot;https://defold.com/2026/06/02/Best-practices-when-building-for-the-web/&quot;&gt;Best Practices for Web Games Development&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;Practical, useful article for anyone targeting web and HTML5 distribution.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Defold Foundation&lt;/em&gt;&lt;/p&gt;

&lt;h5 id=&quot;post-mortem-inforgraphic-for-perfect1---a-jam-winner-game&quot;&gt;&lt;a href=&quot;https://forum.defold.com/t/perfect-1/81394/12&quot;&gt;Post-mortem inforgraphic for Perfect+1 - a jam winner game&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;A nice article in a form of an infographic for a well designed puzzle game&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by Hell Hog Games&lt;/em&gt;&lt;/p&gt;

&lt;h5 id=&quot;playgama-web-games-industry-market-map-2026&quot;&gt;&lt;a href=&quot;https://wiki.playgama.com/playgama/articles/introducing-the-web-games-industry-market-map-2026&quot;&gt;Playgama Web Games Industry Market Map 2026&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;A great read for anyone following the web games market.&lt;/p&gt;

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

&lt;h5 id=&quot;deep-dive-into-green-game-jam-with-bounce-ball&quot;&gt;&lt;a href=&quot;https://www.linkedin.com/pulse/deep-dive-green-game-jamt-george-zarkua-xmwqf/&quot;&gt;Deep Dive into Green Game Jam with Bounce Ball&lt;/a&gt;&lt;/h5&gt;

&lt;p&gt;Learn how it helped improving monetization, increasing revenue by 32%&lt;/p&gt;

&lt;p&gt;&lt;em&gt;by George Zarkua&lt;/em&gt;&lt;/p&gt;

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

&lt;div class=&quot;newsletter-media-list&quot;&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://www.youtube.com/watch?v=CyaWaNil50o&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/yt_gamefromscratch.webp&quot; alt=&quot;New look at Defold&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=CyaWaNil50o&quot;&gt;New look at Defold&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;&lt;em&gt;by Game From Scratch&lt;/em&gt;&lt;/p&gt;
			&lt;p&gt;Mike is looking at new 3D features in Defold and presenting it from scratch&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://www.youtube.com/watch?v=2VWFJS42XHg&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/yt_asatte.webp&quot; alt=&quot;Complete Tutorial&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=2VWFJS42XHg&quot;&gt;Complete Tutorial&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;&lt;em&gt;by Asatte Games&lt;/em&gt;&lt;/p&gt;
			&lt;p&gt;Learn how to build a complete incremental game in Defold&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
	&lt;div class=&quot;newsletter-media-item&quot;&gt;
		&lt;a href=&quot;https://www.youtube.com/watch?v=Jm-3fLr7AqE&quot;&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/yt_comparison.webp&quot; alt=&quot;Comparison&quot; /&gt;&lt;/a&gt;
		&lt;div class=&quot;newsletter-media-copy&quot;&gt;
			&lt;h5&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Jm-3fLr7AqE&quot;&gt;Comparison&lt;/a&gt;&lt;/h5&gt;
			&lt;p&gt;&lt;em&gt;by Paperclick&lt;/em&gt;&lt;/p&gt;
			&lt;p&gt;A straightforward and simple comparison of 3 game engines&lt;/p&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&quot;defold-1130-has-been-released&quot;&gt;&lt;a href=&quot;https://defold.com/2026/06/22/Defold-1-13-0/&quot;&gt;Defold 1.13.0 has been released&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/newsletter-june-2026/defold_1_13_0.webp&quot; alt=&quot;Defold 1.13.0 has been released&quot; /&gt;&lt;/p&gt;

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

&lt;ul&gt;
  &lt;li&gt;💪 Morph target support for model components&lt;/li&gt;
  &lt;li&gt;🧲 Expanded Box2D scripting, including joints&lt;/li&gt;
  &lt;li&gt;📹 Camera preview overlay in the Scene View&lt;/li&gt;
  &lt;li&gt;💨 Frustum culling for Particle FX&lt;/li&gt;
  &lt;li&gt;📱 Vulkan as the default graphics API on Android&lt;/li&gt;
  &lt;li&gt;🎨 New material and compute script modules&lt;/li&gt;
  &lt;li&gt;⚙️ Runtime graphics adapter and feature inspection&lt;/li&gt;
  &lt;li&gt;🤖 New authenticated editor /eval endpoint for automation workflows&lt;/li&gt;
  &lt;li&gt;🧹 Cleanup of legacy APIs and formats, fixes and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://defold.com/2026/06/22/Defold-1-13-0/&quot;&gt;CHECK THE RELEASE ANNOUNCEMENT&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. Received donations will be used to pay for the native extension build servers. The Defold native extension build servers are provided completely free of charge to all.&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>Wed, 01 Jul 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/07/01/Newsletter-June-2026/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/07/01/Newsletter-June-2026/</guid>
		</item>
		
		<item>
			<title>Defold in the middle of 2026 - a summary</title>
			<description>&lt;h1 id=&quot;defold---summary-of-the-first-half-of-2026&quot;&gt;Defold - summary of the first half of 2026&lt;/h1&gt;

&lt;p&gt;The first half of 2026 has been an important period for Defold. Across five releases in the 1.12 series - &lt;a href=&quot;/2026/01/12/Defold-1-12-0/&quot;&gt;1.12.0&lt;/a&gt;, &lt;a href=&quot;/2026/02/04/Defold-1-12-1/&quot;&gt;1.12.1&lt;/a&gt;, &lt;a href=&quot;/2026/03/02/Defold-1-12-2/&quot;&gt;1.12.2&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/defold-1-12-3-has-been-released/82619&quot;&gt;1.12.3&lt;/a&gt;, and &lt;a href=&quot;/2026/05/04/Defold-1-12-4/&quot;&gt;1.12.4&lt;/a&gt; - we continued improving the engine, editor, web runtime, rendering pipeline, 3D workflows, extensions, examples, and documentation. The period ends with &lt;a href=&quot;https://forum.defold.com/t/defold-1-13-0-has-been-released/82980/12&quot;&gt;Defold 1.13.0&lt;/a&gt;, one of the larger modernization releases. It brings, among other things, new Box2D scripting APIs, &lt;a href=&quot;/manuals/model-animation/#morph-targets&quot;&gt;Morph Targets support for 3D models&lt;/a&gt;, rendering improvements, and a broad removal of deprecated APIs.&lt;/p&gt;

&lt;p&gt;Earlier this year, in &lt;a href=&quot;/2026/02/10/Defold-A-look-ahead-for-2026/&quot;&gt;A look ahead for 2026&lt;/a&gt;, we outlined several priorities: better editor workflows, improved editor performance, more 3D work, richer animation support, rendering improvements, extension updates, and more tutorials and examples. Looking back at the first half of the year, many of those plans have already turned into concrete releases, and we are very glad to see that progress.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/editor.webp&quot; alt=&quot;editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Defold Editor is now optimized for big 3D scenes, has a camera preview, a new breakpoints tab, and more!&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;a-better-foundation-for-game-logic-control&quot;&gt;A better foundation for game logic control&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;/2026/01/12/Defold-1-12-0/&quot;&gt;Defold 1.12.0&lt;/a&gt; started the year with a change that affects how developers structure gameplay code: the update lifecycle was clarified and extended with the new &lt;a href=&quot;/manuals/application-lifecycle/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update()&lt;/code&gt;&lt;/a&gt; function.&lt;/p&gt;

&lt;p&gt;The new order is like this:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;fixed_update()&lt;/code&gt; runs first as many times as needed to ensure a fixed timestep;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;update()&lt;/code&gt; runs once per frame;&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update()&lt;/code&gt; runs after regular update logic and before rendering.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/application-lifecycle.webp&quot; alt=&quot;application_lifecycle&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Messages are also flushed between each update phase, which gives developers more predictable control.&lt;/p&gt;

&lt;p&gt;This is especially useful in projects where gameplay and presentation should not always happen in the same step. A common pattern is to update game logic first, then update visuals, camera, UI indicators, or other dependent systems. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;late_update()&lt;/code&gt; gives Defold projects a cleaner place for that kind of work. Check out more details in the updated &lt;a href=&quot;/manuals/application-lifecycle/&quot;&gt;Application Lifecycle manual&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;pause-when-idle---engine-throttling&quot;&gt;Pause when idle - engine throttling&lt;/h2&gt;

&lt;p&gt;Defold 1.12.0 also introduced a new &lt;a href=&quot;/ref/sys-lua/#sys.set_engine_throttle:enable-cooldown&quot;&gt;engine throttling API&lt;/a&gt;. It allows a game to temporarily skip full engine updates and rendering while still listening for input. As soon as input is detected, the engine wakes up again for a configurable cooldown period, after which it can return to the throttled state automatically. So instead of rendering and updating continuously when nothing is happening, Defold can now reduce work until the player interacts again.&lt;/p&gt;

&lt;p&gt;This is especially useful for games and applications that spend time in mostly static states: menus, idle screens, turn-based games, puzzle games waiting for player input, and battery-sensitive mobile or other portable devices.&lt;/p&gt;

&lt;h2 id=&quot;a-major-step-for-box2d-physics-scripting&quot;&gt;A major step for Box2D physics scripting&lt;/h2&gt;

&lt;p&gt;One of the most exciting parts of Defold 1.13.0 is the expanded &lt;a href=&quot;/ref/stable/b2d-lua/&quot;&gt;Box2D scripting API&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Defold had always included strong &lt;a href=&quot;/manuals/physics/&quot;&gt;physics support&lt;/a&gt;, but the new Box2D scripting functions give developers much more direct control from Lua. The release adds joint creation, inspection, destruction, body/shape access, fixture and shape manipulation, mass data access, sensor changes, filter updates, AABB queries, joint limits, motors, spring settings, damping, reaction forces, torque, and more. This is powerful because it opens up a wider class of physics-driven gameplay without requiring native code.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/h1-2026/box2d.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Box2D scripting unlocks many possibilities - check, for example, &lt;a href=&quot;/examples/physics/box2d_material_tuning/&quot;&gt;the tuning example&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;With the new APIs, developers can more easily build things like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;ropes, chains, bridges, cranes, vehicles, and mechanical contraptions;&lt;/li&gt;
  &lt;li&gt;grappling hooks and swinging mechanics;&lt;/li&gt;
  &lt;li&gt;destructible or reconfigurable physics structures;&lt;/li&gt;
  &lt;li&gt;physics puzzles with dynamic joints and constraints;&lt;/li&gt;
  &lt;li&gt;runtime-generated bodies and fixtures;&lt;/li&gt;
  &lt;li&gt;vehicles with wheels, suspension, motors, and limits;&lt;/li&gt;
  &lt;li&gt;tools and debug views that inspect physics state directly from Lua.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The added support covers both Box2D v2 and Box2D v3 APIs. The &lt;a href=&quot;/manuals/physics-joints/&quot;&gt;Physics joints manual&lt;/a&gt; and examples such as &lt;a href=&quot;/examples/physics/box2d_mouse_joint/&quot;&gt;Box2D Mouse Joint&lt;/a&gt;, &lt;a href=&quot;/examples/physics/box2d_motor_joint/&quot;&gt;Box2D Motor Joint&lt;/a&gt;, &lt;a href=&quot;/examples/physics/box2d_revolute_bridge/&quot;&gt;Box2D Revolute Bridge&lt;/a&gt;, and &lt;a href=&quot;/examples/physics/box2d_chain_terrain/&quot;&gt;Box2D Chain Terrain&lt;/a&gt; are good starting points.&lt;/p&gt;

&lt;h2 id=&quot;morph-targets-aka-blend-shapes-for-3d-animation&quot;&gt;Morph Targets, aka Blend Shapes, for 3D animation&lt;/h2&gt;

&lt;p&gt;Another major 1.13.0 feature is support for &lt;a href=&quot;/manuals/model-animation/#morph-targets&quot;&gt;Morph Targets, also known as Blend Shapes&lt;/a&gt;, in &lt;a href=&quot;/manuals/model/&quot;&gt;3D model components&lt;/a&gt;.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/morph-targets-2.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Animation and manual control of weights in Defold with the &lt;a href=&quot;https://www.cgtrader.com/free-3d-models/character/woman/aria-blake-game-ready&quot;&gt;Aria Blake model&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This makes it possible to animate model shapes directly, which might be used for facial expressions, mouth movement, muscle deformation, soft-body-like effects, shape transitions, damage states, character customization, and many other effects that are awkward or impossible to express with skeletal animation alone. With morph target support, Defold’s &lt;a href=&quot;/manuals/importing-models/&quot;&gt;glTF pipeline&lt;/a&gt; becomes more useful for expressive 3D characters and animation-heavy 3D projects.&lt;/p&gt;

&lt;p&gt;It is part of a broader 3D cleanup. Defold 1.13.0 also removed Collada support and committed to glTF as the modern 3D asset format. This lets us focus our effort on the pipeline that matters most today instead of maintaining older and unsupported solutions. The release also fixed model transform inconsistencies between editor and runtime for imported glTF assets, making 3D behavior more predictable.&lt;/p&gt;

&lt;p&gt;There is still more work ahead, but morph targets are a meaningful milestone for Defold’s 3D future. You can try this today in the &lt;a href=&quot;/examples/model/morph-target/&quot;&gt;Morph Target Animation&lt;/a&gt; and &lt;a href=&quot;/examples/model/morph-target-weights/&quot;&gt;Morph Target Weights&lt;/a&gt; examples and read the &lt;a href=&quot;/manuals/model-animation/#morph-targets&quot;&gt;Morph Targets manual&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;better-camera-component&quot;&gt;Better Camera component&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;/manuals/camera/&quot;&gt;Camera&lt;/a&gt; has come a long way toward becoming a more useful component, and the &lt;a href=&quot;/ref/camera/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera&lt;/code&gt; API&lt;/a&gt; has grown. In the editor, the camera shows the active projection frustum and its representation is scaled properly.&lt;/p&gt;

&lt;p&gt;Defold 1.12.0 added camera conversion helpers such as &lt;a href=&quot;/ref/camera/#camera.world_to_screen&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera.world_to_screen()&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;/ref/camera/#camera.screen_to_world&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera.screen_to_world()&lt;/code&gt;&lt;/a&gt;, making it easier to connect world-space gameplay with screen-space UI or mouse/touch input. See also the &lt;a href=&quot;/examples/render/world_to_screen/&quot;&gt;World to Screen&lt;/a&gt; and &lt;a href=&quot;/examples/render/screen_to_world/&quot;&gt;Screen to World&lt;/a&gt; examples.&lt;/p&gt;

&lt;p&gt;We also have adaptive zoom - the orthographic camera can now be adjusted even when using Fit or Cover mode, and the new &lt;a href=&quot;/ref/camera/#camera.get_orthographic_auto_zoom:camera&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camera.get_orthographic_auto_zoom()&lt;/code&gt;&lt;/a&gt; function and read-only &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;orthographic_auto_zoom&lt;/code&gt; property were added. Because the camera is now selected with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;render.set_camera()&lt;/code&gt; in the render script, there is no need to acquire and release camera focus, and those functions, which had already been deprecated, have now been removed.&lt;/p&gt;

&lt;p&gt;Since 1.13.0, you can also preview what a selected camera sees directly in the Editor. This makes it easier to set up the scene or set the correct camera position and orientation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/releases/defold-1-13-0/camera-preview.webp&quot; alt=&quot;Selected camera preview in Scene View&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Camera preview directly in the Defold editor will help you create scenes and adjust camera position and orientation.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;going-international---font-shaping-and-collections&quot;&gt;Going international - font shaping and collections&lt;/h2&gt;

&lt;p&gt;Besides the &lt;a href=&quot;/manuals/editor/#editor-language&quot;&gt;Editor&lt;/a&gt; and the documentation being translated to other languages like Chinese, Portuguese, and Russian, the engine has also supported &lt;a href=&quot;/manuals/font/&quot;&gt;runtime text shaping and font collections&lt;/a&gt; since 1.12.0. This improves how Defold handles more advanced text layout cases, including proper kerning pairs, ligatures, and right-to-left text. It is an important step for localization, especially for games targeting languages and scripts where basic left-to-right character placement is not enough.&lt;/p&gt;

&lt;p&gt;The new workflow allows developers to associate multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.ttf&lt;/code&gt; files with a single font resource and load only the fonts needed for a given language. It also supports prewarming text so required glyphs can be generated before they are shown on screen, which makes runtime-generated fonts more practical for multilingual games.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/rtl.webp&quot; alt=&quot;font_rtl&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Right-to-left languages are now supported out of the box - check the &lt;a href=&quot;/examples/gui/localization/&quot;&gt;localization example&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;web-games&quot;&gt;Web games&lt;/h2&gt;

&lt;p&gt;Web remains one of Defold’s strongest areas. In &lt;a href=&quot;/2026/05/04/Defold-1-12-4/&quot;&gt;Defold 1.12.4&lt;/a&gt;, an empty HTML5 project was reduced to around &lt;strong&gt;1.06 MB&lt;/strong&gt;. We track &lt;a href=&quot;https://github.com/defold/build-size&quot;&gt;size changes&lt;/a&gt; carefully to keep Defold as slim as possible. For browser games, this is not just a nice technical detail. It directly affects loading time, conversion from visit to play, player retention, and the ability to reach users on a wide range of devices.&lt;/p&gt;

&lt;p&gt;We also continued cleaning up the web runtime. Unsupported and unused web functionality was removed, and with 1.13.0, Defold fully commits to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wasm-web&lt;/code&gt; and removes the old &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;asm.js&lt;/code&gt; target. WebAssembly is the modern and widely supported target for web games, and this lets Defold focus on one stronger, cleaner web path.&lt;/p&gt;

&lt;p&gt;We also saw more real-world examples of Defold being used for web-first development, so we encourage you to read:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/03/12/Interview-Fingersoft/&quot;&gt;Fingersoft brought Hill Climb Racing Lite to Poki with Defold&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/04/02/Creator-Spotlight-Orenji-Spark/&quot;&gt;Orenji Spark rebuilt Jane’s Fashion Studio from Unity to Defold&lt;/a&gt;,&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/06/02/Mad-Skills-Motocross-2/&quot;&gt;Refold Games rebuilt Mad Skills Motocross 2 for Poki&lt;/a&gt; with Defold, using dynamic meshes and custom physics,&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/06/02/Best-practices-when-building-for-the-web/&quot;&gt;Best practices when building for the web&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are making web games - &lt;a href=&quot;https://developers.poki.com/guide/web-game-engines&quot;&gt;Defold is a great fit&lt;/a&gt;!&lt;/p&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;&lt;a href=&quot;https://poki.com/en/g/hill-climb-racing-lite&quot;&gt;Hill Climb Racing Lite&lt;/a&gt; by Fingersoft in the Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;mobile-games&quot;&gt;Mobile games&lt;/h2&gt;

&lt;p&gt;We care about all supported platforms and keep the SDKs updated. For example, besides engine throttling, Safe Area support for Android and iOS phones is now available in the engine out of the box, and you can control how the GUI respects it.&lt;/p&gt;

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

&lt;p&gt;We’ve also released an &lt;a href=&quot;https://forum.defold.com/t/firebase-crashlytics-for-defold/82884&quot;&gt;official Firebase Crashlytics extension for Defold&lt;/a&gt; that might be useful if you want better crash reporting in your Defold Android, iOS, and macOS projects. Besides that, we’ve updated many other official extensions, which we’ll mention below.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/crashlytics.webp&quot; alt=&quot;Firebase Crashlytics for Defold&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;live-update&quot;&gt;Live Update&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;/manuals/live-update/&quot;&gt;Live Update&lt;/a&gt; also moved forward. In 1.12.4, legacy Live Update APIs were deprecated, and in 1.13.0, the old auto-mount feature and the old Live Update archive format were removed. The recommended path is now clearer: use &lt;a href=&quot;/ref/liveupdate/#liveupdate.add_mount&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;liveupdate.add_mount()&lt;/code&gt;&lt;/a&gt; and mount zip archives or folders explicitly.&lt;/p&gt;

&lt;p&gt;The new direction gives developers more control over what is mounted, when it is mounted, and how content is prioritized. Developers can keep the first download small, get players into the game quickly, and then download additional content.&lt;/p&gt;

&lt;p&gt;Live Update archives can also be mounted from Android assets, which is useful for asset delivery strategies, and can be added to the Android bundle either through bundle resources or as an install-time &lt;a href=&quot;https://forum.defold.com/t/android-play-asset-delivery/82174&quot;&gt;Play Asset Delivery&lt;/a&gt; pack.&lt;/p&gt;

&lt;h2 id=&quot;sounds-good&quot;&gt;Sounds good&lt;/h2&gt;

&lt;p&gt;While sound streaming already existed in 2025, this year we’ve pushed sound forward as well and introduced a new AVAudio backend for iOS/macOS, replacing the deprecated OpenAL backend.&lt;/p&gt;

&lt;p&gt;In 1.12.1, we added Windows sound device recovery and improved how raw sounds are handled in the editor by wrapping them as embedded sound components.&lt;/p&gt;

&lt;p&gt;In 1.12.4, we improved the internal sound buffers so they can grow dynamically, fixing crashes with high sample rates or high playback speed, increasing the maximum speed limit from 5 to 50, and adding a new Sound System section to the profiler.&lt;/p&gt;

&lt;p&gt;Finally, we’ve also released the &lt;a href=&quot;https://forum.defold.com/t/fmod-extension-for-defold-now-official/82973&quot;&gt;official FMOD extension for Defold&lt;/a&gt;, which gives users with more advanced sound system requirements the capabilities they need for their sound design.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/fmod.webp&quot; alt=&quot;Defold FMOD official extension&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;rendering-and-graphics-keep-moving-forward&quot;&gt;Rendering and graphics keep moving forward&lt;/h2&gt;

&lt;p&gt;In 1.12.2, model components gained &lt;a href=&quot;/manuals/material/#setting-custom-vertex-attribute-data&quot;&gt;custom vertex attribute data&lt;/a&gt; support, allowing developers to set and animate model attributes from Lua. 1.12.3 exposed time to shaders and added a &lt;a href=&quot;/manuals/material/#attributes&quot;&gt;Texture Transform semantic&lt;/a&gt;, which made examples such as &lt;a href=&quot;/examples/sprite/texture_scrolling/&quot;&gt;texture scrolling&lt;/a&gt; or &lt;a href=&quot;/examples/material/billboarding/&quot;&gt;true billboarding&lt;/a&gt; easier and cleaner.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/h1-2026/billboarding.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Check out the &lt;a href=&quot;/examples/material/billboarding/&quot;&gt;billboarding example&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Defold 1.12.4 added shader precision options and increased texture units per draw from 8 to 16. This gives developers more room for complex materials and multi-texture effects, especially in 3D or advanced 2D rendering pipelines.&lt;/p&gt;

&lt;p&gt;With 1.13.0, &lt;a href=&quot;https://www.vulkan.org/&quot;&gt;Vulkan&lt;/a&gt; is the default graphics API on Android, with OpenGL available as fallback. This release also improved and expanded blending options and added more &lt;a href=&quot;/manuals/material/#vertex-and-fragment-constants&quot;&gt;shader constants&lt;/a&gt;, including commonly used inverse matrix variants. New &lt;a href=&quot;/ref/graphics/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;graphics&lt;/code&gt;&lt;/a&gt; script functions expose information about the active graphics adapter and supported features. This allows game code and render scripts to make better decisions based on the current device and backend. It is especially useful for cross-platform games where rendering features may need to adapt between desktop, mobile, and web. New &lt;a href=&quot;/ref/alpha/material/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;material&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;/ref/alpha/compute/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;compute&lt;/code&gt;&lt;/a&gt; script modules make it possible to inspect and update material and compute resources from Lua.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/manuals/particlefx/&quot;&gt;Particle FX components&lt;/a&gt; now support &lt;a href=&quot;/manuals/render/#frustum-culling&quot;&gt;frustum culling&lt;/a&gt;, which might give a boost for games with a lot of particle effects.&lt;/p&gt;

&lt;p&gt;Defold’s rendering system has always been flexible through &lt;a href=&quot;/manuals/render/&quot;&gt;render scripts&lt;/a&gt; and &lt;a href=&quot;/manuals/material/&quot;&gt;materials&lt;/a&gt;, but these changes expose more of that power to game code.&lt;/p&gt;

&lt;h2 id=&quot;cleaner-apis&quot;&gt;Cleaner APIs&lt;/h2&gt;

&lt;p&gt;Defold 1.13.0 also removed a large number of deprecated Lua APIs and old constants.&lt;/p&gt;

&lt;p&gt;This kind of cleanup can require migration work in older projects, but it is important for the long-term health of the engine. A small engine should also have a clean API. Removing deprecated functions, clarifying module boundaries, and consolidating graphics constants makes Defold easier to maintain, easier to document, and easier to teach.&lt;/p&gt;

&lt;p&gt;It also gives us a better foundation for future features.&lt;/p&gt;

&lt;h2 id=&quot;defold-editor-updates&quot;&gt;Defold Editor updates&lt;/h2&gt;

&lt;p&gt;Editor improvements were another major theme in the roadmap. Besides performance improvements, we also introduced many quality-of-life and user experience features, some of which were already mentioned above.&lt;/p&gt;

&lt;p&gt;First of all, we now have a long-awaited Free Fly camera mode in Scene View, introduced in 1.12.4 and enabled by holding the right mouse button or toggled with &lt;kbd&gt;Shift&lt;/kbd&gt; + &lt;kbd&gt;`&lt;/kbd&gt; (backtick). You can now freely fly or walk across your scenes. We also improved the camera and grid settings in the toolbar. This, plus the newest camera preview option and optimized performance for 3D, improves navigation and orientation when editing collections directly in the Editor.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/h1-2026/fly_camera.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Free Fly Camera mode in Defold Editor.&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Defold 1.12.0 added restoration of open editor tabs and improved runtime font workflows.&lt;/p&gt;

&lt;p&gt;Then, 1.12.1 improved the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Properties&lt;/code&gt; view and added a brand-new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Breakpoints&lt;/code&gt; tab, allowing you to quickly investigate and manage code breakpoints (including conditional ones) for quicker debugging. In this version, we also added a new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Dependencies&lt;/code&gt; category in the Assets panel to keep libraries separated from project files, allowed assets to be dragged into resource pickers, and improved large-project loading performance.&lt;/p&gt;

&lt;p&gt;Next, 1.12.2 improved the Asset Browser “New…” menu, tidying up our components, scripts, and other resources that can be created in Defold.&lt;/p&gt;

&lt;p&gt;You can now also open images directly in the editor.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/assets.webp&quot; alt=&quot;Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;A better organised &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;New...&lt;/code&gt; submenu (with Light components from the upcoming 1.13.1), PNG images opened directly in the editor, and the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Dependencies&lt;/code&gt; section separated from project files in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Assets&lt;/code&gt; pane&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Defold 1.12.3 brought the Script Structure side panel for code editing, and a new Properties API for &lt;a href=&quot;/manuals/editor-scripts/&quot;&gt;Editor Scripts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We also added &lt;a href=&quot;/manuals/editor-scripts-ui/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;editor.ui.image()&lt;/code&gt;&lt;/a&gt; for editor scripts, and this was immediately picked up by the community - Insality uses it to display thumbnails of browsed assets in the &lt;a href=&quot;https://forum.defold.com/t/defold-in-editor-asset-store/81969&quot;&gt;Asset Store&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/asset-store.webp&quot; alt=&quot;Defold Editor&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://forum.defold.com/t/defold-in-editor-asset-store/81969&quot;&gt;Asset Store by Insality&lt;/a&gt; uses images in custom editor UI. You can also notice a new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Structure&lt;/code&gt; pane for script content and a new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Breakpoints&lt;/code&gt; tab&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;In 1.12.4 we also improved camera controls, manipulator performance, and a glTF validator is now integrated into the asset pipeline.&lt;/p&gt;

&lt;p&gt;Defold Editor is becoming faster, more scriptable, more useful for 3D work, and more suitable for larger production projects.&lt;/p&gt;

&lt;h2 id=&quot;automated-and-custom-workflows&quot;&gt;Automated and custom workflows&lt;/h2&gt;

&lt;p&gt;We also improved the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/command/build&lt;/code&gt; endpoint, so external tools can know when a build has actually completed. In 1.12.3, we added OpenAPI support for the Editor HTTP Server, which makes the editor server easier to discover and use from external programs. In Defold 1.13.0, we introduced a new &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/eval&lt;/code&gt; endpoint for the editor server, which allows developers to design more automation systems. These features help users who want to incorporate agents into their workflow to close the loop, build more advanced toolchains, including local automation e.g. for testing, and create agentic systems that can inspect a project, run editor commands, evaluate small operations, trigger builds, and help developers with repetitive production tasks. We won’t be forcing AI-assisted workflows, but we’ll try to make development convenient and reliable for all users - those who want to use LLMs, and those who want to create custom automations.&lt;/p&gt;

&lt;p&gt;We want the editor to stay lightweight, but also become more customizable and easier to integrate into each team’s workflow. Instead of forcing every project into the same large editor pipeline, Defold should provide reliable extension points and allow further customizations and automations for game creation, and we will keep moving in this direction.&lt;/p&gt;

&lt;h2 id=&quot;extensions-continued-to-evolve&quot;&gt;Extensions continued to evolve&lt;/h2&gt;

&lt;p&gt;Extensions remain central to Defold’s design - we keep the engine lightweight, while powerful external integrations can be easily added to projects.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;/extension-rive/&quot;&gt;Rive extension&lt;/a&gt; got major updates, including a new data binding API, a Lua binding overhaul, generated documentation, async APIs, global listeners, Linux Vulkan backend support, and later Luau scripting support.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;/extension-spine/&quot;&gt;Spine extension&lt;/a&gt; received fixes and improvements for empty first frames, property options, indexed-buffer rendering, track alpha support, Linux ARM64 support, and deprecated API cleanup.&lt;/p&gt;

&lt;p&gt;Other official extensions also moved forward, including &lt;a href=&quot;/extension-admob/&quot;&gt;AdMob&lt;/a&gt;, &lt;a href=&quot;/extension-webview/&quot;&gt;WebView&lt;/a&gt;, &lt;a href=&quot;/extension-firebase-remoteconfig/&quot;&gt;Firebase Remote Config&lt;/a&gt;, &lt;a href=&quot;/extension-ironsource/&quot;&gt;IronSource&lt;/a&gt;, &lt;a href=&quot;/extension-push/&quot;&gt;Push&lt;/a&gt;, &lt;a href=&quot;/extension-websocket/&quot;&gt;WebSocket&lt;/a&gt;, and the mentioned FMOD and Firebase Crashlytics extensions.&lt;/p&gt;

&lt;p&gt;This extension work is important because many production games depend on ads, analytics, platform SDKs, animation runtimes, web views, remote configuration, push notifications, and platform-specific integrations. We believe that keeping these pieces moving alongside the engine is part of keeping &lt;a href=&quot;/product/&quot;&gt;Defold production-ready&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;new-defold-website-and-more-examples&quot;&gt;New Defold website and more examples&lt;/h2&gt;

&lt;p&gt;We refreshed the whole &lt;a href=&quot;https://defold.com/&quot;&gt;defold.com&lt;/a&gt; website, revamped many pages like &lt;a href=&quot;/assets/&quot;&gt;Asset Portal&lt;/a&gt;, &lt;a href=&quot;/showcase/&quot;&gt;Showcase&lt;/a&gt; with new games made with Defold, and especially the &lt;a href=&quot;/learn/&quot;&gt;Learn Hub&lt;/a&gt;, which is now meant to be a convenient starting point for anyone wanting to learn Defold.&lt;/p&gt;

&lt;p&gt;And we made some progress on the learning side. We continuously update old &lt;a href=&quot;/manuals/&quot;&gt;manuals&lt;/a&gt; and &lt;a href=&quot;/examples/&quot;&gt;examples&lt;/a&gt; and add new ones, e.g. &lt;a href=&quot;/examples/material/billboarding/&quot;&gt;Billboarding&lt;/a&gt;, &lt;a href=&quot;/examples/sprite/texture_scrolling/&quot;&gt;Texture Scrolling&lt;/a&gt;, &lt;a href=&quot;/examples/model/morph-target/&quot;&gt;Morph Target Animation&lt;/a&gt;, &lt;a href=&quot;/examples/model/morph-target-weights/&quot;&gt;Morph Target Weights&lt;/a&gt;, and many Box2D scripting examples.&lt;/p&gt;

&lt;p&gt;We also created and released the full &lt;a href=&quot;https://github.com/defold/sample-third-person-playground&quot;&gt;3D Third Person Playground sample Defold project&lt;/a&gt; with shadows, keyboard, touch and gamepad controls, and many useful game mechanics. It is also available directly from the Editor Samples.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/3rd-person.webp&quot; alt=&quot;3D playground&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://github.com/defold/sample-third-person-playground&quot;&gt;3D playground sample&lt;/a&gt; with shadows, multiple control options and base mechanics.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;We are updating old tutorials (e.g. the old Astronaut tutorial is now a broader &lt;a href=&quot;https://defold.com/tutorials/astronaut/&quot;&gt;top-down movement tutorial&lt;/a&gt;) and adding new ones. For example, we created a dedicated and comprehensive &lt;a href=&quot;/manuals/unity/&quot;&gt;Defold for Unity users&lt;/a&gt; guide for people coming from Unity.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/unity.webp&quot; alt=&quot;Defold for Unity users&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;We created a dedicated &lt;a href=&quot;/manuals/unity/&quot;&gt;Defold tutorial for Unity users&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id=&quot;astonishing-defold-community-achievements&quot;&gt;Astonishing Defold community achievements&lt;/h2&gt;

&lt;p&gt;We are also very happy that more and more games are being made with Defold and released on different platforms. Check out for example &lt;a href=&quot;https://store.steampowered.com/app/3199360/Skull_Horde/&quot;&gt;Skull Horde&lt;/a&gt;, &lt;a href=&quot;https://store.steampowered.com/app/2725340/Game_of_Fitna_Vol_1/&quot;&gt;Game of Fitna&lt;/a&gt;, &lt;a href=&quot;https://store.steampowered.com/app/4191250/Sprint_City/&quot;&gt;Sprint City&lt;/a&gt;, &lt;a href=&quot;https://poki.com/en/g/push-titans&quot;&gt;Push Titans&lt;/a&gt;, &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.breaktheforest.cardroguelike&quot;&gt;Break the Forest&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/knight-bolts-my-first-defold-game/82549&quot;&gt;Knight Bolts&lt;/a&gt;, &lt;a href=&quot;https://poki.com/en/g/cleanup-crew&quot;&gt;Clean-up Crew&lt;/a&gt;, &lt;a href=&quot;https://poki.com/en/g/janes-fashion-studio&quot;&gt;Jane’s Fashion Studio&lt;/a&gt;, or &lt;a href=&quot;https://store.steampowered.com/app/4153910/Throst/&quot;&gt;Throst&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/developer-spotlight-koen-bollen/sprint_city.gif&quot; alt=&quot;Skull Horde&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://store.steampowered.com/app/4191250/Sprint_City/&quot;&gt;Sprint City&lt;/a&gt; by Second Stage Studio, developers of Speedrunners, released in March 2026 in EA on Steam, made with Defold.&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;We also published several interviews with our community members and developers using Defold:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/02/17/Creator-Spotlight-Kuyi-Mobile/&quot;&gt;Creator Spotlight: Kuyi Mobile&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/2026/05/15/8BitSkull-Skull-Horde-Interview/&quot;&gt;Power Fantasies - 8BitSkull on Skull Horde and sustainable indie development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;and the interviews mentioned above with &lt;a href=&quot;/2026/06/02/Mad-Skills-Motocross-2/&quot;&gt;Refold on Mad Skills Motocross 2&lt;/a&gt;, &lt;a href=&quot;/2026/03/12/Interview-Fingersoft/&quot;&gt;Fingersoft on Hill Climb Racing Lite&lt;/a&gt;, or &lt;a href=&quot;/2026/04/02/Creator-Spotlight-Orenji-Spark/&quot;&gt;Orenji Spark on Jane’s Fashion Studio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The community continued to create useful learning material and tools as well. Asatte Games created a &lt;a href=&quot;https://www.youtube.com/watch?v=NNmQimMWmb8&amp;amp;list=PLkdj9mBu4LRbDraRO8anTeBTihpVcpIH6&quot;&gt;top-down island defense video tutorial series for Defold&lt;/a&gt;. Sam is creating a great 2D animation tool called &lt;a href=&quot;https://forum.defold.com/t/spriteloop-defold-extension-development-log/82835&quot;&gt;SpriteLoop&lt;/a&gt; with great integration for Defold. We have new assets like the &lt;a href=&quot;https://forum.defold.com/t/biplanar-mapping-shader/82475&quot;&gt;Biplanar Mapping Shader&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/defold-webp-decode-and-encode-external-webp-image-files/82515&quot;&gt;WebP native extension&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/defold-mic-microphone-input-extension/82575&quot;&gt;Defold Mic native extension&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/asobi-open-source-multiplayer-game-backend-for-defold/82612&quot;&gt;Asobi multiplayer backend&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/defdragon/82624&quot;&gt;DefDragon for DragonBones&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/live-unbundler-liveupdate-splitter-and-loader/82697&quot;&gt;Live Unbundler&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/random-number-generator-native-multi-algorithm-and-instance-based/74532&quot;&gt;Random Number Generator&lt;/a&gt;, and many more. Existing assets also received updates, including &lt;a href=&quot;https://forum.defold.com/t/defold-event-cross-context-defold-event-system/76165/15&quot;&gt;Defold Event with Queues and Promises&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/graph-pathfinder/81871/6&quot;&gt;Graph Pathfinder&lt;/a&gt;, &lt;a href=&quot;https://forum.defold.com/t/a-native-extension/60405/53&quot;&gt;Defold A* Pathfinding&lt;/a&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;DAABBCC&lt;/a&gt;, and &lt;a href=&quot;https://forum.defold.com/t/daabbcc3d-3d-aabb-collision-detection/79673/9&quot;&gt;DAABBCC3D&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are very proud of our community and very happy that improvements do not only come from Defold engine releases, but also from a community that builds tools, writes examples, shares experiments, publishes postmortems, and helps other developers build and ship their games.&lt;/p&gt;

&lt;h2 id=&quot;two-new-partnerships&quot;&gt;Two new partnerships&lt;/h2&gt;

&lt;p&gt;We are also very happy that 2026 brought two new important partnerships.&lt;/p&gt;

&lt;p&gt;First, &lt;a href=&quot;/2026/04/29/Indie-studio-8bitskull-partners-with-defold/&quot;&gt;8BitSkull joined the Defold Foundation as a corporate partner&lt;/a&gt;. 8BitSkull has used Defold for successful PC and console games such as &lt;a href=&quot;https://store.steampowered.com/app/895480/Fates_of_Ort/&quot;&gt;Fates of Ort&lt;/a&gt;, &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 &lt;a href=&quot;https://store.steampowered.com/app/3199360/Skull_Horde/&quot;&gt;Skull Horde&lt;/a&gt;. Their support is especially meaningful because it comes from a studio that has been using Defold in real commercial production for years, and we’re very happy that Defold was part of their success!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/interview-8bitskull/8bitskull_games.webp&quot; alt=&quot;8Bit Skull games&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://store.steampowered.com/app/895480/Fates_of_Ort/&quot;&gt;Fates of Ort&lt;/a&gt;, &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 &lt;a href=&quot;https://store.steampowered.com/app/3199360/Skull_Horde/&quot;&gt;Skull Horde&lt;/a&gt; by 8BitSkull&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Second, &lt;a href=&quot;/2026/06/01/Wavedash-joins-as-a-corporate-partner/&quot;&gt;Wavedash joined the Defold Foundation as a corporate partner&lt;/a&gt;. Wavedash is a browser-native gaming platform where players can discover, play, and share games instantly. Alongside the announcement, we’ve created an official &lt;a href=&quot;/assets/wavedash/&quot;&gt;Wavedash SDK integration for Defold&lt;/a&gt;, so you can start releasing your web games on Wavedash right away! The collaboration will focus on web performance improvements and tighter integrations with the Wavedash platform.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/h1-2026/wavedash.webp&quot; alt=&quot;Wavedash&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;&lt;a href=&quot;https://wavedash.com/&quot;&gt;Wavedash&lt;/a&gt;, a new browser-native games platform, partners with Defold to bring more games to the web&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Together, these partnerships reflect two important parts of Defold’s current position: a strong base of commercial indie developers, and growing recognition of Defold as one of the best engines for fast, lightweight, high-quality web games.&lt;/p&gt;

&lt;p&gt;We would also like to thank our existing corporate partners: &lt;a href=&quot;https://www.moonactive.com/&quot;&gt;MoonActive&lt;/a&gt;, &lt;a href=&quot;https://www.rive.app/&quot;&gt;Rive&lt;/a&gt;, &lt;a href=&quot;https://poki.com&quot;&gt;Poki&lt;/a&gt;, &lt;a href=&quot;https://heroiclabs.com/&quot;&gt;Heroic Labs&lt;/a&gt;, and &lt;a href=&quot;https://denda-corporate.com/&quot;&gt;Denda Games&lt;/a&gt; for their continued support, and all our contributors and donors helping Defold grow!&lt;/p&gt;

&lt;h2 id=&quot;a-strong-first-half-of-2026&quot;&gt;A strong first half of 2026&lt;/h2&gt;

&lt;p&gt;The first half of 2026 moved Defold forward in many ways.&lt;/p&gt;

&lt;p&gt;The engine became smaller and cleaner. The editor became faster and more capable, with advanced 3D workflows. Morph targets opened the door to more expressive 3D animation. Box2D scripting gave developers much deeper runtime control over physics. Rendering gained new low-level tools. Live Update became more explicit and predictable. Extensions continued to evolve. More examples, guides, games, and community tools appeared. And two new partnerships strengthened the ecosystem around the engine.&lt;/p&gt;

&lt;p&gt;There is still more to do, of course. But the direction described in the &lt;a href=&quot;/2026/02/10/Defold-A-look-ahead-for-2026/&quot;&gt;2026 roadmap&lt;/a&gt; is already visible in the releases.&lt;/p&gt;

&lt;p&gt;The second half of 2026 should be just as exciting. Stay tuned!&lt;/p&gt;
</description>
			<pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/06/30/Defold-H1-2026/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/06/30/Defold-H1-2026/</guid>
		</item>
		
		<item>
			<title>Defold release 1.13.0</title>
			<description>&lt;p&gt;&lt;img src=&quot;/images/posts/releases/defold-1-13-0/defold_1_13_0.webp&quot; alt=&quot;Defold 1.13.0 release&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Defold 1.13.0&lt;/strong&gt; is a substantial release that develops several areas of the engine at once: model support, physics, rendering, editor tooling, and build workflows. This version introduces new functionality relevant to both 2D and 3D projects.&lt;/p&gt;

&lt;p&gt;This release also includes many important cleanup changes. Older, long-deprecated APIs and formats have been removed, including Collada, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;asm.js&lt;/code&gt;, and the old Live Update format. Before updating existing projects, we recommend reviewing the &lt;a href=&quot;https://forum.defold.com/t/defold-1-13-0-has-been-released/82980&quot;&gt;full release notes&lt;/a&gt; and checking any parts of your project that may depend on older engine behavior.&lt;/p&gt;

&lt;h2 id=&quot;key-changes-in-defold-1130&quot;&gt;Key changes in Defold 1.13.0&lt;/h2&gt;

&lt;p&gt;In short, Defold 1.13.0 introduces, among other things:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;support for &lt;a href=&quot;/manuals/model-animation/#morph-targets&quot;&gt;Morph Targets&lt;/a&gt; (also known as Blend Shapes), for model components;&lt;/li&gt;
  &lt;li&gt;an expanded &lt;a href=&quot;/ref/b2d-lua/&quot;&gt;Box2D scripting APIs&lt;/a&gt;, including support for joints;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/manuals/render/#frustum-culling&quot;&gt;frustum culling&lt;/a&gt; for Particle FX components;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.vulkan.org/&quot;&gt;Vulkan&lt;/a&gt; is now the default graphics API on Android, with OpenGL as a fallback;&lt;/li&gt;
  &lt;li&gt;new &lt;a href=&quot;/ref/material-lua/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;material&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;/ref/compute-lua/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;compute&lt;/code&gt;&lt;/a&gt; script modules;&lt;/li&gt;
  &lt;li&gt;new functions for inspecting the active graphics adapter, limits, extensions, and supported GPU features through the &lt;a href=&quot;/ref/graphics-lua/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;graphics&lt;/code&gt; API&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;new blending control options in &lt;a href=&quot;/manuals/render/&quot;&gt;render scripts&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;new &lt;a href=&quot;/manuals/material/#vertex-and-fragment-constants&quot;&gt;shader constants&lt;/a&gt;, including inverse matrices;&lt;/li&gt;
  &lt;li&gt;improvements to orthographic cameras using Auto Fit and Auto Cover modes - &lt;a href=&quot;/manuals/camera/#adaptive-zoom&quot;&gt;adaptive zoom&lt;/a&gt;;&lt;/li&gt;
  &lt;li&gt;a selected camera preview directly in Scene View;&lt;/li&gt;
  &lt;li&gt;a local, authenticated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/eval&lt;/code&gt; endpoint for the editor, enabling many new test automation scenarios;&lt;/li&gt;
  &lt;li&gt;direct opening of PNG and JPG images in the editor;&lt;/li&gt;
  &lt;li&gt;smaller final engine builds for macOS and Android;&lt;/li&gt;
  &lt;li&gt;faster resource syncing, dependency fetching, font generation, and improved editor responsiveness during builds;&lt;/li&gt;
  &lt;li&gt;important cleanup of older APIs, formats, and engine behavior.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a broad release. It includes features that are immediately visible while working on a project, as well as deeper infrastructure changes that will matter for the future development of the engine.&lt;/p&gt;

&lt;h2 id=&quot;morph-targets-for-3d-models&quot;&gt;Morph targets for 3D models&lt;/h2&gt;

&lt;p&gt;One of the most important additions in Defold 1.13.0 is support for morph targets in &lt;a href=&quot;/manuals/model/&quot;&gt;model components&lt;/a&gt;. The engine can now use morph/blend target data stored in &lt;a href=&quot;/manuals/importing-models/&quot;&gt;glTF files&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/manuals/model-animation/#morph-targets&quot;&gt;Morph targets&lt;/a&gt; allow a model to be smoothly deformed by blending between different shapes of the same mesh. In practice, this means that a model can keep the same structure while changing expression, proportions, or visual state without switching to a different mesh. This is especially important for facial animation, character expressions, mouth shapes in dialogue animation, transformations, damage reactions, mutation effects, stylized deformations, and any case where skeletal animation alone does not provide enough control over the surface of the model.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/morph-targets-1.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Control Morph Targets (Blend Shapes) of your 3D glTF models in Defold 1.13.0&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;For developers building 3D games in Defold, this means more expressive characters and a more flexible asset pipeline. Models prepared in 3D modeling tools can now bring not only &lt;a href=&quot;/manuals/model-animation/&quot;&gt;skeletal animation data&lt;/a&gt; into the engine, but also mesh deformation data. Developers can then control morph target weights through &lt;a href=&quot;/manuals/material/&quot;&gt;materials&lt;/a&gt; and shaders, creating smooth transitions between different model states.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/morph-targets-2.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Animation and manual control of weights in Defold with the &lt;a href=&quot;https://www.cgtrader.com/free-3d-models/character/woman/aria-blake-game-ready&quot;&gt;Aria Blake model&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Morph targets are also useful beyond facial animation. They can be used for gameplay-driven changes in an object’s state: for example, an enemy can swell before attacking, a character can gradually transform into another form, an object can squash after impact, or an environmental element can change shape in response to interaction. These effects do not require separate models or a complex bone setup if they are better represented through simple shape blending.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/morph-targets-3.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Morph targets animation in Defold with &lt;a href=&quot;https://sketchfab.com/3d-models/shewolf-3195fa568c974a4f836fdc9c7abbe631&quot;&gt;Shewolf model by Polygon Artisan&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Try the &lt;a href=&quot;/examples/model/morph-target/&quot;&gt;Morph Target Animation example&lt;/a&gt; to see glTF morph target animation playback, or the &lt;a href=&quot;/examples/model/morph-target-weights/&quot;&gt;Morph Target Weights example&lt;/a&gt; to see how &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;model.set_blend_weights()&lt;/code&gt; can drive blend weights from Lua.&lt;/p&gt;

&lt;p&gt;In the same release, Defold removes support for the old, deprecated Collada format (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.dae&lt;/code&gt;) and focuses the 3D pipeline on &lt;a href=&quot;/manuals/importing-models/&quot;&gt;glTF/GLB&lt;/a&gt;. This clarifies the direction of model support in the engine and strengthens support for a modern format widely used in real-time graphics.&lt;/p&gt;

&lt;h2 id=&quot;expanded-box2d-api&quot;&gt;Expanded Box2D API&lt;/h2&gt;

&lt;p&gt;Defold 1.13.0 significantly expands the scripting API for the &lt;a href=&quot;/ref/stable/b2d-lua/&quot;&gt;Box2D physics engine&lt;/a&gt;, both for V2, the legacy Defold version, and V3. The most important change is broad support for &lt;a href=&quot;/manuals/physics-joints/&quot;&gt;joints&lt;/a&gt;, but the release also includes new Box2D functionality in general.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/box2d-1.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;You can now tune many parameters and properties from script - check &lt;a href=&quot;https://defold.com/examples/physics/box2d_material_tuning/&quot;&gt;the example&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;From Lua, developers can now create and control different types of physical connections. Depending on the backend used, V2 or V3, this includes distance, revolute, prismatic, weld, wheel, mouse, rope, pulley, gear, motor, and filter joints. The API also allows scripts to read connected bodies, local and world anchor points, reaction forces, torque, limits, speeds, angles, lengths, spring parameters, and motor settings.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/box2d-4.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Create bridges using revolute joints - check &lt;a href=&quot;https://defold.com/examples/physics/box2d_revolute_bridge/&quot;&gt;the example&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Bridges, hinges, ropes, mechanisms, vehicles, moving platforms, cursor-based object grabbing, springs, pendulums, levers, physics puzzles, and dynamically generated structures can now be built directly in game scripts. The logic remains in Lua, without the need to create native extensions just to access core Box2D functionality.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/box2d-2.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Design complex terrain using chains - check &lt;a href=&quot;https://defold.com/examples/physics/box2d_chain_terrain/&quot;&gt;the example&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Access to fixtures and shapes has also been expanded. Scripts can read and change density, friction, restitution, sensors, filter data, and AABB. They can check shape types, test points, and manage shapes or fixtures attached to a body. In practice, this gives more control over object behavior at runtime: an object can change its physical properties after collecting a power-up, an enemy can become a sensor in a specific state, and a dynamic level element can modify its collision filter without rebuilding the entire scene.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;div class=&quot;page-media-frame page-surface-panel&quot;&gt;
    &lt;video width=&quot;640&quot; height=&quot;480&quot; controls=&quot;&quot;&gt;
  &lt;source src=&quot;/images/posts/releases/defold-1-13-0/box2d-3.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;/video&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;p&gt;&lt;em&gt;Control damping and frequency using mouse joints - check &lt;a href=&quot;https://defold.com/examples/physics/box2d_mouse_joint/&quot;&gt;the example&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;This is a major step for games that use physics as part of gameplay, not only as a simple collision system. Box2D becomes more accessible from scripts, and physics systems can be designed more directly in game logic. The &lt;a href=&quot;/manuals/physics-joints/&quot;&gt;Physics joints manual&lt;/a&gt; and &lt;a href=&quot;/ref/stable/b2d-lua/&quot;&gt;Box2D API reference&lt;/a&gt; are the best starting points.&lt;/p&gt;

&lt;h2 id=&quot;rendering-and-the-graphics-environment&quot;&gt;Rendering and the graphics environment&lt;/h2&gt;

&lt;p&gt;On Android, Defold now uses &lt;a href=&quot;https://www.vulkan.org/&quot;&gt;Vulkan&lt;/a&gt; as the default graphics API, with OpenGL as a fallback. The backend can still be controlled through the &lt;a href=&quot;/manuals/app-manifest/&quot;&gt;application manifest&lt;/a&gt;. For new mobile projects, this means moving to a more current default rendering path, without removing compatibility with devices or projects that require OpenGL.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;/ref/graphics/&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;graphics&lt;/code&gt; module&lt;/a&gt; now includes functions for checking available graphics adapters and retrieving information about the currently used backend. Scripts can read the API family, version, hardware limits, supported features, and extensions. This is useful in cross-platform projects where a game may run on desktop, Android, web, or other environments with different GPU capabilities.&lt;/p&gt;

&lt;p&gt;You can now check whether the runtime supports features such as compute shaders, storage buffers, texture arrays, multiple render targets, instancing, or 3D textures. This information can be shown in a debug UI, written to diagnostic logs, or used by the graphics settings system. It can also be used to choose the appropriate rendering path, making it easier to adapt settings to the current environment.&lt;/p&gt;

&lt;h2 id=&quot;material-and-compute-modules&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;material&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;compute&lt;/code&gt; modules&lt;/h2&gt;

&lt;p&gt;New &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;material&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;compute&lt;/code&gt; script modules have been added to the engine. They allow Lua code to read and modify selected data from &lt;a href=&quot;/manuals/material/&quot;&gt;material&lt;/a&gt; and &lt;a href=&quot;/manuals/compute/&quot;&gt;compute&lt;/a&gt; resources.&lt;/p&gt;

&lt;p&gt;For materials, scripts can work with constants, samplers, textures, and vertex attributes. For compute resources, access is available for constants, samplers, and textures. This gives developers more control over resources used by rendering and visual effects.&lt;/p&gt;

&lt;p&gt;This change is important for projects with custom &lt;a href=&quot;/manuals/render/&quot;&gt;render scripts&lt;/a&gt;, debug tools, material editors, procedural effects, and systems that adjust shader parameters at runtime. Materials and compute resources no longer have to be treated only as static configuration prepared before the game starts. They can be inspected and updated by game code or tools.&lt;/p&gt;

&lt;h2 id=&quot;particle-fx-blending-and-shaders&quot;&gt;Particle FX, blending, and shaders&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;/manuals/particlefx/&quot;&gt;Particle FX components&lt;/a&gt; can now use &lt;a href=&quot;/manuals/render/#frustum-culling&quot;&gt;frustum culling&lt;/a&gt;. Emitters outside the camera view can be skipped during rendering if the project uses &lt;a href=&quot;/ref/render/#render.draw&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;render.draw()&lt;/code&gt;&lt;/a&gt; or an active camera set through &lt;a href=&quot;/ref/render/#render.set_camera&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;render.set_camera()&lt;/code&gt;&lt;/a&gt;. This is especially useful in scenes with many particle effects.&lt;/p&gt;

&lt;p&gt;Render scripts also gain more precise control over blending. New functions allow blend factors and blend equations to be set separately for color and alpha. This is useful for 2D shadows, masks, lighting effects, specialized compositing, post-processing, and custom transparency handling.&lt;/p&gt;

&lt;p&gt;New &lt;a href=&quot;/manuals/material/#vertex-and-fragment-constants&quot;&gt;shader constants&lt;/a&gt; have also been added, including inverse versions of the most important matrices used in rendering. Shaders can now receive inverse world, view, projection, view-projection, and world-view-projection matrices without manually preparing this data in additional code. This helps with screen-space effects, position reconstruction, decals, ray direction calculations, and more complex materials.&lt;/p&gt;

&lt;h2 id=&quot;editor-changes&quot;&gt;Editor changes&lt;/h2&gt;

&lt;p&gt;Defold Editor receives several improvements to everyday workflow. Scene View can now display an overlay showing the view from the selected &lt;a href=&quot;/manuals/camera/&quot;&gt;camera&lt;/a&gt;, making it easier to set up levels, framing, and scene composition without building the game just to see the camera view.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/releases/defold-1-13-0/camera-preview.webp&quot; alt=&quot;Selected camera preview in Scene View&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Tool popups related to the grid, camera, and scene visibility have also been improved. This includes better controls, value fields, shortcut handling, color selection, focus traversal, and localization.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/releases/defold-1-13-0/camera-settings.webp&quot; alt=&quot;Camera and grid settings in Scene View&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The editor can also open engine-supported images, such as PNG, JPG, and JPEG files, directly inside Defold.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/releases/defold-1-13-0/image-preview.webp&quot; alt=&quot;Open images directly inside Defold&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A local, authenticated &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/eval&lt;/code&gt; endpoint has been added to the editor server. It allows Lua code to be executed in the editor runtime. This feature is intended for local development tools, automation, &lt;a href=&quot;/manuals/editor-scripts/&quot;&gt;editor scripts&lt;/a&gt;, and external integrations. It can be used to inspect resources, execute editor operations, prepare reports, and support more automated workflows.&lt;/p&gt;

&lt;h2 id=&quot;smaller-builds-and-faster-workflows&quot;&gt;Smaller builds and faster workflows&lt;/h2&gt;

&lt;p&gt;In Defold 1.13.0, final engine builds for Android and macOS have been reduced in size thanks to additional flags that remove unused code. The release notes report a reduction of about 354 KB on Android and about 576 KB on macOS.&lt;/p&gt;

&lt;p&gt;Several areas of working with larger projects have also been improved. Resource syncing when opening a project now uses parallel directory traversal. Dependency fetching has been unified between the editor and &lt;a href=&quot;/manuals/bob/&quot;&gt;Bob&lt;/a&gt;. Font map generation has been moved to a later build phase, and the editor UI remains more responsive during builds.&lt;/p&gt;

&lt;p&gt;These changes are not visually spectacular, but they affect the daily development cycle: opening a project, fetching dependencies, building, and iterating.&lt;/p&gt;

&lt;h2 id=&quot;breaking-changes&quot;&gt;Breaking changes&lt;/h2&gt;

&lt;p&gt;Defold 1.13.0 removes several older parts of the engine. Projects updated from earlier versions should be checked before migration.&lt;/p&gt;

&lt;p&gt;Support for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;js-web&lt;/code&gt; / asm.js has been removed, as Defold’s web backend now focuses on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wasm-web&lt;/code&gt;. Collada support has also been removed, so &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.dae&lt;/code&gt; models should be migrated to &lt;a href=&quot;/manuals/importing-models/&quot;&gt;glTF or GLB&lt;/a&gt;. Old, deprecated Lua functions and constants, the old &lt;a href=&quot;/manuals/live-update/&quot;&gt;LiveUpdate&lt;/a&gt; format, and LiveUpdate auto mount have also been removed. We prepared a special Python script to check for deprecated APIs in your project &lt;a href=&quot;https://gist.github.com/AGulev/e41579eed51174756aaccb16f184ee94&quot;&gt;available here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Component winding order has been unified to counter-clockwise. Projects using custom culling should check their &lt;a href=&quot;/manuals/render/&quot;&gt;render scripts&lt;/a&gt; and &lt;a href=&quot;/manuals/material/&quot;&gt;materials&lt;/a&gt;. The import behavior for glTF/GLB models has also changed by removing automatic re-centering, so transforms are closer to what was prepared in the source tool.&lt;/p&gt;

&lt;p&gt;These changes may require work in older projects, but they simplify the future development of the engine and reduce the number of exceptions Defold had to maintain. Please be especially careful when updating. Before updating an existing project, we recommend reading the &lt;a href=&quot;https://forum.defold.com/t/defold-1-13-0-has-been-released/82980&quot;&gt;full release notes&lt;/a&gt;, checking the breaking changes, and migrating on a project copy or in version control.&lt;/p&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;p&gt;Defold 1.13.0 is available now. It cleans up and develops the engine in several concrete aspects. We believe these changes and the direction Defold is taking are good for the engine in the long term, and we hope you’ll make good use of the new feature to create great games!&lt;/p&gt;
</description>
			<pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/06/22/Defold-1-13-0/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/06/22/Defold-1-13-0/</guid>
		</item>
		
		<item>
			<title>Building Mad Skills Motocross 2 for Poki with Defold</title>
			<description>&lt;p&gt;In this Creator Spotlight interview, we invited Björn, Eugene, Sergey and Paweł from &lt;a href=&quot;https://www.refold.io/&quot;&gt;Refold Games&lt;/a&gt; to talk about what it actually took to bring &lt;a href=&quot;https://poki.com/en/g/mad-skills-motocross-2&quot;&gt;Mad Skills Motocross 2&lt;/a&gt; to Poki with &lt;a href=&quot;https://defold.com/&quot;&gt;Defold&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/games/madskillsmotocross2-half.webp&quot; alt=&quot;Mad Skills Motocross 2 mesh components&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Mad Skills Motocross 2 was created for Poki with Defold&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;tell-us-a-little-bit-about-what-mad-skills-motocross-2-is&quot;&gt;Tell us a little bit about what Mad Skills Motocross 2 is.&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; &lt;a href=&quot;https://www.turborilla.com/mad-skills-motocross-2&quot;&gt;Mad Skills Motocross 2&lt;/a&gt; is a super fun, fast, side-scrolling motocross racing game built around short competitive sessions, tight realistic physics, and skill-based bike control. It was originally created for mobile phones in Unity by &lt;em&gt;Mad Skills&lt;/em&gt; series creators &lt;a href=&quot;https://www.turborilla.com/&quot;&gt;Turborilla&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The core appeal is easy to understand but hard to master. You race across bumpy dirt tracks, manage jumps, landings, acceleration, and momentum, and try to beat rivals, friends, or leaderboard times. It is part arcade racer, part physics challenge, and it has a very loyal audience among players who like motocross games and especially the whole Mad Skills franchise.&lt;/p&gt;

&lt;p&gt;The web version brought the series to Poki’s audience with daily competitive modes and a rebuild from scratch in the Defold engine experience by Refold Games, a game studio from the founders of the Defold Foundation.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msm2/gameplay.webp&quot; alt=&quot;Mad Skills Motocross 2 gameplay&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Mad Skills Motocross 2 can be played now for free on Poki&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;why-did-turborilla-specifically-choose-defold-for-this-port&quot;&gt;Why did Turborilla specifically choose Defold for this port?&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Björn:&lt;/strong&gt; Turborilla and Poki had been discussing for quite some time various alternatives to bring &lt;em&gt;Mad Skills Motocross&lt;/em&gt; and other games from Turborilla to the web. One option was to strip down a Unity version of the game and make a WebGL export, but it would be a challenge to get it down to a small enough size to make it load fast.&lt;/p&gt;

&lt;p&gt;Performance was another concern. If you start from scratch with Unity and build the game with the web in mind you can get something that works decently well, but the size will still be an issue.&lt;/p&gt;

&lt;p&gt;Thanks to the Defold and Poki partnership it was decided to use Defold and to make a port from scratch, rather than trying to adapt the existing Unity version.&lt;/p&gt;

&lt;h4 id=&quot;so-this-was-not-only-a-simple-port-but-rebuilding-the-game-from-scratch-in-defold-suited-specifically-for-the-web-games-market-how-did-you-manage-to-do-so-what-changed-in-the-architecture-and-how-did-you-preserve-the-original-games-feel&quot;&gt;So this was not only a simple port, but rebuilding the game from scratch in Defold suited specifically for the web games market. How did you manage to do so? What changed in the architecture? And how did you preserve the original game’s feel?&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Eugene:&lt;/strong&gt; Since we had an original mobile project as a reference, we could reuse many useful modules from there. Separate classes from Unity could be easily represented as Lua modules, which made the structure easier to understand and easier to maintain.&lt;/p&gt;

&lt;p&gt;For the web version the main motto was: &lt;em&gt;simplify&lt;/em&gt;. The original game has more modes and more functionality. For the web release, we wanted a concentrated experience.&lt;/p&gt;

&lt;p&gt;On the other hand we’ve added several features aimed to satisfy the (not so hardcore) Poki audience. Namely, it’s landing and flip assistance. These systems help players to perform tricks like backflips and frontflips and have fun, while still being able to land smoothly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; I joined the project at the very end, but I was happy to see the same architecture approach I was using previously all the time - that separates view (audiovisual representation of the game) from logic (everything related to movement, controls, AI behaviour and other code-only related things) that is simply a result of years making games and coming to the same conclusions each time. And of course we were suiting everything to how Defold operates to make it most optimal.&lt;/p&gt;

&lt;p&gt;Also, making GUI was super easy and efficient, as we utilised the powerful &lt;a href=&quot;https://defold.com/assets/druid/&quot;&gt;Druid Framework by Insality&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msm2/leaderboards_gui.webp&quot; alt=&quot;Mad Skills Motocross 2 leaderboards&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Mad Skills Motocross 2 Leaderboards GUI in Defold Editor&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h4 id=&quot;what-should-developers-be-aware-of-when-porting-a-game-to-web-what-is-the-hardest-part&quot;&gt;What should developers be aware of when porting a game to web? What is the hardest part?&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Sergey:&lt;/strong&gt; When porting a game to the web, there are several important factors to consider. Players may use low-performance devices or slow internet connections, and both affect whether they will stay. That means you have to optimize gameplay systems and reduce the overall build size as much as possible.&lt;/p&gt;

&lt;p&gt;I would not say there was one single hardest part. The real challenge was choosing the right approach for each system and knowing how to solve performance and optimization problems efficiently.&lt;/p&gt;

&lt;h5 id=&quot;mad-skills-motocross-2-uses-turborillas-own-great-custom-physics-engine-how-does-it-work-and-how-did-you-port-it-as-a-native-extension-in-defold&quot;&gt;Mad Skills Motocross 2 uses Turborilla’s own great custom physics engine. How does it work and how did you port it as a native extension in Defold?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Björn:&lt;/strong&gt; We were fortunate that the custom physics engine in MSM2 was implemented as a clean, isolated C++ library with a small API surface. That made it much easier to extract the physics engine into a standalone &lt;a href=&quot;https://defold.com/manuals/extensions/&quot;&gt;native extension&lt;/a&gt; and expose it through Lua bindings.&lt;/p&gt;

&lt;p&gt;The physics engine defines track geometry as a list of height data. The bikes are defined as a bike frame, wheels and rider, each with their own physics control points, weights, spring coefficients and other constraints. Both track data and bike data were read from a binary format and passed to the physics engine through the Lua API before the simulation started.&lt;/p&gt;

&lt;p&gt;The player controls the bike by pressing throttle or brake and by leaning forward or backward with the rider.&lt;/p&gt;

&lt;p&gt;At every update, the simulation advances with a fixed delta time and receives the current throttle, brake and lean inputs. After the update, we fetch the new state through Lua and position and rotate the individual bike and rider pieces according to the physics result.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“We had an initial version of the physics engine up and running in Defold in a matter of days.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;After that, it took some additional time to match the bike and rider positions from the physics engine with the Defold game objects and to generate the meshes for the track from the track geometry, but thanks to Eugene’s efforts this was also achieved with great results!&lt;/p&gt;

&lt;h5 id=&quot;and-for-the-visual-part-you-rebuilt-the-biker-and-tracks-as-dynamic-meshes-why-did-you-choose-meshes-over-sprites-or-prebaked-animation&quot;&gt;And for the visual part, you rebuilt the biker and tracks as dynamic meshes. Why did you choose meshes over sprites or prebaked animation?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Eugene:&lt;/strong&gt; For the track ground, we dynamically create the track surface using &lt;a href=&quot;https://defold.com/manuals/mesh/&quot;&gt;mesh components&lt;/a&gt; based on a one-dimensional array of track heights. Then we attach a repeated ground image, with different variants for different environments.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msm2/msm2_track.webp&quot; alt=&quot;Mad Skills Motocross 2 mesh components&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;On the left, a simple line representation of the 1D track height array, on right with an aligned mesh for the track&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;We also add shadows below the rider with another mesh curved according to the track height. On top of that, there are several more meshes for foreground and background grass, rocks, and the black area below the track. The result looks and feels pleasant without requiring a large amount of prebaked art.&lt;/p&gt;

&lt;p&gt;At first we tried an orthographic camera, but it did not feel right and result didn’t satisfy us. The image looked too flat and lacked depth, so we moved to a perspective camera instead.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“As the game has pretty long tracks with long meshes, we were concerned a bit that this might affect performance, and had a few possible optimizations on our mind already, BUT in practice, Defold handled it extremely well, and meshes don’t influence game performance at all.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Meshes did not become a bottleneck, and that gave us the freedom to build the scene the way the game actually needed it.&lt;/p&gt;

&lt;p&gt;I also want to mention &lt;a href=&quot;https://renderdoc.org/&quot;&gt;RenderDoc&lt;/a&gt;. It helped a lot when debugging graphics and render-related issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; And later on Eugene was invited to the Made with Defold Jam 2025 as a speaker and presented a great lecture about &lt;a href=&quot;https://www.youtube.com/watch?v=mveAyod93cA&quot;&gt;Meshes in Defold that you can now watch online here&lt;/a&gt;, and trust me, it’s worth watching, if you would like to do anything with meshes. Check out also the &lt;a href=&quot;https://github.com/mozok/Meshes-In-Defold&quot;&gt;open source online examples&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sergey:&lt;/strong&gt; For the bike and rider, we also used a mesh. Initially we used regular sprites, but with a perspective camera the wheels and other elements started to flicker as the rotation angles and positions changed. Unfortunately, adjusting the Z positions pushed sprites noticeably farther away in a way that did not feel right.&lt;/p&gt;

&lt;p&gt;In the end, we decided to render the entire bike and rider as a single mesh while keeping the center of each element in the same place. One of the trickier parts was that the wheels still needed to rotate relative to the bike, so we had to recalculate vertex positions manually.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msm2/msm2_track_grass.webp&quot; alt=&quot;Mad Skills Motocross 2 development with Defold&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Foreground and background elements are meshes too&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;the-game-also-introduces-daily-challenges-and-leaderboards-how-did-you-integrate-the-custom-server-functionality&quot;&gt;The game also introduces daily challenges and leaderboards. How did you integrate the custom server functionality?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; Turborilla had already done a very good job describing the API, and the client-side documentation was clear. We only needed to integrate it into the game. In Defold we could control the method, headers and body directly from Lua.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sergey:&lt;/strong&gt; For request handling, we used &lt;a href=&quot;https://github.com/britzl/ludobits&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ludobits.m.flow&lt;/code&gt;&lt;/a&gt; based on coroutines wrapping the HTTP requests in a small backend transaction module with retries, error handling and coroutine support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; Precisely, so the rest of the game could treat server calls like normal sequential logic. Daily Dash is a good example. The game downloads the current season data from Turborilla’s content server. Those requests are started in parallel where possible, and the results are cached in local save data. The gameplay code does not need to know much about networking - it just asks for today’s challenge or today’s opponents, and the backend layer handles the rest.&lt;/p&gt;

&lt;p&gt;Leaderboards use the same pattern. Scores are sent to Turborilla’s server, and we only upload when the player improves their previous local best. Fetching ranks and leaderboard pages is handled by the same Lua wrapper, including pagination for the UI.&lt;/p&gt;

&lt;p&gt;There was also one small trick around player names. The leaderboard service needed each user to have a valid, unique username matching a specific regular expression, but for the Poki web version we did not want to interrupt the player with account creation or a name-entry flow. So we generated a compact server-safe guest name automatically. If the server rejected it, we simply generated a new one and retried. In the UI, we decoded that internal name back into something more readable. From the player’s perspective it looked like a normal leaderboard name, but technically it satisfied Turborilla’s backend requirements without adding friction.&lt;/p&gt;

&lt;p&gt;That is a good example of why Defold worked so well here: the whole solution stayed as a thin Lua layer around Defold’s built-in HTTP API. Notice also, that on the screenshots from the development we have a huge button in the bottom right corner with letter “D” - which was a “Debug” button simply used to open a popup with different settings and cheats for faster testing.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msm2/leaderboards.webp&quot; alt=&quot;Mad Skills Motocross 2 leaderboards&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Leaderboards with randomly generated names&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-did-you-have-to-do-to-make-the-game-load-fast-enough-and-still-preserve-quality&quot;&gt;What did you have to do to make the game load fast enough and still preserve quality?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Sergey:&lt;/strong&gt; To achieve faster loading times, we had to reduce the build size. For that, we used Defold’s &lt;a href=&quot;https://defold.com/manuals/live-update/&quot;&gt;Live Update&lt;/a&gt; feature - a very convenient technology that allows separate collections to be downloaded after the main build has loaded.&lt;/p&gt;

&lt;p&gt;The game contains many different skins and backgrounds, so we split them into separate collections and loaded through Live Update mounts and proxies at runtime instead of stuffing everything into the first download. In practice, that meant we could keep the initial package small and stream in content when needed and it made a real difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; This is one of the clearest Defold advantages for web games.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“You can build a focused initial payload, then bring in the rest of the content when the player actually needs it, in the background. That is pretty much how the web should work.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Sergey:&lt;/strong&gt; We also used compression through &lt;a href=&quot;https://defold.com/manuals/texture-profiles/&quot;&gt;texture profiles&lt;/a&gt; for images and &lt;a href=&quot;https://defold.com/extension-texturepacker/&quot;&gt;TexturePacker extension for Defold&lt;/a&gt; to save space. &lt;a href=&quot;https://www.codeandweb.com/texturepacker&quot;&gt;TexturePacker&lt;/a&gt; was especially helpful because it accounts for transparent and empty pixels, which meant less wasted texture memory and a smaller bundle.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/msm2/haunted_race.webp&quot; alt=&quot;Mad Skills Motocross 2 gameplay&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Mad Skills Motocross 2 Haunted Race&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;what-do-you-think-defold-brought-to-this-project-that-would-have-been-harder-in-another-engine&quot;&gt;What do you think Defold brought to this project that would have been harder in another engine?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; The short answer is: a lot less friction. Defold gave us a small, web-friendly base, a powerful path for low-level code functionalities through native extensions, and runtime meshes that were great for the whole visual approach. That combination made it realistic to rebuild the game for the web from scratch without dragging a lot of mobile baggage along with it. And iteration speed while developing games in Defold is incredible. It also helped that the project stayed readable. We were not dealing with huge callback chains or a lot of platform-specific glue. The code stayed modular, and the important systems remained easy to reason about.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eugene:&lt;/strong&gt; Defold is small, fast and efficient.&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
  &lt;p style=&quot;font-size: larger&quot;&gt;&lt;i&gt;“Engine functionality works great, and if something is slow - it’s a question to my own implementation.”&lt;/i&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h5 id=&quot;looking-back-what-is-the-main-lesson-from-this-project&quot;&gt;Looking back, what is the main lesson from this project?&lt;/h5&gt;

&lt;p&gt;&lt;strong&gt;Eugene:&lt;/strong&gt; As we already ported many projects, rebuilding some from scratch, one important thing is that porting project is much easier if you have access to original code! And one more: Mesh component is a great tool, one just need to figure it out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paweł:&lt;/strong&gt; It was very scary for me to add any online features like leaderboards, stuff like this, but when you face it, it’s not so difficult. Maybe because we already had a nicely working server infrastructure, because now only this part sounds scary to me, but there are a lot of solutions, also for Defold, that simplifies it a lot. Client side implementation is usually very simple and straightforward.&lt;/p&gt;

&lt;h5 id=&quot;thank-you-very-much-for-the-interview-and-we-wish-refold-and-turborilla-continued-success-with-mad-skills-motocross-2-on-poki&quot;&gt;Thank you very much for the interview, and we wish Refold and Turborilla continued success with Mad Skills Motocross 2 on Poki!&lt;/h5&gt;

&lt;p&gt;Check the game online for free: &lt;a href=&quot;https://poki.com/en/g/mad-skills-motocross-2&quot;&gt;Mad Skills Motocross 2 on Poki&lt;/a&gt;&lt;/p&gt;
</description>
			<pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/06/02/Mad-Skills-Motocross-2/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/06/02/Mad-Skills-Motocross-2/</guid>
		</item>
		
		<item>
			<title>Best practices when building for the web</title>
			<description>&lt;p&gt;This is a practical guide for Defold developers building for the web. Pay attention to each of the topics in this guide as they are crucial to your success on Poki and the web in general.&lt;/p&gt;

&lt;h2 id=&quot;quick-summary&quot;&gt;Quick summary&lt;/h2&gt;

&lt;p&gt;If there’s one thing to remember from this guide, it’s this: &lt;strong&gt;The best-performing games on Poki are designed for instant fun&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Fast loading (&amp;lt;20MB ideally)&lt;/li&gt;
  &lt;li&gt;Gameplay within seconds&lt;/li&gt;
  &lt;li&gt;Simple, satisfying gameplay loops&lt;/li&gt;
  &lt;li&gt;Excellent controls on both desktop and mobile&lt;/li&gt;
  &lt;li&gt;Clear visuals and readable UX&lt;/li&gt;
  &lt;li&gt;Replayability over complexity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web players decide very quickly whether they want to stay. The strongest games remove friction, create immediate interaction, and make players think: “One more round.”&lt;/p&gt;

&lt;h3 id=&quot;the-web-is-a-different-playground&quot;&gt;The web is a different playground&lt;/h3&gt;

&lt;p&gt;The web behaves differently from mobile, console, or PC. Players arrive fast, decide fast, and leave fast. At Poki, there is thousands of games enter testing pipelines every year. The games that ultimately succeed are rarely the ones with the largest feature lists or deepest progression systems. Instead, the strongest performers are usually the games that understand web player behavior exceptionally well.&lt;/p&gt;

&lt;p&gt;A successful web game creates clarity immediately. It loads quickly, feels responsive within seconds, and gives players something satisfying to do almost instantly. On the web, the game starts the moment the page opens.&lt;/p&gt;

&lt;h3 id=&quot;session-0-is-everything&quot;&gt;Session 0 is everything&lt;/h3&gt;

&lt;p&gt;One of the biggest differences between mobile and web is the importance of the first session. On mobile, developers can often rely on long-term progression systems, onboarding funnels, or retention mechanics that unfold over days or weeks. Web players behave differently. Many sessions are spontaneous and curiosity-driven. The first minute matters enormously.&lt;/p&gt;

&lt;p&gt;Successful Poki games focus on immediate interaction, low friction, clear goals, satisfying feedback, and quick understanding. Games with long intros, dialogue-heavy tutorials, complex menus, or slow unlock systems generally struggle more on web.&lt;/p&gt;

&lt;h3 id=&quot;continuous-gameplay-performs-best-&quot;&gt;Continuous gameplay performs best 🔁&lt;/h3&gt;

&lt;p&gt;Games that perform well on Poki usually keep the player actively engaged almost all the time. Whether the player is dodging enemies, matching tiles, drifting through corners, aiming shots, solving puzzles, surviving waves, or stacking combos, the important part is that the interaction feels continuous and satisfying.&lt;/p&gt;

&lt;p&gt;Replayability matters enormously. The strongest games often create a “one more try” feeling where players naturally want to restart, improve, or continue.&lt;/p&gt;

&lt;h3 id=&quot;file-size-is-one-of-the-biggest-success-factors&quot;&gt;File size is one of the biggest success factors&lt;/h3&gt;

&lt;p&gt;File size directly impacts whether players even start the game. On web, loading speed strongly affects Conversion to Play (C2P). If a game loads too slowly, players simply move on to another title.&lt;/p&gt;

&lt;p&gt;As a general guideline, games should aim for under 20MB total size. Smaller is always better. Developers should aggressively optimize textures, audio, unused assets, dependencies, startup processes, and shaders. For Defold developers specifically, this is a major opportunity. &lt;a href=&quot;https://defold.com/manuals/optimization-size&quot;&gt;Learn more about how to optimze game size in our optimization manual&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Defold’s lightweight runtime and HTML5-focused tooling align very well with browser player expectations.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/web-tips/data-display.webp&quot; alt=&quot;Poki For Developers performance metrics dashboard&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Poki For Developers shows performance metrics such as gameplays, earnings, engagement time, and monetization&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;controls-need-to-feel-great-everywhere&quot;&gt;Controls need to feel great everywhere&lt;/h3&gt;

&lt;p&gt;Web players arrive from many different devices. The best-performing games feel smooth and intuitive everywhere. Games should respond instantly, avoid overly small UI elements, support touch naturally, and work well on both desktop and mobile.&lt;/p&gt;

&lt;h3 id=&quot;simplicity-usually-beats-complexity&quot;&gt;Simplicity usually beats complexity&lt;/h3&gt;

&lt;p&gt;Web players generally respond better to clear, lightweight systems than complicated economies or progression structures. Rewarded ads typically work best when they feel like a second chance, a revive, an optional reward, or a bonus attempt. Heavy monetization layers or complex store systems often create friction instead of improving engagement.&lt;/p&gt;

&lt;h3 id=&quot;readability-matters-more-than-realism&quot;&gt;Readability matters more than realism&lt;/h3&gt;

&lt;p&gt;Players browsing web platforms make extremely fast visual decisions. Strong-performing games usually communicate their appeal immediately through bold visuals, readable gameplay, clear interactions, recognizable gameplay moments, and clean UI. Visual clarity is often more important than visual complexity.&lt;/p&gt;

&lt;h3 id=&quot;support-both-landscape-and-portrait&quot;&gt;Support both landscape and portrait&lt;/h3&gt;

&lt;p&gt;Most games on Poki will be played both on desktop and mobile. It is important to design a game which can be played in both landscape mode on desktop and in portrait mode on mobile. Supporting portrait mode on mobile also means that banner ads can be used.&lt;/p&gt;

&lt;h3 id=&quot;what-poki-looks-at-during-testing&quot;&gt;What Poki looks at during testing&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/web-tips/poki-inspector.webp&quot; alt=&quot;Poki Inspector event log and warnings&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Poki Inspector helps verify SDK events, initial errors, warnings, loading time, file size, and scaling behavior&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;The most important metrics during testing include:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Average Playtime: 5+ minutes&lt;/li&gt;
  &lt;li&gt;Very Strong Playtime: 7–10+ minutes&lt;/li&gt;
  &lt;li&gt;Conversion to Play: 65%+&lt;/li&gt;
  &lt;li&gt;File Size: Under 20MB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In general, strong playtime suggests replayability, strong conversion suggests low friction, and small file sizes improve accessibility globally.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/images/posts/web-tips/stats-2.webp&quot; alt=&quot;Poki Player Fit Test statistics&quot; /&gt;&lt;/p&gt;
&lt;div align=&quot;center&quot;&gt;
  &lt;p&gt;&lt;em&gt;Player Fit Test statistics help compare playtime distribution between tested versions&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h3 id=&quot;the-biggest-mistake-developers-make&quot;&gt;The biggest mistake developers make&lt;/h3&gt;

&lt;p&gt;The most common mistake is treating web as simply another export target. The strongest teams instead approach web as its own platform with different player behavior, session patterns, technical constraints, and design opportunities.&lt;/p&gt;

&lt;p&gt;A simple question often separates successful web games from unsuccessful ones: “&lt;strong&gt;Can the player start having fun within ten seconds?&lt;/strong&gt;”&lt;/p&gt;

&lt;h3 id=&quot;final-takeaway&quot;&gt;Final takeaway&lt;/h3&gt;

&lt;p&gt;The games that stand out on Poki are usually not the most technically complex. They are the games that remove friction, respect the player’s time, load quickly, feel satisfying immediately, and create strong replayability. Web success comes from understanding player behavior first, and building around that reality from the very beginning.&lt;/p&gt;

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

&lt;p&gt;For even more tips and recommendations head over to the:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developers.poki.com/guide&quot;&gt;Poki Developer guide&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sdk.poki.com/what-is-p4d&quot;&gt;Poki For Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gitnation.com/contents/optimizing-html5-games-10-years-of-learnings&quot;&gt;Optimizing HTML5 Games: 10 Years of Learnings&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
			<pubDate>Tue, 02 Jun 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/06/02/Best-practices-when-building-for-the-web/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/06/02/Best-practices-when-building-for-the-web/</guid>
		</item>
		
		<item>
			<title>Gaming platform Wavedash partners with Defold</title>
			<description>&lt;p&gt;&lt;em&gt;The Defold Foundation partners with Wavedash to integrate Wavedash services and improve the web version of the Defold game engine&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;STOCKHOLM, SWEDEN - Jun. 1, 2026 - The Defold Foundation today announced that new gaming platform Wavedash joins the foundation as a corporate partner. Alongside the announcement, a Wavedash SDK integration for Defold is now available, making it easy for developers to integrate Wavedash features in their Defold games.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“We are excited and proud to welcome Wavedash as a Defold Foundation partner. Their decision to join the foundation as a corporate partner is a strong endorsement of Defold and further validates its position as a leading engine for web games. It also reflects the rapid growth of the web gaming ecosystem, where rising player expectations and demand for high-quality experiences are creating new opportunities for developers and studios to succeed with a web-first strategy.”&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 to the web version of the Defold game engine and build new integrations specifically for the Wavedash platform. The new integrations and performance improvements will be developed iteratively and primarily released in sync with the monthly stable releases of the Defold game engine&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Defold is one of the most respected engines in the web games space. It is source-available, lightweight, and engineered with craft. These are values we believe in at Wavedash. Partnering with the Defold Foundation lets us invest directly in the engine, tooling, and community of Defold developers.”&lt;/em&gt;, said Kyler Blue, CEO at Wavedash.&lt;/p&gt;

&lt;h5 id=&quot;about-wavedash&quot;&gt;About Wavedash&lt;/h5&gt;
&lt;p&gt;&lt;a href=&quot;https://www.wavedash.com/&quot;&gt;Wavedash&lt;/a&gt; is a browser-native gaming platform where players can discover, play, and share games instantly — no downloads, no installs, no waiting. Built for developers who want to reach players with zero friction, Wavedash provides built-in social features, achievements, leaderboards, and the most competitive revenue split in the industry.&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;Kyler Blue
Co-founder and CEO, Wavedash
&lt;a href=&quot;mailto:contact@wavedash.com&quot;&gt;contact@wavedash.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>Mon, 01 Jun 2026 00:00:00 +0000</pubDate>
			<link>https://www.defold.com/2026/06/01/Wavedash-joins-as-a-corporate-partner/</link>
			<guid isPermaLink="true">https://www.defold.com/2026/06/01/Wavedash-joins-as-a-corporate-partner/</guid>
		</item>
		
		<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>
		
	</channel>
</rss>
