Sommaire

L'essentiel

  • Jeu de cartes Unity pour iPhone et Android, de 2 à 4 joueurs : bots, en ligne, entre amis avec un code.
  • En ligne sans serveur de jeu : l'hôte valide chaque coup, le numérote et l'envoie à tous avec une empreinte de la partie.
  • Bot qui ne triche pas : il ne voit que ce qu'un joueur verrait, sur trois niveaux réglables.
  • Règles, économie et traductions réglables à distance, avec un contrôle qui rejette tout correctif incohérent.
  • 11 langues, scènes d'exécution animées et application allégée grâce aux images compressées et téléchargées à la demande.

8 Américain : Duel est un jeu de cartes pour iPhone et Android, développé avec Unity. Il reprend le 8 américain que tout le monde connaît, de 2 à 4 joueurs : contre des bots, en ligne avec d'autres joueurs de la même table, ou entre amis avec un code. Je l'ai conçu et développé de bout en bout, des règles au jeu en ligne. Il n'est pas encore sorti sur les stores.

Ce que c'est, et pour qui

Le 8 américain se joue partout, et chacun a ses variantes. Le jeu s'adresse à ceux qui veulent une partie rapide contre des bots, et à ceux qui veulent jouer avec leurs amis à distance.

Les règles de base : 8 cartes chacun, un paquet de 54 cartes avec deux jokers, on pose une carte de même couleur ou de même valeur.

  • Le 8 change la couleur, et il est interdit de finir sur un 8.
  • L'As fait piocher deux cartes, le Joker quatre. Un As répond à un As et les pioches s'additionnent.
  • Le 7 fait passer le tour du suivant, le 10 fait rejouer.
  • « Carte ! » : avec une seule carte en main, il faut l'annoncer. Un adversaire qui appuie sur le bouton avant vous vous fait piocher. Crier pour rien coûte aussi une carte.

Le parcours du joueur

  1. Premier lancement : une vraie partie guidée contre un bot, avec des cartes distribuées à l'avance pour montrer chaque règle. On peut la passer.
  2. Profil : pseudo, âge et choix d'un personnage.
  3. Accueil : contre 1 à 3 bots, en ligne, entre amis, avec la boutique, la collection, un cadeau toutes les quatre heures, le défi du jour et les statistiques.
  4. La partie : on glisse le doigt sur sa main, la carte sous le doigt grossit, on la lance vers le haut ou on la touche pour la jouer.
  5. La fin : une scène d'exécution animée contre les cartes du perdant, l'écran des gains, la barre « Chambre-le ! » et la revanche.
Accueil de 8 Américain : Duel avec les modes contre le bot, en ligne et entre amisPartie à quatre joueurs au moment d'un 10 qui fait rejouerJoker +4 posé sur la défausse, les cartes adverses rient
L'accueil, une table à quatre au moment d'un « Rejoue ! », puis un Joker +4 qui fait rire toute la table.

Les fonctionnalités

Modes de jeu

  • Contre 1 à 3 bots, sur trois niveaux : Débutant, Moyen et Expert.
  • En ligne de 2 à 4 joueurs, sur quatre tables à mise, de Débutant à Légende, avec un niveau minimum par table. On ne rencontre que des joueurs de sa table.
  • Entre amis : salon privé avec un code, de 2 à 4 joueurs, sans mise. L'hôte lance la partie.
  • Revanche en un bouton, qui démarre quand tout le monde est prêt.

Collection et personnalisation

  • 11 exécutions rangées par rareté (Basique, Rare, Épique, Légendaire), achetées avec les pièces du jeu.
  • 8 personnages : le sien devient la victime quand on perd, et le gagnant de certaines scènes quand on gagne.
  • 13 dos de cartes dessinés en vectoriel et 7 tapis.

Ambiance et envie de revenir

  • Émoticônes et phrases à envoyer pendant la partie, vues par tous les joueurs en ligne.
  • Cadeau toutes les quatre heures, défi du jour, niveaux et statistiques détaillées.
  • Bouton « Partager ma victoire » : une capture de l'écran de fin part dans le menu de partage du téléphone.

Les difficultés techniques et leurs solutions

Jouer en ligne à quatre sans serveur de jeu

