ÉTUDE DE CAS

Comment Two Point a été lancé avec succès sur plusieurs plateformes

Le compilateur Burst, l'URP et ECS ont permis à Two Point Campus de partager un code performant sur toutes les plateformes ciblées.

Favoriser l'expérience joueur

Comment les développeurs peuvent rester concentrés sur leur expérience de jeu, tout en répondant à la demande externe en la lançant sur les PC, les consoles et la Nintendo Switch™ ? Comment peuvent-il faire appel au savoir-faire nécessaire pour coordonner avec succès différents moteurs de rendus, des pipelines et des compilateurs pour tant d'équipement divers ? Que ce passe-t-il si un studio préfère passer du temps sur l'expérience joueur plutôt que les problèmes fastidieux rencontrés en backend ?

  • Les enjeux

    Lancement de Two Point Campus sur plusieurs plateformes

  • Plateformes

    PC, Mac, PlayStation4®, PlayStation5®, Xbox 1, Xbox X|S, Nintendo Switch

  • Membres de l'équipe

    45

  • Lieu

    Royaume-Uni

Créer plus que gérer

Les fondateurs des studios Two Point sont des développeurs de jeux chevronnés qui misent plus sur la création que sur la gestion. C'est à dire qu'ils construisent eux-mêmes leurs visions de jeux de simulation, plutôt que de coordonner de grosses équipes.

En tant qu'ingénieurs seniors, ils ont déjà travaillé avec un certain nombre de moteurs de développement commerciaux et exclusifs. Pour leur développement de jeux à Two Point, ils ont choisi Unity. Ils ont préférés le langage C# au C++ et, en tant que startup, ils ont du montrer des démos, des prototypes et des expériences de jeu en quelques mois. Pour Ben Hymers, cofondateur et directeur technique : « Unity était le choix évident afin de finaliser les choses rapidement. Sans parler du lancement simultané sur PC, consoles et Nintendo Switch. »

Nintendo Switch est une marque déposée de Nintendo.

Making instead of managing

Les résultats

Les résultats

  • Logique de jeu optimisée pour différents environnements matériels à l'aide de la pile technologique orientée vers les données (DOTS), le compilateur Burst et le cadre de l'Entity Component System (ECS) de Unity 
  • Rendu de haute qualité sur toutes les plateformes géré par un ingénieur de rendu à l'aide du pipeline de rendu universel (URP) de Unity
  • Six mois économisés et trois à quatre ingénieurs en moins en choisissant Unity au lieu de créer un moteur en interne 
  • 90 % de code de shader utilisé sur toutes les plateformes sans aucune modification
Tout à propos des SIM

Tout à propos des SIM

« Juste le bon côté du chaos » : c'est ainsi que Hymers décrit le processus créatif au sein de Two Point. Les fondateurs ont collaboré sur les jeux de simulation Black & White et Theme Hospital dans d'autres studios et ce dernier à d'ailleurs inspiré le premier jeu de Two Point, Two Point Hospital, qui est sorti en 2018. Il a ensuite décroché le Webby Award 2020 dans la catégorie meilleure conception de jeux.

Selon Richard Brooks, un ingénieur senior de Two Point, le choix du thème de leur jeu suivant a été à la fois logique et pratique. « Les hôpitaux et les universités ont en commun des types d'infrastructure similaires et peuvent également héberger les personnages les plus fous. » explique-t-il. L'équipe a utilisé de nombreuses « expériences stupides à l'université » de ses membres pour créer sa publication la plus récente : Two Point Campus.

Orienting entities with ECS

Orientation des entités avec ECS

Two Point Campus est un jeu relativement vaste, avec une logique complexe et un nombre important de types de composants. Ayant pour objectif de lancer le jeu sur diverses plateforme, l'équipe a décidé lors des premières étapes du développement d'optimiser la logique de jeu et d'utiliser pleinement la solution Entity Component System (ECS) de Unity, le cœur de notre pile technologique orientée vers les données (DOTS) multithread. 

Le système ECS organise les projets de façon orientée vers les données, contrairement à la manière traditionnelle orientée vers les objets, pour permettre ainsi de réduire considérablement les sauts entre les adresses de mémoire. Ceci, avec en plus le compilateur Burst, constituent des avantages indispensables quand il s'agit de transférer du code de jeu sur différentes plateformes matérielles. 

