diff --git a/CONVENTIONS.md b/CONVENTIONS.md index 1b187b2..3eb023a 100644 --- a/CONVENTIONS.md +++ b/CONVENTIONS.md @@ -11,10 +11,10 @@ README. *Open a table*, *or join one* with a four-letter code, then *your games* (the ledger of tables this browser holds a seat at, with whose move it is and unread talk; for someone coming back it comes first, and finished - games wait further down), *your reports to the keeper*, and *about this game — - a labor of love*, which opens the about panel: a dialog of tabs (The - game, The tally, More games, Send word; a game may add its own, as Dip's - Playing here), `TabbedDialog.svelte`, with each game's words in its hall. + games wait further down), *your reports to the keeper*, and *about this game*, + which opens the about panel: a dialog of tabs (Origins, Games so far, + More games, Send word; a game may rename the first two in its own world, + as Waving Hands' Duels so far, or add its own, as Dip's Playing here), `TabbedDialog.svelte`, with each game's words in its hall. The address names the dialog (`#about`, `#about/tally`), so a plain link opens it; a game may put its guide and rules in dialogs the same way, as Dip does. Its strip of tabs is `Tabs.svelte`. @@ -86,8 +86,8 @@ README. - **The hosting line** follows the family list in the about panel: the games are free and will stay free, the servers cost a few dollars a month, and ko-fi.com/kestrelsnest is where anyone may chip in. It says - nothing is unlocked by it and nothing withheld without it, and it - never names a game's rights holder: a tip is for the hosting, not the + every game stays whole either way, and it never names a game's rights + holder: a tip is for the hosting, not the game. - **Preferences** are what a browser remembers about its player: a panel @@ -237,16 +237,58 @@ thing will happen), and the image carries it. - **Our own words.** An older implementation's prose is a guide to the tone, never a source to copy. - **Plain chrome.** Headings, tabs, captions and notes say what is there - in ordinary words. Avoid the construction a label, a colon, then an - explanation ("The ledger: every gesture..."), and headings made of "The" - and an abstract noun ("The game", "The tally"); readers take both as the - mark of generated text. The images live in what happens, not in the - labels around it. + in ordinary words. The images live in what happens, not in the labels + around it. The patterns readers take as generated text are listed under + "Writing for players" below. - **Changing text is not changing rules.** Chronicle wording is not part of the ledger, so it ships without a rules revision; the deploy gate compares outcomes, not sentences. A test that pins a phrase should pin the fact inside it. +## Writing for players + +Players have learned the habits of generated text, and once they spot one +they trust the rest of the page less. Every game built from this kit has +needed an editing pass to remove them. Write without them from the start, +and read each new page against this list before it ships. + +- **One semicolon is fine. A semicolon in every paragraph is a tell.** Use + two sentences, or join with "and" or "so". Lists of rules may keep their + semicolons. +- **No statement, colon, explanation.** "The table is yours: seat a bot, + invite a friend" becomes "You can seat a bot or invite a friend". The + same goes for a label and a colon at the start of a line ("Shieldwall: + two or more pieces..."), and for a heading that ends in a colon. +- **No headings made of "The" and an abstract noun** ("The game", "The + tally"). Name what is there ("Origins", "Games so far"). +- **No clipped fragments in threes.** "Four towers. One crown. No second + chances." Write one sentence instead. +- **No closing aphorisms.** A paragraph ends on its last fact, not on a line + meant to sound wise ("This is the whole art", "Nothing is unlocked by it + and nothing is withheld without it"). +- **No "X, not Y" flourishes** ("drawn, not borrowed"). Say what it is. +- **No page that talks about itself.** Avoid "This page walks the room", "the + page keeps watch" and "a walk through the page". Describe the game and + what the player does. +- **No spaced em dashes** in the interface, and few anywhere. +- **Nothing copied from another game that is untrue here.** Text carried over + from the kit or a sibling game is the most common source of errors. Look + for hidden information in a game with none, points in a game without + them, a bot's name from another game, and "both" at a table that seats + more than two. Read every inherited line as if it were new. +- **Every claim checked.** A date, a count, "only" or "never" is checked + against the source and the engine. "A thousand years before chess" was + wrong, and so was "a shield is the only defence". +- **Words for any table size.** Use "every player" for what each does on a + turn, and plurals for opponents ("your rivals"), unless the game seats + exactly two. +- **Words the ledger stores are fixed.** An end-of-game reason written to a + ledger line is matched later by exact text. Rewording + one needs a migration, not just an edit. + +The game's own voice (above) is not on this list. The chronicle's images, +the in-world names and the keeper are what the editing passes protect. + ## The move - **Every history reads top to bottom**, oldest first, and scrolls to the diff --git a/family.json b/family.json index 83cbeac..3305950 100644 --- a/family.json +++ b/family.json @@ -14,7 +14,7 @@ "slug": "waving-hands", "name": "Waving Hands", "url": "https://hands.kestrelsnest.social", - "pitch": "Duelling wizards. Two hands each. The right run of gestures is a spell.", + "pitch": "Wizards duel with their hands, and the right run of gestures is a spell.", "players": "2 to 12", "origin": "Richard Bartle's pencil-and-paper duel, 1977" }, @@ -22,7 +22,7 @@ "slug": "hnefatafl", "name": "Hnefatafl", "url": "https://tafl.kestrelsnest.social", - "pitch": "The Viking board game. One king, one throne, four corners, and a ring of attackers closing in.", + "pitch": "The Viking board game of a king breaking for safety and a ring of attackers closing in.", "players": "2", "origin": "the Norse tafl game, reconstructed from Linnaeus's 1732 notes; Copenhagen rules or Tablut" }, diff --git a/gamehall/site/index.html b/gamehall/site/index.html index a3c00e5..9dacc3c 100644 --- a/gamehall/site/index.html +++ b/gamehall/site/index.html @@ -159,7 +159,7 @@

