valleyblocks

a serene tetris with serverless p2p rooms — this page is also the git repo.

play browse the code clone the repo

Clone

This site serves the repository over git's dumb-HTTP protocol as plain static files (plain files — there is no git server here, or any server at all):

git clone https://git.ardegazu.ro/game2.git
cd valley-blocks/client
npm install && npm run dev   # port 4173

What it is

A Monument Valley-inspired Tetris PWA: SRS rotation with wall kicks, 7-bag randomizer, ghost piece, hold, guideline scoring, five palettes that shift every two levels, synthesized sound, and a rare steerable 🐍 snake piece. Solo play works fully offline; sharing the page URL turns it into a private room for up to 16 players — same pieces for everyone from a shared seed, race or outlast your friends, round after round.

How it works

Honest guarantees & limits

Guaranteed: no accounts, no analytics, no database, no third-party requests. Room contents are end-to-end encrypted; the relay routes opaque ciphertext and sees connection metadata only (peer ids, IP addresses, traffic volume — as any relay must; room ids never leave the encrypted channel). Scores and history stay in your browser.

Not guaranteed: the host referees, and each player reports their own board — a modified client could lie about its board. Play with friends, not strangers with prize money. Rooms are capped at 16 and a full mesh gets heavy past ~12 players on phones. Anyone with the room link is in the room — treat links like invitations.

Layout

client/src/game2/net/  libp2p layer (bootstrap, node, peers, room crypto, TURN) — shared with neon-grid
client/src/game2/game/ the game: core/ render/ input/ ui/ audio/ storage/ + frames.cljs (wire) + party.cljs (referee)
client/src/game2/main.cljs  room secret → create-net → party → app
client/test/           golden vectors: wire bytes, referee rules, the board sim
site/                  this page · deploy/publish-repo.sh builds the git mirror

valleyblocks

un tetris senin cu camere p2p fără server — pagina asta e și repo-ul git.

joacă răsfoiește codul clonează repo-ul

Clonare

Situl servește repository-ul prin protocolul dumb-HTTP al lui git, ca simple fișiere statice (chiar simple fișiere — nu există aici niciun server git, de fapt niciun server):

git clone https://git.ardegazu.ro/game2.git
cd valley-blocks/client
npm install && npm run dev   # port 4173

Ce este

Un PWA de Tetris inspirat de Monument Valley: rotație SRS cu wall kicks, randomizer 7-bag, piesă-fantomă, rezervă, punctaj după guideline, cinci palete care se schimbă la fiecare două niveluri, sunet sintetizat și o rară piesă-🐍 șarpe pe care o poți cârmi. Jocul solo merge complet offline; trimițând URL-ul paginii o transformi într-o cameră privată pentru până la 16 jucători — aceleași piese pentru toți dintr-un seed comun, întrece-ți sau rezistă mai mult decât prietenii, rundă după rundă.

Cum funcționează

Garanții și limite, pe bune

Garantat: fără conturi, fără analytics, fără bază de date, fără cereri către terți. Conținutul camerelor e criptat cap-la-cap; releul rutează text cifrat opac și vede doar metadate de conexiune (peer id-uri, adrese IP, volum de trafic — ca orice releu; id-urile camerelor nu părăsesc niciodată canalul criptat). Scorurile și istoricul rămân în browserul tău.

Negarantat: gazda arbitrează, iar fiecare jucător își raportează singur tabla — un client modificat ar putea minți despre ea. Joacă cu prieteni, nu cu străini pe bani. Camerele sunt plafonate la 16, iar un mesh complet devine greu peste ~12 jucători pe telefoane. Oricine are linkul camerei e în cameră — tratează linkurile ca pe niște invitații.

Structura

client/src/game2/net/  stratul libp2p (bootstrap, node, peers, cripto de cameră, TURN) — împărțit cu neon-grid
client/src/game2/game/ jocul: core/ render/ input/ ui/ audio/ storage/ + frames.cljs (protocol) + party.cljs (arbitru)
client/src/game2/main.cljs  secretul camerei → create-net → party → app
client/test/           vectori de referință: octeții de pe fir, regulile arbitrului, simularea tablei
site/                  pagina asta · deploy/publish-repo.sh construiește oglinda git

valleyblocks

derűs tetris szerver nélküli p2p szobákkal — ez az oldal egyben a git repó is.

játék böngészd a kódot repó klónozása

Klónozás

Az oldal a repót a git dumb-HTTP protokollján át szolgálja ki, sima statikus fájlokként (tényleg sima fájlok — nincs itt git szerver, sőt semmilyen szerver):

git clone https://git.ardegazu.ro/game2.git
cd valley-blocks/client
npm install && npm run dev   # port 4173

Mi ez

Monument Valley ihlette Tetris PWA: SRS-forgatás wall kickekkel, 7-bag randomizer, szellemelem, tartalék, guideline-pontozás, öt paletta, amely két szintenként vált, szintetizált hang, és egy ritka, kormányozható 🐍 kígyóelem. A szólójáték teljesen offline is megy; az oldal URL-jét megosztva privát szobává válik akár 16 játékosnak — közös seedből mindenki ugyanazokat az elemeket kapja, versenyezz vagy bírd tovább a barátaidnál, körről körre.

Hogyan működik

Garanciák és korlátok, őszintén

Garantált: se fiók, se analitika, se adatbázis, se harmadik félhez menő kérés. A szobák tartalma végponttól végpontig titkosított; a relé átlátszatlan titkosított szöveget továbbít, és csak kapcsolati metaadatokat lát (peer id-k, IP-címek, forgalom mennyisége — ahogy minden relének muszáj; a szoba-id-k soha nem hagyják el a titkosított csatornát). A pontszámok és az előzmények a böngésződben maradnak.

Nem garantált: a házigazda bíráskodik, és minden játékos maga jelenti a tábláját — egy módosított kliens hazudhat róla. Barátokkal játssz, ne pénzdíjas idegenekkel. A szobák plafonja 16 fő, és a teljes mesh ~12 játékos fölött telefonon nehézzé válik. Bárki, akinél ott a szoba linkje, bent van a szobában — kezeld a linkeket meghívóként.

Felépítés

client/src/game2/net/  libp2p réteg (bootstrap, node, peers, szoba-kripto, TURN) — közös a neon-griddel
client/src/game2/game/ a játék: core/ render/ input/ ui/ audio/ storage/ + frames.cljs (protokoll) + party.cljs (bíró)
client/src/game2/main.cljs  szoba-titok → create-net → party → app
client/test/           referenciavektorok: a vonalon menő bájtok, a bíró szabályai, a tábla szimulációja
site/                  ez az oldal · deploy/publish-repo.sh építi a git tükröt