Sari la conținut
Site-uri de la €799 fără TVA.Vezi oferta
Toate articolele

Cum am construit Shady Guess: un joc de petrecere bazat pe informații ascunse

Cum transformă Shady Guess o singură întrebare diferită într-un joc pentru iPhone și iPad, prin răspunsuri private, dezvăluire, vot și rezultat.

TehnologieAldea Andrei14 min de lectură
Shady Guess: ecranul principal pe iPhone

Actualizare de nume — 1 noiembrie 2026: Articolul folosește numele actuale Shady Guess și Shady Guess +. Datele, cifrele și etapele de dezvoltare din secțiunile datate rămân cele documentate atunci. Pentru prezentarea și cerințele actuale, vezi Shady Guess și asistența jocului.

Actualizare Secret Subject — 24 octombrie 2026: Versiunea 1.0 (14) este în testare internă prin TestFlight; lansarea publică în App Store este încă în pregătire. Ambele dispozitive au nevoie de versiunea actualizată, care folosește protocolul 10. Jocul gratuit include Animale, Bani, Mâncare și Obiecte și transport: 4 categorii, 11 teme și 439 de identități. Colecția completă are 13 categorii, 30 de teme și 948 de identități. Bani conține 100 de sume în euro. Doar gazda are nevoie de Secret Subject + pentru întreaga colecție și temele personale salvate.

Prima cerere acceptată de deschidere a variantelor deschide ambele liste și pornește o singură fereastră comună de 30 de secunde, măsurată de gazdă. Primul răspuns confirmat al fiecărui jucător este definitiv. Corectitudinea rămâne ascunsă până răspund amândoi sau expiră timpul. Un singur răspuns corect aduce un punct; două răspunsuri corecte înseamnă egalitate cu câte un punct; niciun răspuns corect înseamnă egalitate fără puncte. Lipsa unui răspuns rămâne „Fără răspuns”, iar reconectarea nu prelungește timpul.

Cifrele și afirmațiile despre candidatul pregătit pentru Secret Subject de mai jos descriu etape anterioare și sunt înlocuite de această actualizare. Vezi studiul de caz Secret Subject actual și ghidul de asistență pentru jocul și cerințele actuale.

Actualizare de nume — 17 octombrie 2026: Jocurile actuale sunt Bluff Artist, Secret Subject și Shady Guess, cu abonamentele Bluff Artist +, Secret Subject + și Shady Guess +. Capturi actuale din Simulator Debug înlocuiesc imaginile anterioare ale aplicațiilor redenumite; disponibilitatea în App Store rămâne separată.

Actualizare de limbă — 17 octombrie 2026: Candidații pregătiți pentru Bluff Artist, Secret Subject și Shady Guess includ interfața și întregul conținut de joc în română și engleză. Alegerea Sistem / Română / English se salvează local; numele și textele create de jucători rămân neschimbate. Datele partidei rămân în memorie. Bluff Artist păstrează și durata cronometrului și categoriile personale, iar Secret Subject păstrează temele personale în fișierul local protejat. În jocurile pe mai multe dispozitive, gazda fixează limba conținutului pentru partidă, iar fiecare participant își păstrează limba interfeței. Această actualizare descrie candidatul pregătit, fără să confirme disponibilitatea lui prin TestFlight sau App Store; verificați site-ul fiecărei aplicații. Descrierile exclusiv în română din articolul anterior reflectă etapa inițială a proiectelor.

O rundă de Shady Guess începe cu mai mulți oameni în aceeași cameră, fiecare cu propriul iPhone sau iPad. Cei mai mulți primesc aceeași întrebare. Un jucător primește o întrebare apropiată, dar diferită, fără să i se spună direct că este impostorul. Toți răspund în privat, grupul vede apoi răspunsurile, discuția revine în cameră, iar la final fiecare votează.

Regulile se explică repede. Când mai multe dispozitive din apropiere trebuie să rămână sincronizate, munca de dezvoltare este însă mult mai amplă.

A trebuit să definim exact ce informații poate primi fiecare dispozitiv: cine are voie să afle fiecare întrebare, în ce moment și ce trebuie să rămână ascuns inclusiv după o reconectare. Această decizie a influențat motorul jocului, protocolul de comunicare, interfața, modelul de conținut și testele.

Mecanica jocului a devenit un contract al informației

Informația ascunsă creează tensiunea. Dacă aplicația arată prea puțin, jucătorii nu pot discuta răspunsurile. Dacă dezvăluie un singur detaliu prea devreme, întreaga rundă își pierde sensul.