« Nous avons même rédigé les éléments de jeu les plus petits possibles pour être flexibles et ces fonctions ont disparu quand nous les avons vérifiées dans le profileur. » explique Brooks « Avec tout cela, les gains de performance ont été énormes. » L'équipe a également remanié la création de maillage dynamique pour permettre l'utilisation du compilateur Burst et du traitement de maillage rapide.

Getting help from ISS and Backtrace

Obtenir de l'aide de l'ISS et de Backtrace

Pour permettre l'utilisation optimale de la DOTS et assurer son lancement multiplateforme simultané, l'équipe de Two Point s'est associée avec les services Réussite intégré Unity (ISS). Le manager relations partenaires (PRM) a fait appel aux ingénieurs DOTS, qui ont aidé Two Point à comprendre les détails complexes de base dont ils avaient besoin pour obtenir la meilleure performance de leur système et leur cas d'usage spécifique a permis à Unity de mettre au point des améliorations possibles de son moteur.

La gestion de crashs Backtrace a constitué également une aide non négligeable. « J'utilise Backtrace depuis des années. C'est une solution complète pour les données de nos journaux de crashs/d'erreurs, et notamment pour la Nintendo Switch. » dit Hymers. La plateforme partenaire de Unity permet de filtrer simplement les données de crash et de performance, de les relier à différentes équipes d'intervention et de configurer des tableaux de bord personnalisés.

Scaling multiplatform with URP

Adaptation au multiplateforme avec l'URP

Dans les jeux de simulation, les plafonds et les toits sont des éléments complexes aussi bien pour les joueurs que pour les développeurs. Un éclairage réaliste doit prendre en compte les vues sans mur et sans toit. « Presque toutes les pièces de Two Point Campus sont dotées d'un éclairage unique et de leur propre shader. » explique Hymers. « Et nous n'avons aucun toit. » Cela représente beaucoup de travail, mais l'équipe a réussi à l'aide de l'URP (pipeline de rendu universel) pour toutes les compilations de plateforme.

Au niveau de l'élaboration du pipeline et des ressources, l'URP a permis à l'équipe d'adapter le jeu à toutes les plateformes, et notamment la Nintendo Switch, rapidement et efficacement. Ils ont également personnalisé l'URP pour donner vie à la vision artistique du jeu, en adaptant de façon spécifique les éclairages divers et les ombres variées figurant dans l'environnement du jeu.

« Rien ne nous a empêché dans l'URP de réaliser ce que nous voulions faire. » souligne Brooks. « Rien n'est impossible avec l'URP. »

Essais rapides grâce à Shader Graph

Essais rapides grâce à Shader Graph

En plus de l'URP, Two Point s'est servi du Shader Graph pour résoudre les problèmes liés à l'éclairage et à l'ombrage. L'IU du Shader Graph a permis aux infographistes environnementaux d'expérimenter rapidement des idées et de choisir celles qui convenaient. Par exemple; au lieu de tester au hasard des combinaisons de chiffres, les infographistes ont pu ajuster des curseurs préréglés avec les valeurs adéquates. Ils ont pu évaluer leur travail en temps réel dans l'éditeur, puis partager les meilleurs réglages avec les meilleurs shaders, de la même manière que les développeurs utilisent le système Nested Prefab. « Au moins 90 % de notre code de shader fonctionne bien sur toutes les plateformes sans aucune modification. » selon Brooks.

Gestion de mémoire multiplateforme

Gestion de mémoire multiplateforme

La gestion de la mémoire est généralement l'un des plus grands défis pour le développement en multiplateforme. Lorsqu'une compilation Nintendo Switch a commencé à montrer des problèmes de mémoire, l'équipe de Two Point a eu recours au Profileur de mémoire Unity. Il est immédiatement apparu que certaines textures volumineuses et plusieurs ressources inutiles se chargeaient. Ces détails s'étaient retrouvés dans la compilation par erreur. Brooks raconte : « La fenêtre Profiler Analyzer est toujours notre outil principal pour optimiser les compilations de plateforme. Elle est essentielle pour détecter rapidement nos blocages. » 

