Sommaire

L'essentiel

  • Refonte complète dans Unity, publiée comme une mise à jour : mêmes identifiants, même clé de signature.
  • La progression de la version React Native est relue depuis AsyncStorage (fichiers iOS, SQLite Android).
  • Simulation case par case en C# pur et testée, affichage fluide avec des virages en arc de cercle.
  • Duels en ligne où chaque téléphone juge sa propre mort et l’hôte arbitre les manches.
  • Refus Apple 5.1.1(iv) corrigé en revoyant l’ordre des demandes de consentement.

Snake Survival est le premier jeu de SunderDev, publié sur l’App Store et Google Play. Sa version 2 le reprend de zéro dans Unity : six mondes en 3D, soixante défis, vingt-quatre modes de jeu, des duels en ligne et quatre-vingts skins. Le défi n’était pas seulement de refaire le jeu, mais de le livrer comme une simple mise à jour, en reprenant la progression des joueurs.

Ce que fait Snake Survival, et pour qui

Les règles sont celles du Snake que tout le monde connaît : manger, grandir, ne pas se mordre la queue. Le jeu les garde exactes et les décline en beaucoup de façons de jouer, pour des parties courtes sur téléphone.

À l’accueil, une vraie partie se joue toute seule derrière le menu, avec le skin du joueur. De là, on lance une partie classique, la Survie, le défi du jour ou un duel, et on récupère un cadeau toutes les quatre heures.

Accueil de Snake Survival : l’arène tourne derrière le menuSurvie au Volcan avec la catastrophe « Ruée vers l’or »Pluie de météores dans le monde Cosmos
L’accueil, la Survie au Volcan et la pluie de météores dans le Cosmos.

Les fonctionnalités

  • Survie : toutes les vingt secondes, une catastrophe (pluie de météores, lasers, bombes, nuit noire, rivaux, chasseur, arène qui se referme, ruée vers l’or…), de plus en plus intense.
  • 60 défis dans 6 mondes : Jungle, Temple, Glace, Volcan, Néon et Cosmos, avec une à trois étoiles selon le temps, et des skins et des modes débloqués en route.
  • 24 modes, du Classique au Sans murs : Miroir, Marche arrière, Invisible, Tournis, Pommes peureuses, Portails, Arène qui rétrécit, Jumeaux…
  • Duels en deux manches gagnantes : en ligne contre un autre joueur, contre un ami avec un code, ou contre l’IA sur cinq niveaux.
  • 80 skins, chacun avec son motif, sa tête, sa traînée et son propre bruitage.
  • Défi du jour : deux modes fous tirés au sort chaque jour, les mêmes pour tous les joueurs.
  • Bonus en partie : aimant, bouclier, ralenti, fantôme qui traverse son propre corps et points doublés.
  • Commandes au choix : glisser n’importe où sur l’écran, un geste en L pour deux virages, ou toucher d’un côté de la tête.
  • Onze langues, un coffre à ouvrir toutes les dix étoiles gagnées, et un écran de statistiques.

Une refonte livrée comme une mise à jour

La première version de Snake Survival était une application Expo / React Native, déjà en ligne. La version 2 est un projet Unity entièrement nouveau, mais elle garde les mêmes identifiants et la même clé de signature : pour les stores comme pour les joueurs, c’est une mise à jour.

Restait la progression. L’ancienne version enregistrait tout avec AsyncStorage, le stockage de React Native, qu’Unity ne sait pas lire. Au premier lancement de la mise à jour, le jeu va donc chercher l’ancienne sauvegarde là où React Native la laissait :

  • sur iPhone, dans un fichier manifeste JSON : la valeur y figure directement si elle est courte, sinon dans un fichier voisin nommé d’après l’empreinte MD5 de la clé ;
  • sur Android, dans une base SQLite.

Le joueur retrouve ses pièces, ses vies, ses skins achetés et son skin équipé, ses records et ses réglages. Les douze skins de la première version gardent leur identifiant pour être reconnus.

Un Snake exact, mais fluide en 3D

Le Snake classique avance case par case ; un jeu en 3D doit pourtant paraître fluide. Snake Survival sépare les deux :

  • la simulation complète (serpents, nourriture, bonus, dangers, vagues, robots, objectifs) est écrite en C# pur, sans Unity, et testée à part, y compris par des parties jouées au hasard avec tous les modificateurs ;
  • l’affichage interpole entre deux cases et arrondit les virages en arc de cercle : la direction du pas suivant est décidée à mi-case, ce qui laisse le temps de dessiner le virage sans à-coup ;
  • le corps est un tube lisse reconstruit à chaque image, qui s’affine vers la queue et gonfle là où une pomme est avalée ; le motif du skin reste collé au corps.

Les commandes ont demandé le même soin. Le lecteur de gestes pardonne la petite dérive d’un trait pas tout à fait droit, reconnaît un geste en L comme deux virages, et rattrape un geste arrivé une fraction de seconde trop tard : si la tête vient juste de quitter une case, le virage part de la case quittée, comme si le doigt avait été à l’heure.

Les modes et les défis sont décrits dans un fichier de configuration. Un mode ne donne que ce qui change par rapport aux règles de base (taille du plateau, obstacles, vitesse, dangers, objectif) : ajouter un mode fou ou un défi revient à ajouter une entrée, et les tests vérifient que chaque défi se joue sans erreur.

Liste des modes fous : Snake original, Turbo, Frénésie, Champ de minesCarte des 60 défis, du monde Jungle au CosmosMode Portails dans la ville Néon
Les modes fous, la carte des 60 défis et le mode Portails dans le monde Néon.

Duels en ligne : qui décide de quoi

En duel, deux téléphones doivent afficher la même partie alors que les messages mettent du temps à arriver. La règle retenue est simple : chaque téléphone est seul maître de son serpent, l’envoie à l’autre plusieurs fois par seconde et juge lui-même sa mort. L’hôte, celui qui a créé la partie, décide des pommes, du début des manches et de leur résultat.

  • chaque joueur voit son serpent en bas : tout ce qui vient de l’autre téléphone est retourné d’un demi-tour avant usage ;
  • deux morts à moins d’un quart de seconde d’intervalle comptent comme simultanées, car le message de l’autre téléphone peut traîner ; un choc tête contre tête donne une égalité, même si l’autre téléphone ne l’a pas encore vu ;
  • sans adversaire au bout d’une minute, le jeu propose de jouer contre l’IA, dont les cinq niveaux se règlent par le taux d’erreur, la distance à laquelle elle voit et son agressivité ;
  • la mise en relation passe par Unity Gaming Services (salon et relais), sans serveur à gérer ; si deux joueurs ouvrent une partie rapide au même instant, le plus récent rejoint l’autre.
Duel contre l’IA en deux manches gagnantesTerrarium des skins avec le Dragon rouge légendaire
Un duel contre l’IA et le terrarium des skins.

Publication, publicité et réglages à distance

  • Achat intégré de vies de survie avec RevenueCat, et publicités Google AdMob avec le formulaire de consentement de Google.
  • Validation Apple : la version 2.4.0 a été refusée au titre de la règle 5.1.1(iv). Correction : l’autorisation de suivi d’Apple est désormais demandée avant le formulaire de Google ; en cas de refus, pas de formulaire, des publicités non personnalisées et aucune donnée publicitaire.
  • Game Center et Google Play Jeux reliés au compte anonyme du joueur.
  • Réglages corrigés à distance avec Unity Remote Config (équilibrage, skins, traductions), vérifiés avec les mêmes règles que les tests avant d’être appliqués.
  • Onze langues : pour le japonais et le coréen, les polices sont réduites aux caractères courants et chargées seulement pour la langue affichée.

La pile technique

Le jeu est développé avec Unity 6.5 (URP) et C#, interface en UI Toolkit et shaders maison (éclairage stylisé, motifs des skins, brouillard). Les maillages du serpent et des décors sont générés par le code. Les services en ligne passent par Unity Gaming Services ; s’y ajoutent RevenueCat, Google AdMob et Google Analytics pour Firebase. Des tests automatiques couvrent la simulation, les règles du duel, la configuration et les traductions.

Ce que ce projet montre

Snake Survival a été conçu et développé de bout en bout par Ahmed : game design, jeu Unity, duels en ligne, boutique, reprise de la progression de la version 1, et publication sur les stores. Le projet montre comment faire évoluer une application déjà publiée sans repartir de zéro côté joueurs : mêmes identifiants, même clé, progression reprise, et des corrections livrées à distance.

Vous avez une application à refondre sans perdre vos utilisateurs, ou un jeu à lancer ? Me contacter. La vidéo et tous les écrans du jeu sont sur la page de Snake Survival.

Questions fréquentes

Les joueurs de la première version ont-ils perdu leur progression ?

Non, c’est le but de la reprise : au premier lancement de la mise à jour, le jeu relit l’ancienne sauvegarde du même téléphone et reprend pièces, vies, skins, records et réglages.

Le jeu fonctionne-t-il sans connexion ?

Oui. Seuls les duels en ligne, les achats et les codes VIP demandent une connexion internet ; le reste se joue hors ligne.

Où télécharger Snake Survival ?

Sur l’App Store et sur Google Play. Les liens sont sur la page du jeu, /projets/snake-survival.