Am transformat regulile sociale într-un contract precis pentru fiecare etapă:

  • în timpul răspunsului, jucătorii obișnuiți primesc întrebarea grupului, iar impostorul primește alternativa apropiată;
  • la dezvăluire, toți pot vedea întrebarea grupului și răspunsurile atribuite, dar nu întrebarea impostorului sau identitatea lui;
  • în timpul votului, aceeași limită rămâne activă, iar voturile sunt private;
  • rezultatul este prima etapă în care pot apărea impostorul, ambele întrebări, totalurile voturilor, punctele acordate și scorurile actualizate.

Această abordare este mai sigură decât ascunderea unei etichete în interfață. O informație pe care jucătorul nu are voie să o afle nu ar trebui să existe deloc în starea primită de dispozitivul său. Altfel, un ecran adăugat ulterior, un mesaj de diagnosticare sau o scurtătură pentru reconectare o poate expune accidental.

Gazda coordonează jocul, dar nu vede toate secretele

Un participant creează sesiunea și devine Gazdă. Gazda controlează ritmul: pornește jocul, trece de la răspunsuri la dezvăluire, deschide votul, afișează rezultatul și începe runda următoare. În același timp, Gazda rămâne un jucător obișnuit și nu trebuie să primească acces privilegiat la secret.

De aceea, Shady Guess separă starea completă a jocului de ceea ce poate vedea fiecare participant. Un GameEngine determinist păstrează regulile și validează acțiunile. Un GameSession coordonează Gazda, jucătorii, transportul și ciclul de viață. Înainte ca o stare să fie trimisă unui dispozitiv, ea este proiectată într-un PlayerVisibleState specific destinatarului.

Proiecția se aplică și Gazdei. Dacă Gazda este un jucător obișnuit, nu primește întrebarea impostorului. Dacă Gazda este impostorul, nu primește înainte de rezultat un semnal explicit despre identitate. Reconectarea folosește aceeași proiecție, fără o copie completă a stării. Aceeași regulă se aplică tuturor, inclusiv persoanei care coordonează sesiunea.

Joc local, fără un server pentru gameplay

Fiecare participant folosește propriul dispozitiv Apple, conectat la aceeași rețea locală Wi-Fi. Jucătorii găsesc gazda după nume și se alătură prin conexiunea locală. Mesaje tipizate Codable transmit acțiunile și stările printr-un protocol versionat.

Logica jocului nu depinde direct de tehnologia radio. Ea comunică printr-o interfață GameTransport, cu implementări separate pentru mediul real și pentru simulare. Astfel, aceeași instanță GameSession poate rula cu participanți simulați, controlați determinist în dezvoltare, în timp ce fluxurile normale Creează și Intră folosesc conexiunile locale.

Gameplay-ul rămâne local și în memorie. Nu există server de joc, cont, bază de date, salvare în cloud, reclame, analiză de utilizare sau urmărire. Întrebările sunt incluse în aplicație. Experiența gratuită poate funcționa fără internet; operațiunile App Store, precum încărcarea unei oferte, cumpărarea, restaurarea sau administrarea Shady Guess +, pot necesita conexiune.

Păstrarea jocului local reduce colectarea de date și infrastructura de întreținut. Conexiunile dintre dispozitive au totuși nevoie de atenție. Descoperirea, confirmarea, întreruperea, reîncercarea și resincronizarea au nevoie de stări explicite. Verificarea combinațiilor de dispozitive vizate se face separat, pe dispozitive fizice; testele automate și cele din Simulator răspund altor întrebări.

O conversație transformată în stări explicite

Fluxul social a devenit o succesiune finită: Lobby, pregătirea rundei, răspuns, dezvăluire, vot și rezultat. Gazda avansează jocul, dar motorul verifică fiecare tranziție. Dezvăluirea nu poate începe înainte ca toți jucătorii activi să răspundă. Rezultatul nu poate apărea înainte de încheierea votului. Un jucător nu se poate vota pe sine și nu poate trimite al doilea răspuns.

Fiecare dispozitiv poate avea un singur răspuns sau vot în așteptarea confirmării. După trimitere, controlul rămâne blocat temporar până când Gazda confirmă ori respinge acțiunea prin următoarea stare sincronizată sau până când o reconectare ori schimbare de etapă încheie așteptarea. Astfel, apăsările rapide nu devin comenzi contradictorii, iar incertitudinea este afișată în loc să fie ascunsă.

Jocul nu impune cronometre pentru rundă. Shady Guess este în primul rând o conversație față în față, iar grupurile au ritmuri diferite. Gazda decide când se trece mai departe, în timp ce aplicația protejează ordinea etapelor.

Telefonul participă la joc, dar nu acaparează jocul

Cel mai bun moment al unei runde apare când oamenii nu se mai uită la ecrane și încep să-și apere răspunsurile. Interfața trebuie să livreze rapid informația privată, să confirme clar o acțiune scurtă și apoi să readucă atenția spre grup.

