Why we built every VoltCade game from scratch
There are easier ways to fill an arcade than writing every game yourself. We picked the slow path on purpose. Here is what it bought us, and what it cost.
Many browser arcades are portals: a shell around games licensed from other people, sometimes hundreds or thousands of them. There is nothing wrong with that, but it produces a particular kind of site, where the games are interchangeable and nobody on the site can fix one when it breaks.
VoltCade is a different kind of site. Every game on it was written for it. There are no licensed games, no game engine, and no ports of older work. We started this way for a few reasons, and they turned out to matter more than we expected.
Reason one: the games share one language
Every game talks to the page around it through the same small SDK, a thin messaging layer between the game's frame and the site. The game says when it is ready, reports its score, and listens for pause, resume, restart and mute. Because that surface is identical everywhere, features built once work for every game: leaderboards, the daily challenge, challenge links you can send to a friend, favourites, and the pause button that works the same in a rhythm game as in a pinball table.
It also allows connections between games that a portal could not make. Pulse Beat's The 100 mode, for example, is a hundred measures in ten acts, and each act is themed after a different VoltCade game.
Reason two: small downloads
The games are plain JavaScript drawing on a canvas. There are no sprite sheets or image files inside them; the art is drawn by code when the game runs. A complete game, including its thumbnail, is a few hundred kilobytes, and the largest is under half a megabyte. That is why they start quickly on a slow connection and why the whole arcade can be saved for offline play.
Reason three: we can defend the leaderboards
Because we control every game, each one can be wired into the same score checks: a signed session issued by the server before a run starts, a maximum possible score and a minimum run length per game, and limits on how often scores can be posted. None of that is bulletproof, but it would be much harder to apply to games we could not change.
Reason four: one broken game cannot break the others
Each game runs in its own sandboxed frame. A bug in one game cannot crash another, or the page. A fix to a single game is a change to that game's files and nothing else.
What it cost
Writing every game is far slower than licensing them. VoltCade has 21 games, not 2,000, and it will never have the breadth of a portal. Each new game takes real time, and it has to be good enough to stand on its own.
We think that trade is right for what this site is trying to be: not every arcade game ever made, but one specific arcade where the cabinets are hand-built and somebody is still in the back fixing them.