Your arcade has had an address since the day you claimed it. As of this week, it has a counter too. Open the studio, and above your games you'll find a panel. It shows how many people opened your arcade, how many started a game, which games they picked, how long they stayed, and whether they played in a browser, on an exported Windows build, or on a phone. Only you can see it. The arcade itself shows nothing.
Here is what the panel shows, where the numbers come from, and what it was built not to do.
What you can see
The panel covers the last 7, 30 or 90 days, and the whole thing fits in one glance:
- Views. Times your arcade page was opened.
- Players. Distinct people, counted once per day. Two hundred reloads by one bored friend counts as two hundred views and one player.
- Plays. Games started, whether on the arcade, from a direct link, or in a desktop or mobile build.
- Played. Total time people spent inside your games. Counted in hours, once there are any.
- A daily chart. Plays as bars with views washed in behind them. There is no axis, on purpose. It shows whether traffic is heading up, and the figures above handle the specifics.
- Your top games. The five most played over the period, with plays and playtime for each. Every game card in the grid also carries its own small play count, so reordering your arcade is an informed choice rather than a guess.
- Where they played. Arcade, direct link, Windows, macOS, Linux, Android, iOS, split out clearly.
An arcade without any visitors yet says so, and offers a link to share. Every number here is real from the very first visitor. Nothing is sampled or estimated.
Where the numbers come from
Two sources report in, and they never overlap.
The arcade page counts its own views and the games launched in its player overlay. When someone finishes a game, or closes the tab with the game running, the page sends through the session length.
The game itself covers everywhere else. Every build the studio produces now carries a tiny reporter, a few dozen lines that sit inside the game alongside its controls and cover art. When the game boots outside the arcade page, it reports a play. Every couple of minutes while running, it logs another slice of playtime. That is how a link pasted into a group chat gets counted, and how a Windows, macOS, Linux, Android or iOS build from the Publish pane gets tracked. It is the exact same reporter, with the platform name attached. Inside the arcade page it stays quiet, because the page already logged that play. Nothing gets counted twice.
Playtime arrives in slices rather than one total at the end for a simple reason. Platforms do not let programs send messages while closing, and most sessions end when someone shuts the window. Reporting every couple of minutes means a session loses at most its final slice.
Two extra rules keep the data honest. Your own previews in the studio are not players, so the reporter ignores them. The QA agent that playtests every build before you see it also plays the game, so the reporter ignores that too. What you see is real people.
What it deliberately does not do
The easiest path would have been dropping a third-party analytics script into every game and arcade page. That script would have placed cookies, tracked your players across other websites, and fed data to a firm whose business is profiling people. The arcade uses none of that. Instead:
- No cookies, no consent banner. Nothing gets stored in a visitor's browser.
- No addresses kept. To tell a hundred people apart from one hundred reloads, each visitor is converted into a hash of their network address and browser that changes daily. Yesterday's hash cannot be linked to today's, so nobody is tracked across days, and hashes are deleted within days anyway.
- No profiles. There is no per-player view, no identity list, and no return-visitor tracking. The counts are the data. There is nothing else.
- No public numbers on your arcade. The arcade page does not display play counts, and games are not ranked by them. The panel belongs to you. This follows the same logic as skipping a public feed. Once a metric is public, it starts dictating what gets made. The only exception is one you choose yourself: a game you star and list in the games directory shows its play count there.
- Nothing about the game. The reporter sends word that a game started, followed by two more minutes of play. It never logs what happened in the game, player inputs, or device details beyond the platform name. High scores are separate, and only exist in games that have a table: a score and a name the player typed, sent when a run ends.
The entire reporter is just a few counters ticking up. It leaves a smaller footprint than almost any analytics tool, which is why the arcade works without a novel-length privacy policy.
How to read it
A few details help ensure the numbers mean what you think they mean.
Views, players and plays are different metrics. Views is how often the front door opened. Players is how many people walked through. Plays is how many times someone sat down at a machine. In a healthy arcade, plays outnumber players because people try multiple games.
Days are in universal time. Every arcade runs on the same clock. A play at 11pm in London and one at 8am in Tokyo fall on the expected dates, and yesterday's figures never drift.
A single sitting is capped at four hours. A tab left open overnight is not playtime. The cap prevents an abandoned browser window from tacking an entire workday onto your total.
Older builds report from their next build. The reporter sits inside the game code, so desktop or mobile exports made before this week do not have it. Your next export will, and web builds update the next time you alter the game. Plays directly on the arcade page count from today either way.
A flood is not traffic. Each visitor can log a generous but capped number of events each day. Anything past that gets dropped. A script hitting your arcade will not inflate the numbers, and neither will a determined friend.
Why it lives in the studio
It would have been easy to stick a play count under every cover on the arcade. There is a version of this product where that feels like the standard move. We decided against it, for the same reason the arcade has no feed. A public number creates an incentive, and that incentive quickly starts meddling with what you choose to make next. Your arcade is a place to send people, not a leaderboard.
The studio has since added a games directory that does rank games publicly by plays. It is strictly opt-in per game, pulling only from your starred titles. Your arcade itself stays untouched. The post about the directory explains the thinking, and everything above still holds for your arcade.
The private counter is different. It confirms that the link in your bio is getting opened, that people keep picking the game you felt doubtful about, or that someone three time zones away played for forty minutes on a Tuesday night. That is the feedback a creator actually values, and it does not need an audience.
Since then: high scores
Your arcade still isn't a leaderboard. Your games can have one now. When a game keeps score or times a run, the studio gives it an online high score table. The player finishes, types a name the first time they make the table, and sees where they placed against everyone else who has played. It is the one number players do see, and it lives inside the game, which is where people expect to find it.
Each player holds one entry per board: their best. A board keeps the top hundred. A game can have up to sixteen boards, so a racing game can have one per track and a puzzle game one per mode. Boards where lower wins work too, for best times. Offline, the game shows a table kept on the device instead, so the high score screen is never empty.
Who counts as a player here
A high score has to know it's the same player tomorrow, which the play counter above deliberately doesn't. So the game makes up a random number the first time it runs and keeps it on the device, next to the name the player typed. That number travels with each score, so a better run replaces an older one instead of adding a second line. We store it only as a one-way hash and never send it back out, not even to the game. There is still no account, no email address, and nothing that links a score to the visitor counts above.
Rude names
Names are checked on the server before anyone sees them. The filter undoes the usual disguises (numbers for letters, accents, spaces between letters, a letter held down for emphasis), and a name that reads as a slur, a sexual term or an insult is shown as "Player". The score still counts. It catches the obvious and the lightly disguised. It will miss a determined speller now and then, and occasionally catch an innocent name, which is what the delete button is for.
Cheating, honestly
A browser game runs on the player's machine, so anyone who wants to can send any score they like. No web game can stop that completely, and we're not going to pretend this one does. What the tables do is make the cheap cheats pointless.
- Runs are timed by the server. When a run starts, the game asks for a signed ticket stamped with the server's clock and hands it back with the score. The server knows how long the run really took, and faking a long run means sitting through one.
- The limits live where players can't reach them. When the agent adds a table, it writes generous bounds into the game's files: the highest score that's possible, how fast points can come, how short a run can be. The server reads them from the studio's copy of the game, so changing the game in a browser changes nothing it checks.
- Freak scores wait. Once a board has ten entries, a score more than three times the current best waits for a second look.
- Suspect scores are held, not refused. The player who sent one sees it on the board as if it counted. Nobody else does until you approve it. A cheater gets no hint about which check caught them, so there's nothing to tune against.
Someone patient who reads the game's code can still post the best score the limits allow. That's the ceiling, and it's a lot lower than "any number at all".
What you see
Every game's Stats pane has a High scores card. It shows each board with names, scores, where each one was played and when, plus anything held for review with the reason and how long the run took. Approve a held score and it joins the board. Delete any entry, or reset a board and start again. Scores you set while testing in the studio preview go on the board too, labelled as your preview, so you can watch the table work and clear them out before you share the game.
Ask for it in plain words, "add an online high score table", or let the studio add one when the game obviously wants it.
Try it
Open the studio. If you have already shared your arcade, the panel will have numbers waiting for you. If not, send your link to one person tonight and check back tomorrow morning.
Frequently asked questions
Can I see how many people played my vbgnt games?
Yes. The studio shows a traffic panel above your games with views of your arcade page, distinct players per day, games started, and total playtime, over the last 7, 30 or 90 days. It lists your five most played games with plays and playtime each, splits plays by platform, and every game card in the grid carries its own play count. The panel is visible only to you when signed in; the public arcade page shows no numbers.
Does it count plays from downloaded desktop and mobile builds?
Yes. Every build the studio makes carries a small reporter inside the game itself. When a Windows, macOS, Linux, Android or iOS export starts, it reports one play labelled with its platform, and it reports playtime every couple of minutes while it runs. Exports made before the feature shipped do not carry the reporter; the next export from the Publish pane does.
Does the arcade use cookies or tracking scripts?
No. There is no third-party analytics script, nothing is stored in a visitor's browser, and no consent banner is needed. To count distinct players, each visitor is reduced to a hash of their network address and browser that changes every day, so a player cannot be followed from one day to the next. The hashes are discarded within days and no addresses are kept.
Are play counts shown on my public arcade?
Not on your arcade. The arcade page shows cover art and games, not numbers, and it does not rank games by plays. The counts exist in the studio for the arcade's owner, and, for a game you have starred and listed, on the games directory at games.vbgnt.com, which is opt-in per game. This is deliberate: a public number becomes a ranking, so the ranking is behind a switch you control.
Do my own test plays count?
No. Plays from the studio's preview pane are ignored, and so are the automated browser runs the studio uses to test each build before it is published. Plays you make by opening your public arcade in an ordinary browser do count, the same as anyone else's. High scores are the exception: a score you set in the studio preview goes on the board, labelled as your preview, so you can see the table work and delete it.
Can my vbgnt game have an online high score table?
Yes. Ask the studio to add an online high score table, or let it add one to a game that keeps score or times a run. Players type a name the first time they make the table and see where they placed. Each player keeps one entry per board, their best, and a board holds the top 100; a game can have up to 16 boards, including boards where the lowest time wins. Offline, the game shows a table kept on the device. You see every board in the game's Stats pane and can delete an entry or reset a board.
How do vbgnt high scores stop cheating?
Not completely: any game that runs on the player's machine can be made to send a fake score. The tables make cheap cheats pointless. The server times each run with a signed ticket stamped by its own clock, checks the score against limits the studio wrote into the game's files (highest possible score, fastest scoring rate, shortest run), and treats a score more than three times the current best as suspect. A suspect score is shown only to the player who sent it until the game's owner approves it.
What happens to offensive names on a high score table?
Names are checked on the server before anyone sees them, with common disguises undone first: numbers for letters, accents, spaces between letters and repeated letters. A name that reads as a slur, a sexual term or an insult is shown as "Player" and the score still counts. The game's owner can delete any entry the filter misses.