Interfața nativă SwiftUI folosește controale familiare și o ierarhie vizuală clară și sobră. Pe iPhone, experiența este proiectată pentru orientarea portret, iar iPad participă complet atât în portret, cât și în orientarea peisaj. Suprafețele semantice funcționează în modurile luminos și întunecat, iar structura ecranelor se adaptează la Dynamic Type, contrast mărit, transparență redusă și mișcare redusă. Identitatea mov și ilustrațiile originale fac stările private ușor de recunoscut fără să transforme fiecare tranziție într-un ornament.

Accesibilitatea face parte din contractul de implementare, dar implementarea nu este identică cu acceptanța finală. Etichetele pentru tehnologiile de accesibilitate și structurile adaptive pot fi verificate automat și vizual. Parcurgerea completă a interfeței cu VoiceOver activat, pe dispozitive fizice, este necesară pentru a evalua experiența dincolo de etichete și aranjarea elementelor.

Întrebările sunt infrastructură de produs

Un joc social poate avea o rețea bine construită și totuși să eșueze dacă întrebările generează răspunsuri evidente sau lipsite de interes. Biblioteca de întrebări în limba română este organizată pe teme. Fiecare pereche combină întrebarea grupului cu întrebarea impostorului: un subiect comun, dar o diferență pe care jucătorii trebuie să o descopere.

Două propoziții care seamănă sunt doar începutul. Întrebările trebuie să permită suficiente răspunsuri comune încât impostorul să se poată integra. În același timp, trebuie să ceară lucruri suficient de diferite încât grupul să aibă indicii de discutat. Conținutul este păstrat în resurse structurate și stabile, nu împrăștiat prin ecrane. Categoriile fac referire la identificatori reali ai întrebărilor pentru exemple, iar aceeași bibliotecă alimentează jocul.

Revizuirea păstrează 334 de perechi în 10 teme, cu 47 în De toate. De exemplu: „Ce superputere ai folosi ca să nu mai speli vase?” și „Ce superputere ai folosi ca să nu mai stai în trafic?”. Ambele cer o abilitate imaginară, dar situația îi dă fiecăruia ceva diferit de apărat. Am păstrat perechi care invită la răspunsuri comparabile și am eliminat repetițiile și întrebările care cereau cunoștințe de nișă. Acestea sunt alegeri editoriale; verificările automate nu înlocuiesc încercarea jocului în grup.

Aplicația este construită mai întâi în limba română. Site-ul bilingv al produsului explică jocul în română și engleză, dar acest lucru nu înseamnă că interfața nativă este deja localizată în ambele limbi.

Testăm mai întâi regulile invizibile

Multe dintre erorile importante nu apar într-o captură de ecran a fluxului ideal. O reconectare ar putea trimite prea multă informație. Gazda ar putea vedea un secret destinat altui jucător. Selecția aleatorie ar putea repeta greșit un impostor sau o întrebare. O confirmare întârziată ar putea permite dublarea unei acțiuni.

Motorul folosește în teste surse controlabile de aleatoriu și identificatori deterministici. Proiecțiile specifice destinatarului sunt verificate pentru un jucător obișnuit, impostor, Gazdă obișnuită și Gazdă impostor în fiecare etapă. Transporturile simulate testează coordonarea sesiunii fără să pretindă că validează comunicația radio fizică. Pentru versiunea de cod verificată și păstrată ca referință, testele de interfață s-au concentrat pe categoriile actualizate și browserul de întrebări, iar verificarea țintită în Simulator a acoperit iPhone și iPad, modurile luminos și întunecat, textul mărit, contrastul sporit și reducerea mișcării.

Testele automate verifică regulile pentru o versiune consemnată a codului. Jocul în grup și combinațiile diferite de dispozitive sau rețele au nevoie în continuare de testare separată.

Joc gratuit și abonamente Plus separate

Fiecare aplicație păstrează un joc gratuit complet alături de propria ofertă Plus. Bluff Artist permite 3 jucători și 174 de cuvinte din Mâncare, Animale și Obiecte; Bluff Artist + oferă până la 9 jucători, toate cele 12 categorii și 631 de cuvinte din colecția inclusă, plus cel mult 10 categorii personale salvate, cu 5–50 de cuvinte distincte fiecare, de cel mult 15 caractere pentru intrările noi sau actualizate. Categoriile personale se aleg explicit; Amestec folosește cuvintele incluse. Shady Guess include gratuit 3 jucători în total, cu gazda, cele 47 de perechi De toate și 1–5 runde; Shady Guess + oferă până la 9 participanți, toate cele 10 categorii cu 334 de perechi și 1–20 de runde, în limita tehnică a sesiunii. Secret Subject include gratuit 339 de identități în 10 teme din Animale, Mâncare și Obiecte și transport; Secret Subject + oferă toate cele 11 categorii, 26 de teme și 800 de identități din catalogul inclus, plus Temele mele cu cel mult 10 teme salvate, de 5–50 de nume distincte fiecare, de cel mult 15 caractere pentru intrările noi sau actualizate. Doar gazda păstrează biblioteca creată; invitatul aprobat primește titlul și informațiile propriei runde. Rămâne un joc pentru exact doi jucători, pe două dispozitive.

