A downloadable asset pack

Buy Now$11.99 USD or more

Sit your player down across a tavern table from one of your characters and play one of four old board games for a stake: Nine Men's Morris, Fox and Geese, Oware or Fanorona. The opponent thinks, at five strengths, without ever stalling a frame. Every board, every man and every seed is drawn by the package. Pure GML plus one shader.

A tavern in an RPG is usually a menu. Taproom makes it a table: the old man in the corner always sets out the same scratched slate, the captain plays Oware on tooled leather with cowrie shells, and the player's record against each of them is kept. The opponent's name chooses its board and men, so every regular in your game has a table of their own without you drawing one.

// Create: sit the player down
my_table = tpr_table_open({ game: "morris", opponent: "Old Brannoc", grade: 3, side: "first", stake: 40 });
// Step: run the table; when the player leaves it, read the result
tpr_table_step(my_table);
if (tpr_table_closed(my_table)) { my_result = my_table.result; tpr_table_free(my_table); }
// Draw GUI: the table is 816 x 624, drawn anywhere, at any scale
tpr_table_draw(my_table, 72, 8, 1);

What your players see

  • Four games with their real rules: mills and flying in Morris, the fox's jumps against thirteen geese, sowing and capture in Oware, approach and withdrawal chains in Fanorona (taking is compulsory). Shift shows the rules card at the table.
  • Eight board materials, each painted per pixel on the GPU and given its own line work and border: slate, marble, a merels board knifed into the tabletop, black lacquer with gilt, a linen mat with stitched lines, tooled leather, walnut with brass, carved soapstone. Scratches and chipped edges follow how worn the board is.
  • Six sets of men (river stones, bone and horn, glass, coins, fired clay, boxwood and ebony) and the fox, lit from a lamp at the upper left; Oware is played with each set's own seeds.
  • An opponent at five strengths, Novice to Master: an alpha-beta search that runs a slice of each frame, so the game never freezes while it thinks, and the same position with the same seed gets the same move. It deepens under a node budget per game, so even the Master answers within seconds (the worst we measured: 2.9 s of CPU, about 8 s of play at the default budget).
  • The oak table, the felt trays, the brass plaques, the parchment card and the verdict slip are drawn too. 192 table combinations; nothing is an image file.

Built to plug in

  • Three calls: tpr_table_open, tpr_table_step, tpr_table_draw, then read table.result (who won, by how much, the stake) and move the gold your own way.
  • A watch mode where both sides are played by the search (an attract mode, or two NPCs at a table), scripted input for tutorials, optional sound hooks, and win/loss records you save with your game.
  • The rules and the opponent are also callable on their own (pure GML, no drawing), and every drawing function is public.
  • Opening a table costs a few seconds (it draws everything once, supersampled: 2.4 to 4.4 s on our shared test machine). Open it behind a transition: the demo shows a "setting the board" frame first. After that a frame costs little.
  • Raw, readable source with a header on every public function.

Tested

  • Igor package build clean on the shipped source, and proven able to fail.
  • In-engine assertions on a real built exe, held to our RPG Maker MZ original run in Node: 1,162 playout steps of the four rule sets exact; 336 opponent searches, the 331 that finish their full depth matching the original's move, score and node count exactly; 179 drawings with exactly the original's 14,075 fills, strokes, clips and glyphs; the shader against its CPU twin over 10,368 pixels.
  • Four whole games played to a verdict at the table, and a player's game driven by clicks.
  • A blank project that installed the package the way you will and ran the Readme's own code, with ink counted on everything it drew.
  • 180 adversarial calls against the 45 documented functions with zero crashes.

Requirements

GameMaker 2024.14 or newer (built and tested against runtime 2024.14.4.268, VM, Windows). Pure GML plus one GLSL ES shader for the board materials; no extensions, no DLLs, no sprites. If the shader does not compile on a target, the boards are painted flat and the game still plays. Import the .yymps, put rm_tpr_demo first, press Play: THE TAPROOM, six regulars round the table, each with a game and a strength. Click a card to sit down. Taproom makes no sound of its own; hook your own in.

One commercial licence, unlimited games, no attribution required. Everything the package draws in your game is yours to ship, including on your store page and in your trailers.

Paid, from the same studio

  • Taproom for RPG Maker MZ ($11.99): the original, run from an event.
  • Derby ($12.99): a race meeting the player bets on, with a generated stable and a photo finish, for GameMaker.
  • Pastime ($19.99): a cabinet of minigames (darts, dice, cards, hidden objects), each drawing its own board, for GameMaker.
  • Bracket ($12.99): every inn and shop hangs its own sign, generated from what it sells, for GameMaker.

More GameMaker systems at csaf.itch.io.

AI disclosure: the code, the cover illustration and the interface text in this package were produced with AI assistance. Every store image and the GIF were rendered by the product itself. Type: Cinzel and Alegreya (SIL OFL 1.1), notices included.

Purchase

Buy Now$11.99 USD or more

In order to download this asset pack you must purchase it at or above the minimum price of $11.99 USD. You will get access to the following files:

Taproom_GameMaker.zip 574 kB

Development log

Leave a comment

Log in with itch.io to leave a comment.