Ashley Gullen

@ashleygullen.bsky.social

Founder of Scirra and lead developer of Construct. Fan of JavaScript and web technologies.

I’m happy to announce the release of a new open source 3D physics engine called Box3D. I’ve been working on this project for a few years now, but it represents over 20 years of experience writing physics engines for games. Read more here: box2d.org/posts/2026/0...

Announcing Box3D

I’m happy to announce the release of Box3D, an open source 3D physics engine. It is now available on GitHub. Box3D repository You can think of Box3D as a fork of Box2D, extended with many features nee...

box2d.org

Disappointed that Blueprints is deprecated in Unreal Engine? Want visual coding that scales instead of turning in to spaghetti? Try Construct! Visual coding done right.

An event sheet in Construct showing the visual coding style.

Chrome and Edge are now updating every 2 weeks. When will Apple free Safari from being tied to the OS and update it more frequently? The slow, opaque release process of Safari is still one of the worst things about it.

Ran in to a nasty WebGL-to-WebGPU footgun: gl.NEAREST effectively disables mipmaps, whereas WebGPU samplers always use a mipmap with mipmapFilter (instead need to adjust the texture view to disable mipmaps). IMO WebGPU makes more sense - just a weird quirk of WebGL samplers.

Finally found a good use for wireless charging - it's great for keeping a phone with a worn out charging socket going! There's nothing else wrong with it so should be able to keep it for a fair while longer. Helps that it still has a separate headphone jack.

Had a bit of a light bulb moment, and... here's a Windows export from Construct running as a single .exe file - all resources packed in to a single file, in a way that antivirus tools hopefully won't see as suspicious. Pretty cool! Should be in a future Construct release.

Windows WebView2 v145 is now rolling out and it properly supports choosing the high-performance GPU on dual-GPU systems (with C3 r467+). Been a long time coming but great to see that finally resolved!

Tried to do some coding with the modern Windows GameInput API, and my Xbox One Elite controller appears as two devices, and there doesn't appear to be any way to detect that they are the same physical device. So GameInput is useless for multiple gamepads...?

I find it kind of fascinating the extent to which in a mature codebase, each file is so finely crafted line-by-line. This image is the "blame" history for a core Construct runtime file, with each line a different color for the last commit that changed it - rotated 90 degrees to fit better here.

Bild

WebGPU's requirement that writeBuffer() must use a size that is a multiple of 4 bytes is kind of annoying when dealing with 16-bit indices. Not an issue in WebGL so something of a porting tripwire there.

Graphics driver bugs are such a nightmare - Construct now has to have its own internal GPU blacklist for WebGPU which covers Adreno 7xx, Intel Gen7 and Intel Gen9 GPUs due to various driver bugs, and also disables Safari entirely due to currently being entirely unusable there. Ugh.

Nearly 4 months after the release of iOS 26, according to StatCounter Apple have still only deployed it to ~16% of devices. Seems like an unusual delay to rolling it out - my best guess is liquid glass has become a total fiasco and Apple know it.

Bild

It's time for our annual review of the highlights of the year! The 2025 year in review blog post covers many of the new features and improvements, examples, web technology improvements and more from the past year. We've been busy and so there's plenty to cover! www.construct.net/en/blogs/con...

Construct in 2025: Year in review ★★★★★

We're coming towards the end of another year, and it's time for our annual look back at the highlights of what the team got done through 2025 to make both Const...

construct.net

JPEG XL in Chromium update: “[...] we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance.” groups.google.com/a/chromium.o...

Message on the blink-dev mailing list:

"Hi everyone,
Since JPEG XL was last evaluated, Safari has shipped support and Firefox has updated their position. We also continue to see developer signals for this in bug upvotes, Interop proposals, and survey data. There was also a recent announcement that JPEG XL will be added to PDF.
 
Given these positive signals, we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance. With those and our usual launch criteria met, we would ship it in Chrome.

Rick (on behalf of Chrome ATLs)"