Adapter Subway Surfers City pour la performance et la vitesse

SYBO a construit sa dernière version, Subway Surfers City, comme le prochain chapitre de l'univers Subway Surfers. Alors que l'original parcourt le globe, cette version ancre les joueurs dans Subway City, introduisant des districts distincts et une plus grande variété de gameplay.
En plus du mode classique de course sans fin, le jeu introduit des expériences finies comme des événements tournants et une visite de la ville. Ces nouveaux modes élargissent les systèmes de progression et de gameplay tout en préservant la réactivité et le flux qui définissent la franchise pour des millions de joueurs dans le monde entier.
Élever la qualité graphique du jeu est central à cette vision, qui présente des animations améliorées, des environnements plus riches et des fonctionnalités de gameplay étendues. Cependant, ces améliorations ne peuvent pas se faire au détriment de la clarté ou de l'efficacité d'exécution.
Le défi était d'évoluer l'expérience d'une manière qui soit à la fois familière et nouvelle pour offrir une vision moderne du genre runner tout en maintenant l'immédiateté qui a fait du jeu original un succès mondial avec plus de 4,5 milliards de téléchargements à vie.
LE DÉFI :
Fournir un suivi de haute fidélité à Subway Surfers qui fonctionne sans accroc et maintient une performance constante sur une large gamme d'appareils.
PLATEFORME :
iOS, Android
EMPLACEMENT :
Copenhague, Danemark
ÉQUIPE DE PROJET :
35
Subway Surfers City : Une étude de cas Unity
L'équipe a construit Subway Surfers City comme un jeu en direct évolutif pour soutenir un contenu continu, de nouvelles mécaniques et une fidélité accrue au fil des ans sans nécessiter de réécritures majeures. « Il devait évoluer techniquement au même rythme que le design et le contenu évoluaient créativement, » déclare Atash Qasim, designer de jeu principal chez SYBO.
L'équipe a conçu l'architecture pour se concentrer sur la modularité et la performance. Ils ont encapsulé et étendu les systèmes, permettant aux designers d'ajouter des éléments de gameplay ou des variations environnementales sans déstabiliser le noyau du gameplay.
En même temps, une fidélité plus élevée a créé des défis de performance : des environnements détaillés, des actifs à haute poly et des animations plus riches peuvent mettre à l'épreuve les appareils de milieu et bas de gamme. « Nous avons intégré des budgets stricts pour la complexité des maillages et des shaders, mis en œuvre des chemins de rendu par niveaux avec différents niveaux de qualité et un redimensionnement de la résolution, et avons continuellement profilé sur des appareils représentatifs, » explique Gabriel Lascano, directeur technique chez SYBO. « Nous avons également investi massivement dans la recherche du bon moment pour le préchauffage des shaders, équilibrant des temps de chargement rapides contre le bégaiement de la compilation des shaders en temps réel. »
Au lieu d'optimiser à l'aveugle, ils ont identifié de réels goulets d'étranglement, y compris une densité excessive de micro-triangles et un surdessin de fragments sur les GPU basés sur des tuiles. Le résultat est une fondation adaptable, axée sur la performance, capable d'évoluer en complexité tout en maintenant la stabilité et une large compatibilité avec les appareils.

Les résultats
- Atteindre constamment 60 fps
- Augmentation du support des appareils de 5,9 fois après la phase d'optimisation des performances
- Réduction de la ligne d'horizon de 260 000 à un petit nombre de sommets et réduction des appels de dessin de 27 à juste quelques-uns
- Élimination d'un délai de 10 ms en attente de l'achèvement du GPU par image sur les appareils bas de gamme
- Diminution des frais généraux d'animation et de rendu d'environ 50 à 60 %, récupérant environ 2 ms de temps CPU sur le thread principal sur les appareils Android bas de gamme
Conception de niveaux pour une itération rapide
La conception de niveaux dans Subway Surfers City est construite pour la vitesse et la flexibilité. Pour offrir la variété et la réactivité qui définissent la franchise, l'équipe a utilisé un système procédural basé sur des morceaux, permettant aux concepteurs de créer, modifier et combiner des segments autonomes de manière indépendante dans l'éditeur Unity.
Chaque morceau comprend des éléments superposés et des règles de variation qui préservent la cohérence tout en rendant les courses répétées engageantes. Ce système permet une expansion évolutive des niveaux, permettant d'ajouter de nouveaux morceaux directement dans des courses infinies ou des modes finis sans redéfinir des chemins entiers.
En utilisant l'éditeur, les concepteurs simulent le mouvement des obstacles, prévisualisent les interactions et testent les éléments dynamiques en temps réel. « Ils peuvent ressentir exactement comment un morceau se sent sans jouer à travers le jeu complet, » explique Lascano.

Subway Surfers City | SYBO
Des outils de placement ajustables et la visualisation des colliders d'Unity ont encore rationalisé l'itération, permettant des ajustements précis et rapides. Pour les modes de jeu comme City Tour, les concepteurs ont exécuté des morceaux ou des étapes spécifiques directement dans l'Éditeur, contournant les cycles de compilation complets du projet.
La structure modulaire permet également une variation rapide du contenu. « Nos niveaux sont très modulaires, » déclare Qasim. « Nous avons différents prefabs pour différentes variations des éléments de conception de niveau que nous pouvons glisser et déposer dans des morceaux. Chaque morceau comprend plusieurs couches, donc lorsque les joueurs traversent le même segment, ils vivent différentes variations qui maintiennent le gameplay frais. »
L'équipe a combiné une architecture de niveau modulaire avec une visualisation en temps réel, ce qui a accéléré l'itération sans compromettre la qualité. Comme le note Lascano, « Ce système permet aux concepteurs d'expérimenter librement, d'élargir le contenu efficacement et de maintenir la réactivité et le polissage que les joueurs attendent à la fois dans les modes de jeu infinis et finis. »

Subway Surfers City | SYBO
Gestion de la mémoire avec Addressables
Le système Addressables est central à la capacité de l'équipe à fournir des visuels riches et des environnements expansifs sans compromettre les performances. L'équipe a utilisé Addressables pour charger uniquement les morceaux pertinents pour le joueur – déchargeant les sections complétées et diffusant de nouvelles – ce qui a minimisé l'utilisation de la mémoire et permis un contenu riche et dynamique.
« Les morceaux sont diffusés à l'intérieur et à l'extérieur via le système Addressables avec un contrôle strict de la durée de vie, garantissant que l'empreinte mémoire évolue avec le gameplay actif plutôt qu'avec la taille totale du contenu, » explique Lascano. « Combiné avec le pooling, cela minimise les pics d'allocation et maintient la mémoire d'exécution stable même lorsque le contenu évolue. »
Le système Addressables permet à l'équipe de découpler le contenu de la construction de base et de traiter les morceaux de niveau comme des unités chargées indépendamment. « Cela a été fondamental pour maintenir la conformité du magasin en réduisant la taille de téléchargement initiale et en contrôlant la résidence de la mémoire d'exécution, » déclare Lascano.

Subway Surfers City | SYBO
Évoluer les performances à travers les segments de dispositifs
Le rendu dans Subway Surfers City s'adapte aux dispositifs bas, moyens et haut de gamme tout en maintenant des visuels détaillés et des taux de rafraîchissement stables. L'équipe a suivi une méthodologie d'optimisation stricte axée sur les goulets d'étranglement. Chaque fois qu'une contrainte était supprimée, le profilage révélait le prochain facteur limitant. « Ce processus itératif nous a permis d'élargir méthodiquement la gamme de dispositifs pris en charge au lieu de compter sur une optimisation large et non ciblée, » déclare Lascano.
L'équipe a utilisé le Pipeline de Rendu Universel (URP) avec le batcher du Pipeline de Rendu Scriptable (SRP) pour réduire la surcharge de rendu CPU en mettant en cache les tampons constants de matériaux sur le GPU et en les réutilisant à travers des objets partageant la même variante de shader, minimisant ainsi la configuration d'état par appel de rendu sur le thread de rendu.
« Nous avons implémenté plusieurs variantes de shader par niveau de qualité et les avons contrôlées via des mots-clés globaux et les paramètres de l'URP. » Les appareils d'entrée de gamme utilisent un éclairage réduit et des chemins de fragments simplifiés, tandis que les segments supérieurs conservent une fidélité complète, le tout sans changer le contenu des actifs, » déclare Lascano.

Subway Surfers City | SYBO
Les artistes ont créé des shaders en utilisant l'Amplify Shader Editor, leur donnant un contrôle créatif sans avoir besoin de soutien technique. L'équipe a testé les performances sur différents appareils, réécrit des shaders complexes et optimisé des actifs clés, y compris la ligne d'horizon de la ville.
« Nous avons remplacé une ligne d'horizon animée en 3D à haute vertex, d'environ 260 000 vertices répartis sur 27 appels de rendu, par un maillage plat et des textures en mouvement, » déclare Lascano. « Ce changement a considérablement réduit le traitement des vertices et la fragmentation des micro-triangles à un petit nombre de vertices répartis sur quelques appels de rendu, récupérant plusieurs millisecondes de temps GPU sur des appareils Android d'entrée de gamme. »
Réduction du surdessin des micro-triangles sur les GPU mobiles
Un premier profilage GPU sur des appareils Mali a révélé que l'application soumettait bien plus de géométrie que ce qui contribuait de manière significative aux pixels visibles. Environ 33 % des primitives soumises étaient visibles, tandis que le GPU rejetait environ 25 % par le biais du test d'échantillonnage (idéalement moins de 5 %). De plus, la couverture partielle des micro-triangles atteignait systématiquement 50 à 80 % (idéalement moins de 10 %).
Ces résultats indiquaient que l'application générait une densité excessive de micro-triangles, une inefficacité connue sur les GPU mobiles basés sur des tuiles, où les coûts de traitement des fragments augmentent considérablement même lorsque la géométrie couvre à peine les pixels de l'écran. L'équipe utilise un système adaptatif personnalisé pour surveiller la charge CPU et GPU en temps réel. Il ajuste dynamiquement la qualité, l'instanciation des actifs, le culling de distance et les éléments non essentiels comme les accessoires à haute définition pour maintenir les performances cibles.
« Nous avons réagi en réduisant agressivement le nombre de polygones, en supprimant les faces arrière sur la géométrie statique, en simplifiant les maillages de la ligne d'horizon et en imposant des budgets de maillage stricts par morceau. Cela a considérablement réduit la charge de travail des fragments et stabilisé le temps GPU sur des appareils Android d'entrée de gamme, » déclare Lascano. « Les couleurs des vertices, les limites de polygones et la suppression des faces arrière de la géométrie statique ont encore réduit la charge de travail du GPU sans affecter la qualité visuelle du jeu. »

Subway Surfers City | SYBO
Élargissement des appareils pris en charge grâce au profilage
Au début du développement, seulement 16 % des appareils pris en charge pouvaient exécuter Subway Surfers City en raison de la complexité graphique. Lorsqu'il s'agissait de profilage, l'équipe a été confrontée à des goulets d'étranglement changeants, y compris le coût des fragments GPU et la complexité des shaders, ainsi que la surcharge de soumission CPU et la rétention de mémoire.
Pour élargir le support des appareils, l'équipe s'est fortement appuyée sur Project Auditor et Memory Profiler ainsi que sur des outils de profilage personnalisés. Project Auditor les a aidés à identifier les inefficacités au niveau de la configuration et des actifs, telles que des variantes de shader excessives et des paramètres redondants ou défectueux, tandis que les goulets d'étranglement en temps d'exécution ont été analysés à l'aide de Unity Profiler et d'outils de profilage au niveau des appareils tels que RenderDoc et Snapdragon Profiler.
Le Memory Profiler a révélé des points chauds dans l'utilisation de la mémoire des actifs, identifiant les textures, les maillages ou les objets qui causaient des pics ou une rétention inutile.

Subway Surfers City | SYBO
« Le profilage a été intégré dans notre porte de sortie de version. Chaque version majeure a été validée par rapport aux budgets CPU, GPU et mémoire pour éviter les régressions et garantir que les améliorations sur un niveau d'appareil n'introduisent pas d'instabilité sur un autre », explique Lascano.
En analysant systématiquement ces métriques, l'équipe a priorisé les optimisations, imposé des budgets de polycount et de mémoire, et assuré un rythme de trame stable même sur des appareils d'entrée de gamme.
L'équipe a également effectué des vérifications internes des Addressables pour éviter les doublons et les conflits, tandis que le système de morceaux modulaires et le pooling d'objets ont minimisé les pics de mémoire pendant le gameplay.
Prioriser la stabilité des images plutôt que la performance maximale
Pour le rendu, l'équipe a choisi OpenGL plutôt que Vulkan pour maintenir un rythme de trame stable sur les appareils d'entrée de gamme, basé sur les performances mesurées à travers leur matrice de tests.
« Bien que Vulkan ait bien fonctionné sur des appareils haut de gamme, le profilage a révélé des blocages de thread de rendu et un rythme de trame instable sur le matériel Android d'entrée de gamme », déclare Lascano. « OpenGL a produit des temps de trame plus cohérents à travers notre matrice d'appareils cibles, donc nous avons priorisé l'inclusion des appareils et la stabilité des images plutôt que la performance théorique maximale. »
Combiné avec des performances adaptatives, des shaders à niveaux, le batching SRP et des optimisations conscientes des actifs, cette approche de profilage a permis à des visuels riches et détaillés de fonctionner sans accroc sur 95 % des appareils supportés.
« La collaboration avec l'équipe de succès intégré de Unity a aidé à valider et à accélérer les décisions que nous étions déjà en train d'examiner et d'évaluer les optimisations par retour sur investissement (ROI) », déclare Lascano. « Les plus grands gains sont venus de l'élimination systématique des véritables goulets d'étranglement, qu'il s'agisse de mises à jour de volumes de liaison CPU, de chevauchements de peau de maillage ou de coûts de fragments GPU, plutôt que d'appliquer des meilleures pratiques génériques. »

Subway Surfers City | SYBO
Partager les enseignements clés sur la performance
En ce qui concerne l'optimisation des performances, Lascano souligne qu'il faut traiter les meilleures pratiques – comme les systèmes de niveau de détail (LOD) ou Vulkan – comme des hypothèses, les testant par rapport au contexte de votre jeu.
Pour les jeux en direct, il recommande de construire une architecture prête pour l'itération, avec des garde-fous tels que des limites de polycount, des budgets de complexité de shader, une gestion de la mémoire et un profilage continu. Il suggère également de considérer la portée des appareils dès le début pour éviter des retouches coûteuses plus tard dans la production.
« Le fps moyen peut être trompeur. Ce que les joueurs remarquent le plus dans un jeu comme celui-ci, c'est la stabilité du rythme des images. Éliminer les pics et les blocages du fil de rendu a eu un impact plus important sur l'expérience des joueurs que d'augmenter le taux d'images maximal, déclare Lascano. Choisir le bon pipeline de rendu avec la bonne stratégie de regroupement pour optimiser le rythme des images peut changer la donne.
Il souligne également que l'optimisation des performances est un processus itératif d'élimination des goulets d'étranglement. Chaque correction déplace la contrainte ailleurs, entre le GPU, le CPU, la mémoire et la bande passante mémoire. La clé est un profilage discipliné, des compromis mesurés et l'alignement des décisions techniques avec les appareils les plus faibles que vous comptez soutenir.
Téléchargez Unity Pro dès aujourd'hui
Commencez à créer des jeux qui vont défier, voir même surpasser, en qualité et en succès, les créations de grands studios grâce à des outils puissants, une assistance technique, des partenaires agréés et une communauté dynamique.