Hacki
All BUIDLs

About the project

🍐 The Great Pear

UNO for the terminal — running on Bare, delivered and updated peer-to-peer with Pear.

No app store, no CDN, no server. You install it from a pear:// link, and when a new version is staged it arrives over the swarm from whoever is seeding it.

pear install pear://u9y7y9xqggifyeihhi9i1cswyqdrtdjbg75y6obxxy6hwe6uu66o

That drops a single binary on your PATH. Run it by name:

the-great-pear

What it is

UNO for the terminal — up to four humans over the internet, or on your own against three bots. The deck is trimmed to numbers, +2 and +4 — no Skip, no Reverse, no plain Wild. Five cards each, and one hand is the whole game — going out wins it.

  • 88 cards: 0-9 in four colours (one 0, two of each 1-9), two +2 per colour, four +4.
  • Matching by colour or by number. A +4 is always playable and its player names the colour that continues.
  • Stacking: a +2 is answered with another +2 and a +4 with another +4 — the count grows until somebody cannot answer and eats the lot.
  • Draw and play: with nothing playable you draw one, and if it fits you may play it on the spot.
  • ¡UNO!: down to one card you must call it. Anyone who catches you quiet makes you draw two — and the rivals will, depending on how hard you set them.
  • Scoring the real way: the player who goes out banks what everyone else still holds, numbers at face value, +2 worth 20 and +4 worth 50.

Because play only ever moves one way round the table — there is no Reverse in this deck — the engine needs no direction state at all.

Multiplayer

Two to four people, each on their own machine, on their own network. No server, no port forwarding, no accounts: peers find each other on the HyperDHT by hashing the room name, and hole-punch a direct encrypted connection.

the-great-pear --room aleph --name franco      # then press CREATE ROOM
the-great-pear --room aleph --name gino        # then press JOIN ROOM

Everyone must type the same `--room`. The room name is hashed into the DHT topic, so aleph and Aleph are different rooms and the peers never meet.

Give it up to 60 seconds. Discovery takes 6–15s when it goes well and fails outright maybe a third of the time on the first attempt, so the room re-announces every 5 seconds until somebody turns up. The screen says looking for players… the whole time — that is not a hang.

When the connected players appear, the host presses ENTER to deal.