Un jeu de cartes en ligne passe en général par un serveur qui fait tourner les parties. J'ai choisi de m'en passer : pas de machine à louer, à surveiller et à mettre à jour. Le jeu s'appuie sur les services d'Unity (Unity Gaming Services) : une connexion anonyme, des sessions de quatre places au plus, et un relais réseau qui transmet les messages entre les téléphones.

Le téléphone qui ouvre la partie devient l'hôte. Il est relié à chaque invité, en étoile, et c'est lui qui fait foi :

  1. Au départ, l'hôte envoie à tous une graine aléatoire, le premier joueur, l'ordre des places et les règles en vigueur.
  2. Chaque téléphone construit la même partie à partir de cette graine : le paquet est mélangé de la même façon partout.
  3. Quand un invité joue, sa carte ne part pas tout de suite : il demande le coup à l'hôte.
  4. L'hôte vérifie le coup, le joue, puis l'envoie à tous avec un numéro. S'il n'est plus possible, il le refuse.
  5. Chaque invité rejoue le coup chez lui, puis contrôle le résultat.

Personne ne peut jouer une carte qu'il n'a pas, et deux « Carte ! » simultanés ne créent pas deux parties : l'ordre de l'hôte fait foi.

Vérifier que tous les téléphones voient la même partie

Après chaque coup, l'hôte joint une empreinte de l'état du jeu : les mains de chaque joueur, le nombre de cartes de la pioche, la carte du dessus, le joueur dont c'est le tour, les cartes à piocher en attente, la couleur demandée, le sens et le classement. Chaque invité calcule la sienne après avoir rejoué le coup. Si elles diffèrent, la partie s'arrête proprement, les mises sont rendues et l'incident est remonté dans la mesure d'audience.

Le moteur de règles est écrit en C# pur, sans dépendance à Unity, donc testable hors du jeu. Des tests automatiques vérifient que les mêmes graine et coups donnent la même partie partout, y compris quand un joueur quitte une partie à trois ou quatre.

Trouver des joueurs et gérer les départs

La partie rapide cherche une session ouverte de la même table, ou en ouvre une. Plusieurs cas délicats sont traités :

  • Salle d'attente : 30 secondes. À quatre, la partie part tout de suite, sinon à la fin du délai avec deux ou trois joueurs. Seul, le bot est proposé au bout d'une minute et demie.
  • Deux salles ouvertes au même instant : un hôte resté seul cherche une session plus ancienne de la même table et la rejoint. Le départage se fait sur l'horloge du service, pour que les deux téléphones décident pareil.
  • Joueur sans nouvelles : 30 secondes d'attente, affichées à la table. Ensuite, le jeu teste sa propre connexion internet. Si elle répond, c'est l'autre qui est parti : à deux, c'est une victoire ; à trois ou quatre, l'hôte joue pour lui un coup « sortie » que tous rejouent. Sinon, c'est moi qui ai perdu le réseau.
  • Départ de l'hôte : la partie est interrompue et les mises sont rendues.
  • Temps du tour : une barre se vide sous le joueur. À la fin, le coup part tout seul.
Salon privé entre amis avec le code de partie à partagerÉcran des statistiques : victoires, séries, cartes posées et exécutions
Le salon entre amis avec son code de partie, et l'écran des statistiques.

Un bot qui joue comme un humain

Le bot ne triche pas : il ne voit que ce qu'un joueur verrait, c'est-à-dire sa main, la défausse et le nombre de cartes des autres. Il retient aussi les couleurs qu'un adversaire n'avait pas quand il a dû piocher, et joue de préférence dans ces couleurs. Il garde son Joker et un 8 pour la fin, et contre avec un As plutôt qu'avec un Joker. À plusieurs, il vise surtout le joueur suivant, celui que ses As, Jokers et 7 touchent.

Les trois niveaux se règlent par quelques valeurs : part de coups calculés, chance de penser à « Carte ! » ou de remarquer un oubli, temps de réflexion. Un test automatique joue 1 000 parties bot contre bot, avec plusieurs variantes de règles, et vérifie qu'aucune carte ne se perd. Un autre vérifie que l'Expert bat nettement le Débutant.

Des règles et une économie réglables à distance

