Projet propre · En développement

Rosmino

Une plateforme de dominos en ligne, compétitive et multiplateforme, construite à partir de zéro. Ce n'est pas une commande client — c'est la nôtre, et voici où ça en est.

5
plateformes : Android, iOS, Windows, macOS et Web
12/21
phases terminées
C#/.NET
moteur maison, même binaire côté client et serveur
Non annoncée
date de sortie

Ce qu'est Rosmino

Rosmino est une plateforme de dominos pensée pour se sentir comme un sport électronique, pas comme un jeu occasionnel : parties 1 contre 1 et par équipes, classement compétitif, ligues avec montée et descente, tournois à élimination directe et championnats officiels avec Hall of Fame, ainsi que des parties contre une IA avec des difficultés allant de débutant à grand maître. Un seul projet compile pour Android, iPhone/iPad, Windows, macOS et le navigateur web.

Qu'implique la construction d'un moteur comme celui-ci depuis zéro ?

Ici, « le moteur » n'est pas la partie confidentielle d'un travail sur le jeu d'un autre studio — c'est littéralement ce que nous construisons, pièce par pièce, et nous pouvons en parler en détail parce que c'est le nôtre. Le cœur est une bibliothèque de règles en C# pur, sans aucune dépendance à un moteur graphique ni au réseau, compilée à l'identique pour trois endroits différents : le client (pour la prédiction et l'animation locales), le serveur de parties (l'unique source de vérité) et, plus tard, un simulateur qui jouera des millions de parties automatiques pour trouver des problèmes d'équilibrage avant qu'un vrai joueur ne le fasse. L'état d'une partie n'est jamais modifié directement : il est reconstruit en appliquant, dans l'ordre, une séquence d'événements immuables — ainsi, une partie complète est littéralement reproductible à partir de son historique, exactement ce dont on a besoin pour les rediffusions, les audits et la résolution de litiges. Le client peut prédire un coup localement pour que ça paraisse instantané, mais il ne décide jamais du résultat : c'est toujours le serveur qui le valide, contre le même ensemble de règles — ainsi, aucune version modifiée du client ne peut tricher sur quoi que ce soit qui compte vraiment pour la partie.

Les règles du domino elles-mêmes — nombre de fiches, conditions de clôture, système de points, mode 1 contre 1 ou par équipes — se trouvent derrière une interface de « jeu de règles » configurable, si bien qu'ajouter une nouvelle variante revient à ajouter une classe, pas à réécrire le moteur. Au-dessus de cela, le serveur parle à chaque client via WebSocket avec des messages versionnés dès le premier jour, précisément pour pouvoir faire évoluer le protocole plus tard sans casser une ancienne version de l'application encore installée chez quelqu'un.

Où ça en est, phase par phase

Le projet avance à travers 21 phases planifiées, et à ce jour 12 sont terminées — pas au sens « ça marche dans une démo », mais vérifié en jouant de vraies parties du début à la fin à chaque fois. Le moteur de règles dispose d'une suite de plus de 90 tests automatisés avec une couverture proche de 100 %. Le client compile et tourne sur les cinq plateformes. Il existe un vrai serveur de parties autoritaire qui parle par WebSocket, avec une vraie reconnexion. L'appariement automatique fonctionne sur une vraie file d'attente, élargissant la plage de niveau acceptable plus quelqu'un attend longtemps. Les comptes sont réels, avec une vraie connexion. Le classement est calculé avec un vrai système de type Elo après chaque partie. Les ligues ont une vraie montée, descente et protection. Les tournois génèrent leur tableau à élimination directe pour de vrai, tour par tour, sans intervention manuelle. Et les championnats — phases fixes de quarts, demi-finale et finale, avec qualification par classement et un vrai Hall of Fame — ferment le système compétitif.

La phase la plus récente a ajouté une IA véritablement compétitive : sept niveaux de difficulté, de débutant à grand maître, avec une vraie inférence des tuiles que chaque adversaire peut détenir et une vraie recherche du meilleur coup — jamais de coups aléatoires. Lors de parties simulées, un grand maître a battu un débutant 17 fois sur 20, et un niveau intermédiaire a battu un débutant 48 fois sur 60 — un vrai gradient de force, pas simplement « se trompe plus souvent exprès ». Cette même IA prend automatiquement le relais de tout joueur humain qui se déconnecte en pleine partie, jusqu'à son retour.

Reste à venir : un système social, des spectateurs et des rediffusions, un système anti-triche renforcé, le panneau d'administration, l'art final du jeu — pour l'instant, il n'existe pas une seule image définitive, vous ne verrez donc pas encore de captures d'écran sur cette page — et enfin, l'optimisation, de vrais tests de charge et la sortie multiplateforme. Rien de tout cela n'a de date annoncée.

Ce qui est déjà réel

Moteur de règles maison, avec plus de 90 tests automatisés et une couverture proche de 100 %
Client réel sur 5 plateformes : Android, iOS, Windows, macOS et Web
Vrai serveur de parties autoritaire en temps réel, avec vraie reconnexion
Appariement automatique et comptes réels
Classement de type Elo, ligues avec montée/descente, tournois et championnats — tout est réel, vérifié en jouant des parties complètes du début à la fin
IA réelle avec sept niveaux de difficulté — de débutant à grand maître — qui prend en plus automatiquement le relais de tout joueur qui se déconnecte en pleine partie
C'est l'un des rares projets propres dont nous partageons ce niveau de détail — les autres restent, pour l'instant, strictement secrets.
← Retour à Gabriel Díaz Bernal