Eros
Veritat o atreviment i beure, per a adults
Eros és un joc mòbil de veritat o atreviment i beure per a adults (18+) en Android, construït amb .NET MAUI. Evoluciona el concepte clàssic amb dos diferenciadors: la intensitat no és una etiqueta fixa de sessió sinó una temperatura que puja i baixa durant la partida, i els límits que cada jugador declara en privat es respecten per construcció. Això últim no és un filtre de millor esforç: el motor de selecció mai proposa res que violi el límit d’algú present, i aquesta garantia està verificada amb tests. La promesa, en una frase: pots deixar-te anar perquè l’app ja sap on és la teva línia.
Què fa
Trasllada al codi una regla que les apps del gènere solen deixar en mans del criteri de qui juga: allò que algú ha vetat no apareix, i no apareix perquè el sistema no ho pot proposar.
- Cada jugador declara en privat què no vol, i ningú veu els vetos de ningú ni tan sols al dispositiu compartit.
- El motor descarta qualsevol contingut incompatible amb el límit més restrictiu de la taula: davant el dubte no s’hi aproxima.
- La intensitat puja i baixa durant la partida en lloc de fixar-se en començar.
- El consentiment és revocable en calent: passar d’un repte és gratuït i sempre visible, i un veto a mitja partida s’aplica a l’instant.
- Es juga sense registre, sense comptes i sense permisos: configurar una taula de quatre persones costa menys de dos minuts i mig, mesurat.
- La partida és efímera per defecte, sense historial de contingut ni analítica del que es va jugar.
- Si els límits deixen el catàleg sense opcions, es diu clarament en lloc d’omplir-ho amb alguna cosa que fregui la línia.
Arquitectura
La garantia del producte és una propietat del sistema, no una intenció: si el domini es contamina o una regla de selecció es trenca, el build cau.
- Domini en .NET pur, sense dependències de MAUI, entrada/sortida ni xarxa, perquè el mateix motor pugui executar-se en servidor a la versió connectada.
- Tests d’arquitectura que trenquen la compilació si aquesta regla s’incompleix, al costat de les regles del motor de selecció.
- Persistència mínima en SQLite, efímera per defecte.
- Catàleg de reptes incrustat a l’app, amb la indirecció de packs present al model des del primer dia i sense infraestructura a la v1.
- Cost de configuració fixat al codi: una pregunta obligatòria nova trenca el build, cosa que impedeix que el temps fins a començar a jugar creixi en silenci.
- El mode connectat de la v2 fa servir ASP.NET Core i SignalR amb servidor autoritatiu, perquè el client no pot conèixer els límits aliens sense trencar-ne la privadesa.
Stack
Client .NET MAUI sobre net10.0-android amb Android 8.0 com a terra, domini en .NET pur sense dependències i persistència en SQLite. El desenvolupament va dirigit per specs en cascada, i la integració contínua compila, passa els tests —incloses les regles d’arquitectura— i publica l’APK.