We've done a great deal of work on optimizing Construct already, including writing an entire new renderer based on the latest WebGPU graphics technology and taking advantage of the improvements it made possible. 2D content often uses a lot of transparency which generally means back-to-front rendering is necessary, and then the performance you get with that usually depends on the capabilities of the graphics hardware rather than anything the engine does. If you have specific benchmarks I could try out I'd be happy to investigate - there may be more we can do, or there may be some performance pitfall we missed.
Hi Ashley, thanks for the detailed reply. I understand the progress made with WebGPU, and I agree that desktop browser performance is impressive.
However, from my perspective as a developer shipping mobile games, the core friction points lie in architectural differences and — crucially — the lack of visibility into them.
Here is a breakdown of the challenges we face on mobile:
1. WebView Overhead Construct apps run inside a WebView (Cordova/Capacitor). While functional, this essentially runs a full browser instance inside the app. This abstraction layer adds unavoidable overhead in terms of base memory footprint and CPU usage compared to thin native runtimes.
2. Native vs. Interpreted Execution (The GC Issue) Unity uses IL2CPP to compile to native machine code. Construct relies on JavaScript. Even with V8's amazing JIT, we suffer from lack of manual memory control. Garbage Collection (GC) spikes are the main cause of micro-stutters on mid-range Android devices, creating a "janky" feel even at high average FPS.
3. Thermal Throttling Because the CPU has to handle the WebView overhead + game logic (mostly on a single thread), thermal load increases rapidly. This leads to aggressive thermal throttling on mobile, causing performance to degrade significantly after 10-15 minutes of gameplay.
4. Tooling and Profiling (Critical) In my opinion, this is the biggest missing piece. We lack professional profiling tools to diagnose why performance drops. What we desperately need:
Deep CPU Profiling: Breakdowns of which specific Event Sheets or Functions are consuming frame time.
Asset Auditing: Visibility into texture memory usage and heavy assets.
Performance Warnings: Alerts for expensive operations (e.g., "High overdraw detected" or "Heavy logic in Every Tick").
5. Texture Management Support for KTX2 / Basis Universal would be a game-changer. Unity, Godot, and Unreal use these standards to drastically reduce GPU memory usage. Since WebGPU supports them, native integration in Construct would significantly help mobile devices with limited VRAM.
6. Text Rendering The current text system is a performance bottleneck. Text objects are heavy, and styling is limited.
Long text becomes blurry.
Baseline/offset issues persist on iOS.
Suggestion: Implementing SDF (Signed Distance Field) font rendering would solve both the quality and performance issues, allowing for crisp text with cheap outlines/shadows.
7. Blur and UI Effects Blur is standard in modern UI, but it is currently too expensive in Construct (requiring separate layers or heavy shaders). Optimized, built-in primitive effects for UI that don't tank the framerate would be very welcome.
8. Mobile Simulation Tools It is difficult to predict mobile behavior on a desktop. It would be helpful to have debug modes that simulate:
Artificial memory limits (e.g., cap at 100MB).
Low-end CPU throttling simulation.
Strict FPS caps.
(Example: My old Meizu PRO 7 crashes if the game exceeds 100 MB of memory, regardless of the event logic. Debugging this without tools is a nightmare.)
9. I've noticed that even with the Preload Sounds checkbox enabled, the game might not launch at all on my older devices. So I'm forced to disable it to save memory. I don't know why... But with the checkbox disabled, the sounds are terrible. This means I can't create high-quality sounds for a large project.
Summary I’m not suggesting Construct should abandon the web stack. But precisely because we are running on the web stack, we need better tooling, profiling, and resource control to manage these overheads effectively.
I love Construct and use it daily. I’m sharing this because I want to see it become even more viable for high-quality mobile releases.
Thanks for listening!