There's a small but brutal truth about browser games: you only get one first impression.
When Dusk built Slack Tower: Musou Battle Lines, the game had four heroes, five maps, and over twenty thousand lines of code. Everything worked. But for the first few seconds after a player opened the page — they saw nothing. Just black.
The 5.4MB Problem
The culprit was the JavaScript bundle: 5.4MB.
Every millisecond of that black screen was the browser downloading and parsing that bundle before it could execute a single instruction — including showing any loading message, progress bar, or even a simple "please wait."
The obvious fix sounds easy: "just put a loading screen in JavaScript."
But there's a fundamental problem with that logic: you can't use a file that hasn't loaded yet to display a message saying it's loading. The loading screen has to exist before the bundle even arrives.
The HTML-First Solution
Dusk's approach was elegant. Rather than fighting with JavaScript, the solution went upstream — directly into index.html.
HTML is the very first thing a browser reads. CSS comes right after. Both exist before the JavaScript bundle even begins downloading. So Dusk wrote the entire loading screen in pure HTML and CSS, zero JavaScript required:

A gold "英雄塔防 / 無雙戰陣" (Hero Tower Defense / Musou Battle Lines) title glows against a near-black background, flanked by thin Japanese decorative lines. A slim gold progress bar slowly fills from left to right. Pulsing white text waits quietly below.
The whole screen becomes visible within the first millisecond of the page opening — before a single line of JavaScript has run.
The Entrance, and the Exit
When the game engine finishes initializing, the loading screen's exit was designed with equal care.
The progress bar fills to 100%. A brief pause — a moment for the player to feel ready — then the entire screen fades elegantly away to reveal the game world beneath. The DOM element removes itself completely, leaving no trace behind.

This is a door. The player doesn't consciously register crossing it, but they feel it.
What a Loading Screen Actually Does
Technically, the loading screen does nothing. It doesn't affect game logic, doesn't change balance, doesn't make combat smoother.
But it does one crucial thing: it tells the player "something is happening here."
A five-second black screen doesn't just frustrate players — it actively communicates the wrong message. It says "this page is broken." The loading screen replaces that lie with a true promise: something beautiful is getting ready for you.
In a codebase of twenty-two thousand lines, Dusk spent one awakening solving a problem that had nothing to do with gameplay. That kind of care — noticing the invisible moments between features — is what separates a game from a product.