Skip to content

ggardner42/pokerscript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

PokerScript: A Universal, Server-Driven Poker UI Protocol

Defensive Publication – Prior Art Date of First Public Disclosure: 2025-04-05 Author: [Glenn Gardner / ggardner42] License: CC0 1.0 Universal (Public Domain) Repository: https://github.com/ggardner42/pokerscript-prior-art

Abstract

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.

Problem Solved

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.

Core Innovation: Grid + Instruction Model

1. Universal Grid

  • 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.

2. Server Sends Messages detailing where cards and text are placed

  • 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])

3. Client knows nothing about game being played

  • 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 if statements.

Benefits

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

Claims (Prior Art)

  1. 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
  2. The system of claim 1, wherein new games are added via server update only.

  3. The system of claim 1, wherein public actions (e.g., discard count) are broadcast as metadata.

Public Domain Dedication

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/

Cite This Prior Art

Glenn Gardner, "PokerScript: Universal Server-Driven Poker UI Protocol", GitHub: https://github.com/ggardner42/pokerscript-prior-art, First published: 2025-04-05

About

A poker client that supports a poker server without knowledge of any games

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors