← cd ../proiecte

Șeptică (Sedma)

Jocul clasic de cărți pe telefon: offline cu 9 adversari AI, online cu prietenii, în 9 limbi.

React NativeTypeScriptWebSocketKeycloakAdMobi18nSVGEAS
Captură ecran Șeptică (Sedma)

Context

Șeptica este jocul de cărți pe care generații întregi l-au învățat la masa din bucătărie: câștigi cărțile care contează — așii și decarii — tai orice carte cu un șeptar, iar culoarea nu contează și rangul mai mare nu câștigă automat. Ușor de învățat, greu de stăpânit. Am reconstruit jocul integral pentru telefon, cu reguli autentice, adversari AI credibili și multiplayer online real.

Aplicația funcționează dintr-un singur cod Expo SDK 57 cu TypeScript strict, pe iOS și Android, inclusiv tablete. Joci offline ca oaspete fără cont, iar pentru jocul online te conectezi cu Google, Facebook, Apple sau un cont local — progresul, setările și statisticile se sincronizează între dispozitive.

Noua aplicație este o rescriere de la zero a jocului original Șeptică românească — aplicația nativă Android scrisă în Java și întreținută de-a lungul anilor. Varianta originală rămâne publicată pe Google Play ca Șeptică românească (Legacy), pentru telefoanele vechi și pentru jucătorii atașați de stilul clasic.

Repere tehnice

  • Motor de reguli pur, testat automat — pachet de 32 de cărți (30 în 3 jucători), tăiere cu șeptari, decizii de continuare sau renunțare, echipe 2v2, 9 puncte pe rundă cu bonus pentru ultima mână; logica e separată de UI și acoperită de teste Jest
  • 9 adversari AI pe 3 niveluri — relaxat (Ion, Maria, Vasile), echilibrat (Gheorghe, Elena, Ioana), fără milă (Mihai, Ana, Radu); turnee până la 21, 51 sau 101 puncte sau rundă rapidă
  • Multiplayer online real — lobby-uri publice și private cu PIN pentru 2–4 jucători, boți care completează locurile goale, listă de prieteni, invitații și linkuri de partajare, chat live la masă și istoric al mâinilor
  • Tutorial interactiv în 9 capitole — reguli, exemple live pe masă, quiz cu scor și spațiu de experimentare unde încerci mâini cap-coadă înainte de primul joc real
  • Cărți desenate integral în SVG — fețe de poker și ungurești (bohemian) reproduse fidel, 10 mese de joc, mărime ajustabilă a cărților, nuanțe pentru cărțile de puncte și de tăiat
  • 9 limbi din prima zi — română, engleză, cehă, slovacă, maghiară, sârbă (latinica), croată, bosniacă și germană, cu detecție automată a limbii telefonului
  • Monetizare corectă cu AdMob — banner adaptiv plus cel mult un interstitial pe oră, doar după un turneu încheiat și niciodată în timpul jocului; consimțământ UMP în EEA și anunțuri nepersonalizate
  • Accesibilitate ca funcționalitate — nume de cărți citite de VoiceOver și TalkBack, controale etichetate, sunet, vibrații și animații toate opționale

Arhitectură

Aplicația Expo comunică cu un backend propriu prin REST și WebSocket în timp real pentru lobby-uri, invitații și jocul live. Autentificarea trece prin Keycloak (Google, Facebook, Apple, cont local), iar abonamentul Premium anual elimină reclamele pe până la 5 dispozitive, cu verificare a chitanțelor pe ambele magazine.

┌──────────────┐   HTTPS/WS   ┌──────────────┐   ┌──────────────┐
│  Expo app    │ ◄──────────► │  Backend     │ ─ │  Keycloak    │
│  iOS/Android │  joc live,   │  lobby, chat │   │  auth social │
│  + AdMob/IAP │  clasamente  │  XP, istoric │   └──────────────┘
└──────────────┘              └──────────────┘

Plățile trec exclusiv prin mecanismele magazinelor (fără linkuri externe pe iOS), iar ștergerea contului este disponibilă direct din Setări.

Provocări

Cea mai grea problemă a fost fidelitatea regulilor: tăierea cu șeptarul, meciurile în 3 jucători (unde și optarii rămași taie) și deciziile de continuare sau renunțare după ce toți au jucat o dată. Soluția a fost separarea motorului de reguli într-un modul pur, fără importuri native, testat cu zeci de scenarii — ecranul de joc doar emite acțiuni și programează efecte secundare.

A doua provocare a fost tabla pe mărimi de ecran foarte diferite, de la telefoane compacte la tablete de 10–13 inch: pozițiile cărților sunt calculate dinamic, mărimea lor e ajustabilă din setări, iar reclamele tip banner își schimbă poziția între portrait și landscape.

Lecții învățate

Tutorialul interactiv a meritat fiecare oră investită: jocurile de cărți cu reguli transmise oral pierd jucători noi în primele minute, iar un spațiu de experimentare fără miză convertește curiozitatea în partide reale. Iar regula „nicio reclamă în timpul jocului” — aplicată tehnic, nu doar promisă — este cea mai bună strategie de retenție într-un joc cu sesiuni scurte și dese.

Aplicații

De pe blog

// încă niciun articol pentru acest proiect