Polestar
Polestar is a free, open-source leveling guide addon for WoW: Forever: an in-game arrow and leveling routes that make sense for every race 1 to 60, plus class quests.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
A Fake Artist Goes to New York - online multiplayer. Next.js + Neon + Pusher, event-sourced sync with gap healing.
翻訳待ち
Loading the full README. The saved excerpt is shown below.
A Fake Artist Goes to New York
An online multiplayer implementation of the drawing-and-deduction party game.
Three to ten players, one shared room code, no accounts and no install.
Next.js on Vercel, Neon Postgres, realtime over Pusher.
Status: playable. A full match runs end to end in the browser — lobby,
secret roles, drawing on a shared canvas, a secret ballot, runoffs, the guess
and the room's judgement of it, and a scoreboard across rounds.Read the full README ↗An online multiplayer implementation of the drawing-and-deduction party game. Three to ten players, one shared room code, no accounts and no install. Next.js on Vercel, Neon Postgres, realtime over Pusher.
Status: playable. A full match runs end to end in the browser — lobby, secret roles, drawing on a shared canvas, a secret ballot, runoffs, the guess and the room's judgement of it, and a scoreboard across rounds.
The sync layer is inherited from an earlier prototype (the git history predates this game) where it was built and load-tested. Only the rules layer changed.
Everyone is dealt the same subject to draw — a topic, say Tomato — except one player. The Fake Artist is told only the public category, Something red, and that they are the fake. Nobody else knows who they are.
Then everybody draws. One continuous line each, in seat order, twice around the table. No erasing, no writing words, no taking it back once you commit.
The real artists have to draw specifically enough to prove they know the topic, but not so specifically that the Fake Artist works it out from what is already on the paper. That dilemma is the entire game. The Fake Artist has to add a line that looks like it belongs to a drawing they cannot see the point of.
When the last line lands the room votes, in secret, all at once. Accuse the wrong person — or fail to agree at all — and the Fake Artist walks. Catch them and they get one guess at the subject; guess right and they still win it.
Winners score: 2 to a fake artist who got away with it, 1 to each real artist who caught them — and if the fake artist wins anyway, 1 to each artist who voted for them. One round per player, highest score takes the match. Full rules, including every choice the tabletop game leaves open to the table, are in SPEC.md.
It is a hidden-information game played over a broadcast channel, on a platform with no server to keep anything in memory. Most of what follows comes from those two constraints.
seq; clients hold a cursor and one rule — next, gap, or duplicate — covers
dropped messages, reordering, reconnects and reloads with no special cases.
The core idea.games.state.Neon is the source of truth. Pusher is only a notification hint.
Every mutation is one transaction that updates state and appends to a
per-game event log with a gapless seq. Clients hold a cursor. Pusher pushes
one message per mutation carrying that mutation's events; if a client sees a
gap it refetches and heals itself.
POST /api/games/CODE/...
│
▼
┌─────────────────────────────┐
│ 1. validate (inside the tx) │
│ 2. write (version-guarded) │──► Neon ◄── source of truth
│ 3. INSERT event (seq = N+1) │
│ 4. COMMIT │
│ 5. broadcast ← after commit│
└──────────────┬──────────────┘
▼
Pusher presence-game-CODE
[seq N+1, N+2] ← ONE message, all this mutation's events
┌────────┼────────┐
▼ ▼ ▼
apply apply gap! ──► GET /events?since=N
This is the beginning of the README. Read the rest at the original. Read the full README ↗