A devlog by Neeraj Kotwani, who builds every game on Elipar.
The achievements on this site started as ten badges, and all ten were aggregate statistics. Games played. Days in a row. Favourites saved. Scores beaten.
Every one of them could be computed without knowing anything about any particular game. Which is tidy, and it meant there was no way at all to unlock a badge for doing something specific inside a game — no "you beat the boss", no "you finished the lap". The one kind of achievement people actually care about was the one kind the system could not express.
A second channel, not a bigger score message
Games already talk to the page by posting a message with a score. The obvious move is to overload that — add fields, or encode the feat into the score somehow.
Instead a game's message can now carry an optional milestone string alongside, or instead of, the score. The page stores unlocked milestone ids locally, and an achievement's condition can ask whether a given id has ever been seen.
The "instead of" is the part that needed care. The handler processes score and milestone independently, because one of the three milestones fires mid-run, from a game that has no score to report at that moment.
An earlier shape of this would have had a single guard at the top of the handler: no valid score, return. That is the natural way to write it and it silently drops every milestone-only message. There is a note on the handler saying not to collapse it back into one early return, because it reads like redundant code and is not.
This is a general thing about extending a message protocol: if the new field can arrive without the old one, the validation for the old one cannot sit in front of it.
Three milestones, and why each one is safe to trust
Each milestone has to be tied to something the game can genuinely prove, or the badge is a lie.
Strike Runner — Boss Down. Fired from the win path. That looks lazy — surely winning and beating the boss are different things? They are not, here: the goal is gated behind the boss being dead, so the exit cannot be reached while it is alive. A win therefore implies the boss was defeated. The gate is what makes the shortcut sound, and it is worth checking that kind of implication rather than assuming it, because if the gate were ever removed the badge would quietly start lying.
Coaster Rush — Checkered Flag. Also fired from the win path, which only runs when progress reaches the full track length. Same reasoning.
Forest Dash — Long Haul. This one is different, and it is the reason the channel had to support milestone-only messages.
It fires the instant total distance first crosses 500 metres — during the run, not at the end. A run can continue well past 500 metres, and there is no good reason to make somebody wait for a game over to be told they hit the distance. It is guarded by a flag reset at the start of each run so it cannot fire twice.
Mid-run is the right moment for a distance milestone and the wrong moment for a score, and that is exactly why the two travel independently.
Local, with no backend at all
Milestones are stored in the browser. No account, no server, nothing to sign up for — the same as the personal bests, the recently-played list and the favourites.
That is a real limitation stated plainly: clear your browser data and they are gone, and they do not follow you to another device. The leaderboards are the one feature here with a real backend, and they ask only for a name you type each time.
The trade is that the site needs no accounts to be fully playable, which was the call made at the start and has held up. A badge that lives in your browser is worth more than a badge that needs a registration form.
Strike Runner itself
A side-scrolling run-and-gun: move, shoot, dodge, reach the exit. The boss sits in front of the goal and blocks it until it is down, which is the gate that makes the badge honest.
It was also one of two games added to the global leaderboards late, after launching without them. Neither needed a scoring change — their existing combat and distance points were already differentiating enough to rank. That is not always true, and this site has two games where every winner scored identically until it was fixed, so it was worth checking rather than assuming.
Strike Runner is free in a browser, no account, no download. Beat the boss and you get the badge for beating the boss.