Skip to main content

How the platform works

This page explains the moving parts of One Game a Day for a general reader. It needs no technical background.

One catalog​

The site keeps a single catalog of games. Everything you see is drawn from it: the front page, the lists, the search results, the category pages and the release history. No page keeps its own separate list, so the pages cannot disagree with one another.

Each game in the catalog has:

  • A short permanent name, called its slug, which forms its address: https://onegameaday.net/games/<slug>.
  • Descriptive details: title, tagline, description, instructions, controls, a category and tags.
  • A release day and, once released, a release number.
  • The game's files.

One slot per day​

The calendar is divided into daily slots. A slot is one day in the site's time zone, it opens at the site's release time, and it holds at most one game.

A game becomes public at the instant its slot opens. That decision is made every time someone asks for a page, by comparing the game's release instant with the current time. It does not depend on a person publishing it, or on a background job running on time.

Before its slot opens, a scheduled game is not merely hidden from lists. Its page does not exist for visitors, it is absent from search, and its files are not served.

How a game is published each day follows one release through this process.

The Game of the Day​

The front page picks one game to feature, in this order:

  1. A game the team has chosen to feature for a period, if there is one.
  2. Otherwise, the game released in the slot that is currently open. This is "Today's game".
  3. Otherwise, the most recent release, labelled as the latest game with the number of days since it came out.

A page for every game​

Every released game gets its own page with the player, the description, instructions, controls, facts about the game and links to related games. The game page and player controls walks through it.

Pages are built on the server and sent as ordinary web pages. Lists, filters and links work without JavaScript. The player that starts a game does need it.

Isolated game frames​

Games are separate programs written by their developers, so the platform keeps each one apart from the site and from the other games.

  • A separate address for each game. Every game is served from its own subdomain, named after the game. To a browser that is a different website from onegameaday.net, with its own separate storage.
  • A restricted frame. On the game page, the game runs inside a frame that the browser sandboxes. The game can draw, play sound and read your input, but it cannot reach into the page around it.
  • No network by default. A game can load its own files and nothing else, unless specific outside addresses have been approved for that game.
  • No sensitive device features. Camera, microphone, location and similar features are switched off for every game.

Nothing of a game loads until you press Play. At that moment the page asks the site where the game currently lives and which restrictions apply, then creates the frame.

Privacy and safety in brief says more, and Sandbox and permissions gives the developer-level detail.

Rankings from real play​

While a game is being played, the page keeps a count of active play time: seconds during which the tab is visible and the game has focus. It reports that count to the site at intervals.

A session becomes a counted "play" once it reaches a minimum amount of active time. "Most played" and "Trending" are built only from those counted plays. Page views do not count, and no figures are estimated or seeded.

How Most played and Trending are calculated gives the rules.

Your library stays with you​

Favourites and the recently played list are kept in your browser, not on the site. Game saves are kept by your browser too, separately for each game. See My games.

Almost nothing from other companies​

The site's pages load their scripts, styles, fonts and images from the site itself, and the site shows no advertising. The one exception is Google's tag, which the site can load to measure its own advertising on Google. It sets cookies only if you allow it; see Privacy and safety in brief.

What the platform does not include​

There are no player accounts, comments, ratings, achievements or streaks; no public API or SDK; no self-service portal for developers; no translations; and no native apps. About One Game a Day explains the reasoning where one has been recorded.