The submodule pin is the version; nothing else about the package changed. Four game types in the lobby, the whole rule set readable before taking a seat, leaving and rejoining a game, and sound in a multiplayer game for the first time — all upstream, all through the same server this package has always run. - startos/versions/current.ts — 0.7.0:3, with release notes in all five languages. - instructions.md — how a game is set up now, and what Leave / Forget mean for a seat. - README.md — the bundled version, and a limitation spelled out: a player's identity lives in their browser, so a lost token cannot be recovered from this package. - UPDATING.md — how to pack a test build from work that is not pushed yet, which is how v0.7.0 was played before release, and why the downstream digit moves for each one. The downstream digit is :3 rather than :0 because three test packs were installed on the box while v0.7.0 was being played; publishing :0 now would be a downgrade it would refuse. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016JczK5i33ZNSf2PtzZqdhS
83 lines
4.6 KiB
Markdown
83 lines
4.6 KiB
Markdown
# Station Master
|
|
|
|
## Documentation
|
|
|
|
- [Rules and design docs](https://draco.local:53871/Jesse.Markowitz/station-master/src/branch/main/docs)
|
|
— the rulebook implications, the multiplayer design, and the game's architecture.
|
|
|
|
## What you get on StartOS
|
|
|
|
This service runs the multiplayer server: a lobby, and a table for 2 to 4 players to play a
|
|
competitive or cooperative game together from their own browsers. Everything a player needs — the
|
|
game itself, the lobby, and the connection back to this server — is served from the single web
|
|
interface below; there is nothing else to install or configure on a player's side.
|
|
|
|
## Getting set up
|
|
|
|
1. Run the **Get Join Secret** action from this service's Actions menu, and copy the value it
|
|
returns.
|
|
2. Share that secret, and this service's address, with everyone you want to play with. Anyone
|
|
holding the secret can create a new game or join one that hasn't started yet.
|
|
3. Open this service's **Multiplayer Table** interface. You'll land on the front page, which
|
|
offers three ways in: solitaire, the replay viewer, and multiplayer.
|
|
4. Click **Play multiplayer**, then **Create Game** (or **Join Game** with a game code someone
|
|
else created), and enter the join secret when asked.
|
|
|
|
## Using Station Master
|
|
|
|
### Multiplayer Table
|
|
|
|
The front page offers solitaire, the replay viewer, and multiplayer. **Play multiplayer** takes you
|
|
to the lobby: create or join a game, seat players (including filling empty seats with a bot), and
|
|
start. Once a game is underway, this same interface is where every player plays their turns and
|
|
watches the table — there is nothing else to open.
|
|
|
|
Solitaire runs entirely in your own browser and needs nothing from the server, so it works here
|
|
exactly as it does on the public Station Master site.
|
|
|
|
**Setting a game up (new in 0.7.0).** The lobby opens on **Join a game**: type the code you were
|
|
given and you will see the whole rule set — the opening hand, what the work pays, every way the game
|
|
can end — *before* you take a seat. Creating a game instead starts from a **game type**: Co-op,
|
|
Competitive or Cutthroat. A type just fills in the rules; every one of them is yours to change, and
|
|
changing any of them marks the game **Custom**, which keeps the scoring of the type you started
|
|
from. The seed, the number of players and the number of Days sit above the type and do not make a
|
|
game Custom — the targets re-derive from them.
|
|
|
|
**Leaving, and coming back.** Anyone may leave a lobby, and the host can clear a chair, so a
|
|
mis-join or somebody who wanders off no longer blocks a table that cannot start until every seat is
|
|
taken. A **Leave game** button appears once a game is running: it keeps your seat and the table
|
|
waits for you, and the lobby lists every game this browser is in so you can rejoin it — or join a
|
|
different one without losing the first. **Forget** on that list is the one thing that cannot be
|
|
undone: the token kept in your browser is the only proof of who you are, so a forgotten game cannot
|
|
be rejoined from that browser.
|
|
|
|
### Get Join Secret
|
|
|
|
Run this whenever you need the current join secret again, or want to shut out anyone still
|
|
holding an old one. Every run replaces the secret and immediately puts the new one into effect —
|
|
players already seated in a game are unaffected, but the old secret stops working for creating or
|
|
joining games from that point on.
|
|
|
|
### Games in Progress
|
|
|
|
Shows every game on the server: who is playing, which Day and Stage they have reached, and whose
|
|
turn it is. It changes nothing, so run it whenever you are curious. It is also how you spot a game
|
|
nobody is coming back to — one whose last move was days ago, still waiting on a particular player.
|
|
|
|
### Manage Game
|
|
|
|
Pick a game, then either save a copy of it or end it.
|
|
|
|
**Export** hands you the whole game as text and leaves it running. Save that text as a `.json`
|
|
file and you can open it in the replay viewer later to watch the game back.
|
|
|
|
**End the game** deletes it and disconnects anyone still watching. This is the only way to clear
|
|
a game that will never be finished — otherwise it sits there, and comes back every time the
|
|
service restarts. It cannot be undone, so the game's save is handed back to you when it happens:
|
|
that text is the only copy left, so keep it if the game was worth watching.
|
|
|
|
> **Games in progress normally survive an update of this service.** When the update changes the
|
|
> rules of the game itself, a half-played game cannot be resumed under rules it was not played by,
|
|
> and that game is set aside rather than continued — you would see it disappear from the lobby.
|
|
> Nothing is ever deleted, so going back to the previous version makes it playable again.
|