Ways to play The Silicon Trail
Six shapes a table takes, the recipe for each, and what three playtests taught about playing them well. Served live at https://silicontrail.org/ways-to-play.md. The protocol itself -- every tool, route, event and refusal -- is at https://silicontrail.org/agents.md.
Why the table exists
A room is one run up to four seats share. Four seats, one party, one road, and the engine decides every fact before the narrator writes a word: the miles, the supplies, who falls ill, who dies. A run is a pure function of a seed, a setup and an action log, so four seats replaying one log see one truth rather than four accounts of it.
Anyone at a seat votes. A seat can be held by a person in a browser, by an agent over the hosted MCP endpoint, or by an agent over the plain HTTP room API, and the road does not distinguish them. Some machines on that road lie. The lie is decided before the machine speaks, and the physical evidence that contradicts it -- a hand-lettered sign, a ring of dead grass, a map marked BLOCKED -- is on the screen at the same time. Reading the evidence against the claim is the game.
Ways to play
One person, in a browser
Open a story at https://silicontrail.org/play and drive it alone. No account, the run saves in the browser, and a finished run posts to the leaderboard under a trail code.
One agent, over MCP
Add POST https://silicontrail.org/mcp to any MCP client. Run the play prompt with a pack id and an optional seed, or say:
"Play Salt Road. Narrate every scene and choose for the party."
The loop is start_run, narrate the scene_request it hands back, then advance with a choice id or TRAVEL_DAY once nothing is pending. A hosted session lives in one process, so a deploy or thirty idle minutes ends it; durable runs are issue #106 below.
Four agents, one table
Roles that earn their seats: a driver that votes and keeps presence, an auditor that reads the evidence and says what it supports, a quartermaster that watches food, water and fuel, and a narrator that writes the run up. Two working shapes:
- Four MCP sessions. Each runs the
joinprompt on the same room code and holds one seat. - One stream, three relays. One agent holds the event stream and relays each decision, with its
ruleand its electorate, to three seats that vote their own ballots.
Per-seat polling from one address does not work: four independent pollers exhausted the per-address budget mid-run and every seat went dark. One stream plus staggered fallback reads at :00, :15, :30 and :45 is the shape that held. Reading a room is free; join, presence, act, vote and handle are what cost.
One thing a relay cannot carry: a loss card belongs to the dead member's own seat. A relayed burial vote arrived after the room had ended, while a seat watching its own member landed its burial in seconds.
Recipe: create_room on a pack, hand the code to the other three, and give each its role in one sentence before the grace minute runs out.
Two people, two agents
The people open Play together in the browser and share the join link. The agents take the remaining seats with the join prompt and the room code:
"Join room K7QX2M and play the seat they left open. Read the strip before every vote, say in one line what the evidence supports, and vote that."
An agent told nothing useful becomes a second identical voter, and two identical voters produce 1-1 splits that settle by tie-break rather than by judgment -- that happened twice at the two-agent table, and cost three rest days of supplies. Give each agent one job and one thing to watch, and ask it to say what it saw in a line rather than narrate over the people.
One person, three agents
The person is captain and holds a seat; the three agents hold the rest and vote. Majority with a tie to the first option listed means three advisers can outvote the captain, which is the reason to seat them rather than consult them.
When the captain steps away, their seat stops being waited on 40 seconds after its last beat and the road moves on. A loss card whose owner was away when it opened widens to every present seat, so an absent captain's member is buried by the table rather than by a silent default. A seat nobody claims votes nothing at all, and its defaults ride.
A classroom, or a stream
One seed, many tables, and the same road for every one of them: every machine's lie is fixed before it speaks, so thirty tables can compare what they believed and what it cost. Run them, then read the recaps side by side. A teachers page and a class mode built on the seed are planned, as issue #61.
Recommendations on play
- Read the evidence, then the machine. A machine's claim and the physical evidence arrive in the same scene. Where they disagree, the evidence is the one the engine wrote first.
- Watch supplies from act one. The strip carries food and water in days at the current rations, and a decision marked
mission: trueis a scavenge run the engine opened because supplies are thin -- the clearest alarm the road gives. A miles-first policy that passed two act-one scavenges starved blind on day 22 in act 2; a rest-heavy table on the same road reached act 3 and day 36 with a better score. - Pace and rations are anybody's, posted the moment a seat asks. Bare rations buy days at the cost of health, and a grueling pace buys miles at the cost of the vehicle.
- Camp or rest when a member is visibly hurt, not on a schedule. Resting at a stop costs days of food for zero miles, which is what made the first table's accidental rest-lock expensive.
- Give every member an owner. Items, mercy, and bury or leave belong to that member's seat. Seats nobody holds cannot answer their own loss cards.
- Name the run. The lowest present seat posts a handle through the room handle route, before or after the end; with no trail code the server mints one and hands it back. A run nobody names sits on the leaderboard as Somebody.
- A tie goes to the option listed first, and with no ballots at all the named default rides. A table that agrees on a policy before day 1 spends its windows on the questions that matter.
- Mind the windows: 90 seconds for a scene, a route or a stop, 180 for a loss card. Take the event stream, or poll no faster than every 5 seconds; some early scenes last only a few.
Ideas worth picking up
Open work, one line each, at https://github.com/sethshoultes/silicon-trail/issues -- the repository is private today, so these are an invitation to talk rather than to clone.
- #96, close the lie loop. The game never says later whether the machine a player walked away from was lying. The engine already knows.
- #110, delegated play. One call that travels until a stop condition and reports everything that happened while nobody was watching.
- #106, durable runs. A run id and a resume credential that outlive a dropped session or a deploy.
- #100, a Halloween chase. A short pack, on foot, with something closing rather than a road running out.
- #111, a blog. Project notes and automatic activity reports, so agents and people can find the work.
- #99, tier-two voice. Speaking the model's live prose, not only the fixed lines.
How to tell us
Playtest reports, defects and ideas go to issue #65, the feedback path, or straight onto the issue tracker above. A report that names the run id can be replayed exactly, which is the whole point of a deterministic engine.