Quick answer: Assets download fast; audio decoding and webfont loading run after and block completion. Uncheck Preload for non-critical sounds, preload webfonts via <link rel="preload"> in index.html, and record a Performance timeline to find the exact blocking task.

Your Construct 3 game loads in 3 seconds on a laptop but 30 seconds on a mobile browser. The progress bar rockets to 99% in 2 seconds, then stalls for 28. The network tab shows all fetches finished. Something is running synchronously after download and blocking the layout transition.

The Usual Blockers

Audio decoding. Every preloaded sound decodes from compressed (OGG, M4A) to PCM in the main thread. A 30-second music loop takes a second or two to decode on a phone. Ten preloaded sounds can add 10+ seconds to the end of the loader.

Webfont loading. If your project uses a Google Font or custom @font-face, the browser fetches it on first use. Text rendered during the loader layout blocks on font load. Preload fonts before Construct starts.

Image decoding. Large PNGs decode asynchronously but some browsers (Safari in particular) force sync decode on first paint. Use decoded image formats like WebP or pre-decoded textures.

The Fix

Step 1: Defer non-critical audio. In the Sound object’s properties, uncheck Preload for SFX. Only preload the music track that plays during the loader itself and a few high-priority UI sounds. Everything else loads lazily on first use.

Step 2: Preload webfonts in index.html.

<link rel="preload" href="assets/myfont.woff2" as="font" crossorigin>

Step 3: Profile with DevTools. Open Performance, click Record, reload the page, stop recording after the loader finishes. Look for long main-thread tasks between the last fetch and the layout transition. The task label tells you what’s blocking.

Loader Layout Design

Keep the loader layout minimal. One sprite, one progress bar, one fade-out. Heavy art on the loader forces Construct to decode those images before the loader can even start drawing, which delays the visible progress display.

Verifying

With the fix, the progress bar should reach 100% and the layout should transition within 300 ms. If it still hangs, record Performance again and find the new blocker. Always measure on the slowest target device — budget mobile phones are where loader bugs live.

“The last 1% of a loader is where half the bugs hide. The network is fast; the main thread is slow. Profile, don’t guess.”

Related Issues

For broader mobile performance, see Construct 3 performance low FPS lag. For audio issues after tab switches, see Construct 3 audio silent after tab switch.

Never preload an audio asset unless it plays in the first five seconds of gameplay. Every preloaded sound delays the loader.