Une autre fonctionnalité indispensable pour les performances en matière de mémoire dans les limites des différentes plateformes était le SRP (pipeline de rendu programmable) Batcher. Pratiquement tout ce qui figure à l'écran dans Two Point Campus est dynamique et l'optimisation des requêtes est obligatoire. « Nous avons testé une compilation de Nintendo Switch sans le Batcher, mais cela a rajouté 30 ms/image » raconte Brooks. « C'est un outil indispensable. »

Trouver mieux, moyen explosif

Trouver mieux, moyen explosif

Les développeurs de Two Point trouvent toujours de nouvelles façons d'améliorer leurs méthodes de production pour rendre l'expérience de jeu encore plus attrayante. Et en tant qu'experts chevronnés, ils ont de précieux conseils à partager. « Cela vaut vraiment le coup de mettre à jour Unity lorsque c'est le bon moment pour votre cycle de développement. Nos toutes dernières compilations après 2018 ont une taille réduite de moitié, elles tournent mieux et se chargent en un dixième de temps. » explique Hymers

L'équipe recommande aussi fortement la configuration d'un ensemble de tests complet qui prend en charge toutes les plateformes, ainsi que l'utilisation de profileur de mémoire, particulièrement avec les consoles les moins performantes. Ils proposent de planifier des graphiques pour une performance flexible, de penser à des interrupteurs pour équilibrer la qualité et la performance, de faire des essais avec Mip Map Streaming pour les composants texturés dynamiques et d'utiliser l'API maillage pour le traitement dynamique du maillage. Hymers ajoute : « Et bien sûr, faites fonctionner autant de systèmes que possible grâce au compilateur Burst. »

Passer plus de temps sur l'expérience de jeu

Passer plus de temps sur l'expérience de jeu

Two Point apprécie de ne pas avoir besoin de configurer tous les différents moteurs de rendu, les pipelines et les compilateurs en fonction des différentes combinaisons d'équipement possibles sur lesquelles les jeux doivent fonctionner. Mais lorsque l'équipe a besoin d'une requête spécifique, telle que l'optimisation de la performance de l'URP, Unity va faire preuve de flexibilité en les aidant avec leurs personnalisations dans l'éditeur ouvert. « Avec Unity, c'est presque aussi simple que d'appuyer sur une seule touche. Nous utilisons notre temps pour l'expérience de jeu à la place. » dit Brooks.

Richard Brooks, Senior Engineer, Two Point Studios

« Nous avons même rédigé les éléments de jeu les plus petits possibles pour être flexibles et ces fonctions ont disparu quand nous les avons vérifiées dans le profileur. Avec tout cela, les gains de performance ont été énormes. »

Richard Brooks, Senior Engineer, Two Point Studios
Ben Hymers, Cofounder and Technical Director, Two Point Studios

« J'utilise Backtrace depuis des années. C'est une solution complète pour les données de nos journaux de crashs/d'erreurs, et notamment pour la Nintendo Switch. »

Ben Hymers, Cofounder and Technical Director, Two Point Studios
Richard Brooks, Senior Engineer, Two Point Studios

« Rien ne nous a empêché dans l'URP de réaliser ce que nous voulions faire. Rien n'est impossible avec l'URP ».

Richard Brooks, Senior Engineer, Two Point Studios
Richard Brooks, Senior Engineer, Two Point Studios

« La fenêtre Profiler Analyzer est toujours notre outil principal pour optimiser les compilations de plateforme. Elle est essentielle pour détecter rapidement nos blocages. »

Richard Brooks, Senior Engineer, Two Point Studios
Ben Hymers, Cofounder and Technical Director, Two Point Studios

« Cela vaut vraiment le coup de mettre à jour Unity lorsque c'est le bon moment pour votre cycle de développement. Nos toutes dernières compilations après 2018 ont une taille réduite de moitié, elles tournent mieux et se chargent en un dixième de temps. »

Ben Hymers, Cofounder and Technical Director, Two Point Studios

Une création unique, des milliards de joueurs

Touchez un public plus large et soyez assurés que votre licence sera prête pour l'avenir. Élaborez votre contenu une seule fois et déployez-le sur plus de 20 plateformes afin de captiver vos joueurs, quel que soit le format choisi.

Ce site utilise des cookies dans le but de vous offrir la meilleure expérience possible. Consultez notre politique de cookies pour en savoir plus.

Compris