Chacun a sa version du 8 américain. Toutes les règles sont donc des réglages : nombre de cartes, pioches de l'As et du Joker, contres, Joker qui répond à un As, effets du 7, du 10 et du Valet, fin sur un 8, pénalités de « Carte ! », pioche puis passe. Il en va de même pour les niveaux du bot, les gains, les mises des tables, les prix de la collection et la vitesse des animations.

Un correctif envoyé par Unity Remote Config est fusionné au fichier de réglages livré avec le jeu, puis contrôlé avant d'être appliqué au lancement suivant. Un correctif incohérent est ignoré en entier, et le jeu garde ses réglages d'origine. En ligne, ce sont les règles de l'hôte qui partent avec la graine : tous les joueurs d'une partie jouent avec les mêmes, même si l'un d'eux n'a pas encore reçu le dernier correctif.

11 langues

Le jeu est traduit en français, anglais, espagnol, portugais du Brésil, allemand, italien, turc, indonésien, russe, japonais et coréen. Le texte français écrit dans le code sert de clé, et chaque langue a son fichier. Un script vérifie que chaque langue a tous ses textes. Pour le japonais et le coréen, des polices réduites aux seuls caractères utilisés sont intégrées. Un plan de test fait défiler tous les écrans dans une langue et signale les textes qui débordent.

Des scènes riches sans alourdir l'application

Les exécutions sont de petites scènes d'environ huit secondes, avec décor peint, plans larges, gros plans et ralentis. À trois ou quatre, l'exécution du gagnant frappe tous les perdants en même temps, chacun avec son personnage. En ligne, chaque téléphone annonce au départ son exécution et son personnage, et l'hôte les relaie, pour que tout le monde voie la même scène.

Pour garder une application légère, les images des scènes sont compressées en ASTC, ce qui a fait passer la taille à l'installation d'environ 227 à 105 Mo. Seul le personnage par défaut est intégré : les autres sont téléchargés quand on les choisit ou quand un adversaire les porte, et remplacés par la carte vivante s'ils manquent.

Écran de victoire avec les gains, le bouton pour doubler et la barre Chambre-leExécution Légendaire : le gagnant enlève le perdant dans sa soucoupe volanteCollection des exécutions rangées par rareté, avec le bouton Essayer
L'écran de victoire avec les gains et la barre « Chambre-le ! », une exécution Légendaire, et la Collection rangée par rareté.

La pile technique

  • Moteur : Unity 6.5 et C#, interface en UI Toolkit, cartes et symboles dessinés en vectoriel.
  • Règles et bot : bibliothèque C# sans dépendance à Unity, couverte par des tests automatiques.
  • En ligne : Unity Gaming Services (connexion anonyme, sessions, Relay) et Unity Transport, avec des messages fiables et dans l'ordre.
  • Réglages à distance : Unity Remote Config, pour le jeu et pour les traductions.
  • Compte : Game Center sur iPhone, relié à l'identifiant Unity.
  • Monétisation et mesure : Google AdMob avec formulaire de consentement, RevenueCat, Google Analytics pour Firebase, SDK Meta.

Un jeu ou une application à créer ?

Ce projet montre ce que je sais livrer sur mobile : un produit complet, du moteur de règles au jeu en ligne. Pour voir le jeu, rendez-vous sur la page de 8 Américain : Duel. Pour parler de votre projet de jeu ou d'application, vous pouvez me contacter.

Questions fréquentes

Comment le jeu en ligne fonctionne-t-il sans serveur de jeu ?

Les téléphones passent par les services d'Unity (connexion anonyme, sessions et relais réseau). Le téléphone qui ouvre la partie sert d'hôte : il valide chaque coup, l'envoie numéroté à tous, et chaque invité rejoue le coup puis compare l'empreinte de la partie.

Peut-on changer les règles sans mettre à jour l'application ?

Oui. Toutes les règles, les niveaux du bot et l'économie sont des réglages que l'on peut corriger à distance avec Unity Remote Config. Le correctif est contrôlé avant d'être appliqué au lancement suivant, et ignoré en entier s'il est incohérent.

Le jeu est-il disponible sur l'App Store et Google Play ?

Pas encore. Le jeu est en phase de test sur iPhone et Android, pas encore sur les stores.