Defensive Publication – Prior Art Date of First Public Disclosure:
2025-04-05Author: [Glenn Gardner / ggardner42] License: CC0 1.0 Universal (Public Domain) Repository:https://github.com/ggardner42/pokerscript-prior-art
PokerScript is a client-server protocol that enables any poker variant (Hold'em, Stud, Omaha, Draw, Razz, Badugi, etc.) to be rendered on a dumb client using only a dynamic grid of card positions and borders, defined and controlled entirely by the server.
The client has zero knowledge of poker rules. It is a pure renderer that follows server instructions to:
- Allocate a 2D grid
- Place cards at coordinates
- Draw borders ("fences")
- Animate reveals, discards, and betting rounds
This allows new games to be added instantly via server update — no client app update required.
Traditional poker apps hardcode UI per game:
if (game == "holdem") renderCommunityBoard()
if (game == "stud7") renderUpcardsPerPlayer()Adding "Pineapple" requires new APK, App Store review, and user update. PokerScript eliminates this coupling.
-
Client maintains a 2D array of card slots (e.g., 10×10 = 100 positions)
-
Each slot:
null,hidden,back, or{rank, suit} -
An array of text grids is also overlayed sharing the coordinates of the card slots.
-
Text grids convey game state (player action, pot and stack sizes, timers, etc.)
-
The grids can be either coarse (cards side by side) or fine (cards on top but offset revealing cards beneath).
-
A reasonably fine grid might be in units of 10ths of a card.
-
A fine grid also helps to draw boxes (fences) around sections of card slots, for instance, to call out community cards.
-
Cards may also be rotated (for certain community card layouts).
-
Cards may also be tagged as selectable or non-selectable (selectable for replacement in draw poker).
-
There is also a control area in some part of the screen (typically the bottom), where the server can define buttons and text windows.
-
Buttons are for player actions, which, in some poker games, may involve discarding, or passing cards.
-
The text window is for placing an amount to bet.
- Message to clear game board.
- Message to place a specific card face up at a slot (may be json or binary or text) (e.g., "7h at 0,0", "Ac at 5,3")
- Message to place an anonymous card face down at a slot (e.g., "X at 1,3")
- Message to mark cards as inactive (some player has folded, but upturned stud cards remain visible) (show winning hand by dimming excluded cards, moving winning cards offset a little).
- Message to remove specific cards by slot.
- Message to place a border, perhaps with a label (e.g., "Community Cards") (upper x,y; lower x,y).
- Message to place text at a location (e.g., ["Raise $20" at 5,10])
- Client just faithfully places cards and text where the server says, and conveys universal betting actions to the server (fold, check, call, raise, etc.).
- No game logic. No
ifstatements.
| Benefit | Impact |
|---|---|
| Zero client updates | Add 100 games → server config only |
| Native + Web | Same protocol |
| Hotfix layouts | Fix Stud UI → server patch |
| A/B test UIs | Try two templates |
| Secure | Client can't cheat — server controls |
-
A method for rendering any poker variant on a client device, comprising:
- A grid defining card positions, text positions, and borders
- Receiving instructions to place, clear, or animate cards
- Rendering without knowledge of poker rules
-
The system of claim 1, wherein new games are added via server update only.
-
The system of claim 1, wherein public actions (e.g., discard count) are broadcast as metadata.
To the extent possible under law, Glenn Gardner has waived all copyright and related rights to this work. This work is published from: Worldwide.
http://creativecommons.org/publicdomain/zero/1.0/
Glenn Gardner, "PokerScript: Universal Server-Driven Poker UI Protocol", GitHub: https://github.com/ggardner42/pokerscript-prior-art, First published: 2025-04-05