▶ COMING SOON // iPHONE + iPAD + MAC + ANDROID
Ninehole
Nine cards. Nine holes.
Lowest score wins.
Nine-card golf for a table of two to sixteen. Everybody brings their own screen — a phone, a tablet, a laptop — one of them hosts the table, and any empty seat is filled by a bot. You get nine cards in a three-by-three grid, all face down, and you turn two of them over to start. On your turn you draw the top of the deck or take the discard, then either swap it into your grid or throw it away and flip something. A queen is worth 25, a king is worth nothing, and a joker is worth −2. Three of a kind down a column cancels the whole column to zero. The first player to get all nine face up goes out, everyone else gets one last turn, and a knocker who isn't lowest takes +50 for the trouble.
Both store buttons are dead on purpose. Ninehole is not on the App Store and not on Google Play yet, so there is nothing behind them to link to — they become real links the day it is live, and not one day earlier. No date, because we do not have one to keep. What we can tell you now is the shape: paid once — and one purchase covers iPhone, iPad and Mac. No ads, no in-app purchases, no account, no sign-in.
▶ THE LOOP
HOW IT PLAYS
A hole is nine cards; a game is as many holes as the host sets — one, three, six, nine or eighteen of them. One person opens a table, everyone else joins it, and the cards are dealt. Nobody shuffles, nobody argues about whether a jack is ten, and nobody has to remember whose turn it is.
-
THE GRID
NINE CARDS, FACE DOWN
You get a three-by-three grid, dealt face down, and you turn two of them over before the hole starts. That is everything you know about your own hand — and it is exactly as much as everyone else knows about theirs.
-
THE TURN
DRAW, OR TAKE THE DISCARD
Take the top of the deck or the top of the discard pile. Swap it into any square — face down or face up, your choice of victim — or throw it away and flip one of your own cards instead. A drawn card you don't want can be discarded; one you took off the pile cannot.
-
THE NUMBERS
A QUEEN IS 25
Number cards are face value, ace is 1, jack is 10, queen is 25, king is 0, joker is −2. Two jokers ride in every deck. The queen is the whole tension of the game: she is the card you most want to bury and the card you most fear flipping.
-
THE COLUMN
THREE OF A KIND IS ZERO
Three matching ranks down a column cancel the whole column to nothing — three queens are worth 0 instead of 75, which is the best thing that can happen to you all game. Jokers never cancel, because −6 already beats zero. Rows cancelling too is a switch the host can flip.
-
THE KNOCK
GOING OUT COSTS SOMETHING
The first player to turn all nine face up ends the hole; everyone else gets one last turn to fix what they can. If the knocker does not finish the hole with the lowest score — a tie counts as lowest — they take +50. Ending it early is a bet, not a victory lap.
-
THE TABLE
TWO TO SIXTEEN SEATS
Sixteen seats, and the host fills any of them with bots — so a table of three plays like a table of eight, and a table of one plays fine on its own. The host also sets the hole count (1, 3, 6, 9 or 18) and an optional turn timer; a player who wanders off is played by the bot brain until they come back.
▶ THE ARRANGEMENT
ONE DEVICE OWNS THE GAME
No server of ours. There isn't one to have.
Ninehole is self-hosted. One player's device holds the only real deck, runs every rule, and sends each of the other seats a version of the table with every face-down card blanked out before it leaves. That masking is not a courtesy — it is the only shape the game has. Nobody can see a face-down card, and that includes you, and that includes the host.
-
SOLO
PLAY VS BOTS
One button on the home screen deals a table against bots. It needs no network of any kind — the whole game is running on the device in your hand, opponents included.
-
SAME WI-FI
THE ROOM FINDS ITSELF
Host on one device and the table shows up by itself on every other device on the network, or type the host's address if it doesn't. Nothing leaves the building: the cards travel over your own Wi-Fi and stop at the wall.
-
ONLINE // OPT-IN
A CODE READ DOWN THE PHONE
Switch the table to Online and the lobby shows a six-character join code instead of an address. Rooms are found through Epic Online Services, which carries the packets between houses — the host's device still owns the game. Still no account: the login is anonymous and per-device. It is off unless you choose it, and a build without Epic credentials cannot offer it at all.
Online play is the newest and least-travelled part of this game. Solo and same-Wi-Fi tables are the ones we play, and they are the ones we would tell you to buy it for.
▶ THE HONEST BIT
ONE PRICE, FOREVER
Ninehole is a premium game and nothing else. No ads. No in-app purchases. No account, no sign-in. No analytics. There is no subscription, no season pass, no currency, no energy meter and no card-back shop — none of those things were built, so none of them can arrive in an update you didn't ask for. You buy it once and own all of it.
-
APPLE
ONE PURCHASE, THREE DEVICES
iPhone, iPad and Mac on a single Universal Purchase — buy it once and it is on all three. Family Sharing covers the household, which for a game you play around a table is rather the point.
-
GOOGLE PLAY
THE SAME NUMBER
Paid once, up front, and deliberately the same figure Apple carries. A game whose players are sitting in one room must not show two different prices when they compare phones across the table.
-
DESKTOP // A PLAN
STEAM
Windows and macOS, intended and not dated. There is no store page behind this yet, so treat it as a plan rather than a listing.
We do not print prices here. A figure written on this page goes stale the day a store moves it and nobody notices; the store page you buy from is always current and always right for your territory.
▶ ONE CODEBASE
WHERE IT RUNS
Built with Flutter: one codebase across iOS, iPadOS, macOS, Android and Windows. The rules are one pure-Dart engine that no screen, no bot and no network layer is allowed to second-guess, and the host's device is the one running it — so a phone and a laptop at the same table are reading the same game rather than each keeping its own opinion of it.
-
PLATFORMS
POCKET, LAP, TABLE
iPhone and iPad, Android phones and tablets, and macOS — and an iPad in the middle of the table is a genuinely good way to run the host seat. A card that has to be read across a table is drawn in two styles: proper corner-index playing cards on a desktop, one oversized rank on a phone, and an auto setting that picks per device.
-
SETTINGS
MOTION YOU CAN TURN OFF
Every flight, punch, shake and burst on the table honours reduce motion: the movement stops and the meaning stays, including the drifting felt behind the cards. Sound and haptics have their own switches, and a small value chip on every face-up card can be turned off once you have the scoring table in your head.
▶ ON THE RECORD
IT COLLECTS NOTHING
Ninehole has no account, no sign-in, no server of ours, no analytics and no crash reporter, and there is no advertising or in-app-purchase code in the build at all. Your name, your avatar, your settings, your lifetime stats and the table you are in the middle of are written to your own device's storage and stay there; deleting the app deletes all of it. A solo game or a same-Wi-Fi table sends nothing past your own network. Choosing Online — which you have to do on purpose, on the Host or Join screen — is the one exception, and the privacy page says exactly what reaches Epic Online Services when you do, and what does not. Purchases are handled by the store you bought from; we never see payment details.
▶ WHERE THE PARTS CAME FROM
CREDITS
Every card, the felt and the app icon are drawn in code — painters and a fragment shader, no imported art. Every sound is synthesized rather than recorded. Type is Lilita One and Nunito, both under the SIL Open Font License, with the licence texts bundled in the app's own licence page. Everything else came off our own line.