Unity 2019.3 est sorti le 28 janvier. Sur le papier, c’est une version « tech stream » de plus, celle qu’on installe un vendredi soir pour voir ce qui casse. Dans les faits, elle fait passer en production le grand chantier graphique lancé en 2018. Le High Definition Render Pipeline, alias HDRP, devient un paquet « vérifié ». Autrement dit, Unity estime qu’on peut enfin construire un jeu dessus sans allumer un cierge.
Unity 2019.3 range enfin ses pipelines de rendu
Petit rappel des épisodes précédents. Depuis Unity 2018.1, le moteur propose deux pipelines de rendu programmables à côté du bon vieux pipeline intégré. Le premier s’appelait Lightweight Render Pipeline. Il change de nom et devient l’Universal Render Pipeline (URP), pensé pour tourner sur à peu près tout ce qui possède un écran. Le second, HDRP, vise le PC haut de gamme et les consoles de salon. Avec Unity 2019.3, les deux obtiennent le statut vérifié. Concrètement, Unity a testé ces paquets avec cette version précise de l’éditeur. Leur API ne devrait donc plus bouger dans tous les sens d’une mise à jour à l’autre.
Côté HDRP, Unity ajoute les Custom Passes, qui injectent ses propres effets à des moments précis du rendu. On gagne aussi un post-traitement personnalisable et un ciel physique (Physically Based Sky). HDRP fonctionne désormais en VR, ce qui n’était pas le cas jusqu’ici. Le Visual Effect Graph obtient lui aussi le statut vérifié et se branche directement sur le Shader Graph. Pour prouver que l’ensemble tient debout, Unity s’appuie sur The Heretic, son court-métrage en temps réel. Il tourne sous Unity 2019.3 et utilise à peu près chaque option de HDRP et du VFX Graph. Une démo technique conçue par l’éditeur du moteur, c’est un peu comme un essai routier mené par le constructeur : on voit rarement la voiture finir dans le fossé.
Un éditeur qui change enfin de tête
C’est le changement que tout le monde verra en premier. L’interface reçoit une nouvelle police et de nouvelles icônes. Elle gère aussi mieux les écrans haute densité. Rien de spectaculaire, mais l’éditeur n’avait pas changé d’allure depuis des années. Les habitués vont pester une semaine contre les icônes déplacées. Ensuite, ils oublieront qu’il y en a eu d’autres.
Plus utile au quotidien, le mode Configurable Enter Play Mode arrive en version expérimentale. Il permet de sauter le rechargement des scripts et de la scène au lancement du jeu dans l’éditeur. Sur un gros projet, ce rechargement coûte plusieurs secondes à chaque clic sur Play. Multipliées par quelques centaines de lancements par jour, ces secondes finissent par faire des heures. Il faut en revanche adapter son code, car Unity ne remet plus les variables statiques à zéro. Les amateurs de singletons statiques viennent de recevoir un message personnel.
Ce qui reste du ménage se voit moins. Le ramasse-miettes incrémental quitte le statut expérimental et fonctionne sur toutes les plateformes sauf WebGL. Le Package Manager sait désormais installer un paquet depuis un dépôt git. Enfin, une nouvelle version de l’Asset Database promet des imports plus rapides et plus fiables.
Input System : la fin de Input.GetAxis ?
L’autre gros morceau de Unity 2019.3 concerne les entrées. L’Input Manager historique, avec ses axes identifiés par des chaînes de caractères, accompagne le moteur depuis ses débuts. Il fait le travail pour un clavier et une souris. Il devient pourtant pénible dès qu’il faut gérer une manette, un écran tactile et un casque VR dans le même projet. Unity propose donc un nouvel Input System, construit autour des actions. On décrit « Sauter » ou « Tirer », puis on y associe des touches, des boutons ou des gestes. Le code du jeu ne connaît plus que l’action.
Attention cependant. Contrairement à HDRP, l’Input System reste un paquet en préversion. Unity le présente comme le nouveau standard sans le déclarer prêt pour la production. Les deux systèmes peuvent heureusement cohabiter dans un même projet, ce qui permet de migrer petit à petit. Pour un jeu qui sort dans six mois, on conseillera la prudence. Pour un prototype qui démarre aujourd’hui, partir directement sur le nouveau système semble en revanche plus malin que de refaire toute la plomberie dans un an.
Faut-il passer à Unity 2019.3 tout de suite ?
Unity répond lui-même à la question. Pour les projets en production, la réponse est non. Le moteur avance en deux temps. Les versions « tech stream » apportent les nouveautés, puis une version LTS (Long Term Support) les stabilise pendant deux ans. Unity 2019.4 LTS doit sortir ce printemps avec exactement les mêmes fonctions que Unity 2019.3. Le studio qui a un jeu à livrer attendra donc quelques mois. Celui qui démarre un projet peut s’y mettre dès maintenant.
Reste la question que la note de version évite soigneusement : la fragmentation. Un projet Unity peut désormais reposer sur trois pipelines de rendu différents. Un shader écrit pour le pipeline intégré ne fonctionne pas sous HDRP. Par ailleurs, la plupart des assets de l’Asset Store ne sont pas compatibles avec les trois. Passer un projet existant sous HDRP n’a rien d’une case à cocher, puisqu’il faut reprendre les matériaux, l’éclairage et le post-traitement. Le statut « vérifié » garantit que le paquet fonctionne, pas que votre projet de 2017 fonctionnera avec.
On note aussi que l’effort de Unity porte surtout sur le haut de gamme. HDRP et The Heretic visent clairement les studios tentés par Unreal Engine. Pourtant, l’immense majorité des jeux Unity sont des productions mobiles ou indépendantes qui n’ont que faire d’un ciel physiquement correct. Pour ces équipes, l’URP vérifié et le Play Mode accéléré comptent sans doute davantage que tout le reste. C’est d’ailleurs là que Unity 2019.3 risque de faire gagner le plus de temps au plus grand nombre.
Reste à savoir combien de studios oseront livrer un jeu commercial sous HDRP avant la fin de l’année. Les autres attendront sans doute de voir qui essuie les plâtres en premier.