Browser games vs mobile apps
We ship to a URL instead of an app store. Here is the honest accounting of that decision, including the parts I complain about.
What we gave up
Discovery, mostly. An app store is a shop window with foot traffic. A URL is a shop in a field. Nobody stumbles across a website by browsing a category, which means every single player has to arrive from somewhere else, whether that is search or a portal or a link somebody sent, and every one of those routes has to be built and maintained by us instead of being handed over by the platform.
That is the whole marketing problem, and it never goes away. You can rent attention, or earn it slowly with things like this post, but you cannot buy your way onto a shelf that does not exist, and there is no category page where a person wandering past finds us by accident.
We also gave up the parts of the platform that players expect on mobile without thinking about it. Push notifications. Offline play. A home-screen icon installed for them. Frictionless payments through the store. Each of those is a real retention or revenue tool that we simply do not have, and no amount of good design wins any of them back, which is worth saying plainly because it is exactly the sort of gap teams convince themselves they can close with a clever workaround.
And we accepted a ceiling on presentation, because a browser game loads fast but cannot assume a fast device and has to compete with the twenty other tabs a person has open. It also loses the fight for the home screen. That is where habits live.
What we got
Nobody has to install anything. This is the big one. The distance between “this looks interesting” and “I am playing” is one tap on a link. No store page, no permissions screen, no waiting for a download, no storage decision. For a five-minute game, asking for an install is asking for more commitment than the thing is worth, and players know that even when they could not put it into words.
We ship when we are done. No review queue, no rejection over somebody else's interpretation of a policy, no week-long wait to fix a typo, and no form explaining a build to a reviewer who has never played it. A fix is live in under a minute. The first time you push a correction and reload the page yourself, it feels like cheating.
One build, every platform. Desktop, phone, tablet, and a school Chromebook all run the same files, so there is no iOS build and Android build to keep in step, and none of that slow drift where one platform has a bug the other does not and nobody is quite sure which build the report refers to.
Almost nothing to secure. With no accounts and no database of user data, the worst outcome of a mistake is a broken page. That is a comfortable place to be for a team without a security function. It is not that we are careless. It is that we removed the thing worth attacking.
The game can be embedded. A browser game can be placed inside somebody else's page, which makes licensing to a portal straightforward in a way that a native app is not: they add an iframe, we agree on a split, and nobody integrates an SDK or negotiates about build versions or waits for a reviewer to approve somebody else's shell.
The parts that are genuinely annoying
Audio on mobile is worse than on native. Browsers require a user gesture before sound can play, and behaviour still differs between iOS Safari and everything else, so we ended up unlocking the audio context on the first tap and accepting that the very first sound of a session may be missed, which for a game where the sound is half the feel is a real loss, and one I have not found any way around.
Input is less forgiving, with no gamepad guarantee, no haptic engine worth relying on, and touch targets that have to be sized for a thumb rather than a cursor, and because a physics game cares about precision this cost real design time.
More than we budgeted.
Monetisation is thinner. In-app purchases on the open web mean wiring up a payment provider yourself, and the ad formats that pay best sit behind products that not every developer is accepted into, so being turned down by an ad network is a strange experience: nobody tells you why, there is nothing to fix, and there is no appeal, only a form and a silence.
Then there is a low-grade tax that is hard to put a number on. Browsers change. An autoplay policy tightens, a behaviour we relied on gets deprecated, a new Safari version does something different with viewport height on a rotated phone, and we go back to code we had already considered finished. None of it is a crisis. It is a subscription we never chose to buy.
How it changes the design
Knowing that a player may never come back changes what we build. The first session has to explain itself without a tutorial, or with one short enough to be skipped by accident, and progress has to survive a closed tab, because a closed tab is the normal way a browser session ends rather than the exception nobody planned for.
And the game has to be worth something in three minutes, since three minutes may be all it gets. I like that constraint more than I expected to. An app store listing can promise hundreds of hours and be believed, whereas a URL has to earn the next ten seconds over and over, with no install to fall back on and no notification to bring anybody back. It is a harsher test than any review process.
Who this suits
Browser delivery suits short, single-mechanic games that a person might play once and never again, and it suits teams who would rather spend their time on the game than on store operations, on screenshots, on update notes nobody reads. It suits a studio that wants to publish its reasoning and link to it, because the web is where writing lives anyway, and a blog post costs nothing to keep online for years.
It suits us badly if what we wanted was a large live-service game with a community, seasons and a storefront. That is a different business. We are not trying to run it, and I do not want to pretend otherwise.
So the trade is this: we gave up the shop window, and in exchange nobody has to decide whether we are worth an install. For a five-minute game, that is a good trade. For a game you want somebody to play for a year, it would be a terrible one.