Fiecare aplicație are propriul abonament: 9,99 lei / săptămână sau 99,99 lei / an, cu plata anuală integrală și aceleași beneficii în ambele planuri. Alegi un plan sau continui gratuit. Nu există plan lunar sau acces comun între aplicații. În Shady Guess și Secret Subject numai gazda are nevoie de abonament; un invitat gratuit poate juca selecția premium a gazdei. Abonamentul invitatului nu deblochează o gazdă gratuită. Bluff Artist se joacă pe un singur dispozitiv comun.

Apple afișează prețul și perioada înainte de confirmare și gestionează reînnoirea automată până la anulare. Din aplicație poți restabili achizițiile și administra abonamentul în contul Apple. Planul anual nu primește automat o perioadă de probă; o ofertă existentă Shady Guess apare numai când Apple confirmă oferta și eligibilitatea. Confidențialitatea și termenii site-ului fiecărei aplicații sunt separate de Licența Standard Apple. Jocul local, achizițiile Apple, vizitele pe site și mesajele de asistență au contexte diferite.

Actualizările anterioare Secret Subject și Bluff Artist cu conținut personal au fost livrate pentru testare internă prin TestFlight. Cataloagele revizuite și editorii cu 5–50 de intrări / 15 caractere aparțin următorului candidat; listele vechi rămân intacte, fără trunchiere. Planul anual și capacitatea extinsă Shady Guess rămân pregătite pentru o versiune viitoare. Livrarea internă nu confirmă o achiziție sau o restaurare reală și nici aprobarea publică în App Store; site-ul fiecărei aplicații indică disponibilitatea actuală.

Versiunea beta pregătită pune jocul în prim-plan, cu informații în stânga sus și ajutorul cu semnul întrebării în dreapta sus. Butoanele rotunjite, în formă de capsulă, păstrează compacte acțiunile de joc și abonament. Ghidul explică pașii prin numere și ilustrații cu cărți crem. Ecranul opțional Plus are X în dreapta sus și Continuă gratuit. Ambele duc la ecranul principal; abonații activi ajung direct acolo, iar revenirea din fundal nu redeschide oferta. Abonamentul păstrează X, fără un al doilea buton Închide. Semnul Plus mai mare din colțul dreapta sus apare pe ecranul principal și pictograma iOS cât timp accesul este activ. Desenul original își păstrează dimensiunea și poziția; accesul inactiv readuce originalul. Secret Subject și Shady Guess renunță la contoarele de caractere; limitele rămân valabile. În Secret Subject și Bluff Artist, insigna cu numărul de intrări stă deasupra câmpului. Adaugi cu + sau Enter și elimini cu minus. Butonul Salvează tema se activează doar cu titlu valid, 5–50 de intrări distincte și câmpul de adăugare gol. Abonamentele rămân separate pentru fiecare aplicație. Galeria arată ecranele native actualizate, inclusiv prezentarea Plus opțională.

Implementarea, testarea și disponibilitatea sunt etape distincte

Dezvoltarea produsului, verificarea lui și publicarea sunt etape distincte. Pregătirea unei versiuni pentru distribuție cere verificări asupra codului respectiv, partide complete pe dispozitive fizice, testare de grup în română, parcurgerea interfeței cu VoiceOver și respectarea cerințelor Apple pentru distribuție. Site-ul produsului prezintă disponibilitatea și cerințele de compatibilitate actualizate.

Aceste distincții ne ajută să descriem corect munca realizată. Un build reușit în Simulator nu confirmă fiabilitatea conexiunii între dispozitive reale, iar implementarea unei achiziții nu face automat abonamentul disponibil comercial.

Definirea informațiilor pe care le poate afla fiecare persoană ne-a ajutat să luăm restul deciziilor. Motorul jocului, mesajele, ecranele și testele trebuiau să păstreze aceeași regulă, inclusiv după o întrerupere.

Poți vizita site-ul produsului Shady Guess sau discuta cu noi despre produsul digital pe care vrei să îl construiești.

Continuă lectura

De la articol la proiect

Vrei să creezi sau să îmbunătățești un site ori o aplicație?

Ai o idee de proiect după lectură? Te putem ajuta cu structura, designul, dezvoltarea și lansarea.

Spune-ne despre proiect