Duelling wizards. Two hands each. The right run of gestures is a spell.
+Wizards duel with their hands, and the right run of gestures is a spell.
2 to 12 players · Richard Bartle's pencil-and-paper duel, 1977
Play at hands.kestrelsnest.social →The Viking board game. One king, one throne, four corners, and a ring of attackers closing in.
+The Viking board game of a king breaking for safety and a ring of attackers closing in.
2 players · the Norse tafl game, by the Copenhagen rules or Linnaeus's 1732 Tablut
Play at tafl.kestrelsnest.social →The games are free and will stay free. They run on small servers that cost a few dollars a month; anyone who wants to chip in toward the hosting can at ko-fi.com/kestrelsnest. Nothing is unlocked by it and nothing is withheld without it.
+The games are free and will stay free. They run on small servers that cost a few dollars a month, and anyone who wants to chip in toward the hosting can do so at ko-fi.com/kestrelsnest. Every game stays whole either way.
diff --git a/new-game.sh b/new-game.sh index 8511026..d09278f 100755 --- a/new-game.sh +++ b/new-game.sh @@ -38,7 +38,8 @@ Next: 2. Fill in the hall's pitch, tag and about panel (src/lib/components/Hall.svelte), the rules page, the guide, src/app.html's description, and the palette in src/app.css. Write every line a player reads in the game's own voice: an image with each - fact (docs/conventions.md, "The voice"). + fact (docs/conventions.md, "The voice"). Then read every page against + "Writing for players" in the same file, the template's own lines included. Add static/og.png (1200 by 630) and static/apple-touch-icon.png (180 by 180): app.html already points at them, and the static fallback serves the hall's HTML for a missing file, so a share card without the image breaks quietly. diff --git a/template/src/app.html b/template/src/app.html index df1d460..92238d9 100644 --- a/template/src/app.html +++ b/template/src/app.html @@ -7,21 +7,21 @@Every player lays a card face down; the highest card nobody else laid takes the point. First to {TARGET}.
+Every player lays a card face down, and the highest card nobody else laid takes the point. The first to {TARGET} points wins.
One line that says what the game is.
+One sentence that says what the game is, in its own world.
Two or three sentences for someone who has never heard of it: what you do on a turn, what makes it fun, and that it is free to play here against the bot or with friends.
-how to play · the rules · about this game — a labor of love ·
+how to play · the rules · about this game ·
A code opens the door either way: take a seat if one is free, or watch from the Peanut Gallery.
+With a code you can take a seat if one is free, or watch from the Peanut Gallery.