Unity 2018.1 est disponible

Découvrez les fonctionnalités qu'apporte cette nouvelle version !

Unity est un moteur de jeu très populaire. Il est utilisé par de nombreux jeux vidéos et supporte de nombreuses plateformes.
Aujourd’hui, il vient tout juste de passer à la version 2018.1. Découvrons ensemble les nouveautés qu’apporte cette nouvelle version !

Presets

Commençons par l’un des ajouts les plus attendus de cette nouvelle version : les Presets !
Grâce à cette nouvelle fonctionnalité, vous pourrez sauvegarder un paramétrage par défaut pour chaque type de Component.

Cette fonctionnalité s’avérera particulièrement utile pour vous épargner certaines tâches répétitives. Voici une petite animation pour illustrer la création d’un preset, son utilisation et son affection en tant que preset par défaut.

Les Presets

Package Manager

Autre élément important de cette mise à jour, le Package Manager introduit la possibilité d’ajouter ou retirer certaines fonctionnalités optionnelles de Unity. Ces fonctionnalités étaient, pour la plupart, déjà présentes avant la version 2018.1 mais demeuraient assez peu connues, car elles devaient être ajoutées manuellement sans aucune garantie de leur maintien et de leur compatibilité.

Profitez donc de ce nouvel outil pour découvrir ces quelques pépites !

Le Package Manager

Attention, par défaut le Package Manager ne liste pas tous les modules existants. Certains devront être ajoutés manuellement, comme celui sur l’Entity Component System que nous verrons plus bas.

Scriptable Render Pipeline

Nous arrivons maintenant en terre inconnue…
Cette fonctionnalité risque d’être assez « abstraite » pour la plupart d’entre vous, mais devrait tout de même vous intéresser. Il s’agit de la possibilité de coder soi-même son propre Pipeline de rendu, autrement dit, la possibilité d’écrire sa propre boucle de rendu !

Attention donc à ce que vous ferez ! Mais rassurez-vous, l’équipe de Unity a bien conscience que cette tâche peut être un peu délicate et a donc mis à disposition deux SRP prêts à l’emploi.

Lightweight Render Pipeline

Ce SRP s’adresse principalement à ceux qui souhaiteraient prendre en considération les performances et la compatibilité avant la qualité du rendu. Autrement dit, il convient tout particulièrement aux jeux 2D, mobile ou VR.

Cliquez ici pour en savoir plus !

High Definition Render Pipeline

À l’inverse, ce SRP mise tout sur la qualité du rendu et s’adresse directement aux jeux PC et console, quitte à sacrifier une part de la compatibilité matérielle.

Cliquez ici pour en savoir plus !

Pour ceux qui voudraient en savoir plus sur ce concept n’hésitez pas à aller jeter un œil ici.

ShaderGraph

Le ShaderGraph est lui aussi un élément très attendu de cette mise à jour. Il s’agit d’un éditeur de shaders nodal qui devrait en séduire plus d’un. Il existait déjà des solutions alternatives comme ShaderForge, mais le côté officiel du ShaderGraph devrait petit à petit le rendre incontournable.

ShaderGraph

ShaderGraph propose déjà de nombreux nœuds pré-programmés mais libre à chacun de créer et d’ajouter ses propres nœuds.

Notez que ShaderGraph est entièrement compatible avec les SRP présentés précédemment.

ShaderGraph n’est pas inclus directement dans Unity. Comme les autres nouveaux modules, il doit être ajouté à partir du Package Manager présenté plus haut.

Burst, Entity Component System et C# Jobs System

Passons maintenant à un point extrêmement important de cette mise à jour. Il s’agit de l’introduction du compilateur Burst, de l’Entity Component System (ECS) et du C# Jobs System, qui font tous les trois parties de la nouvelle direction qu’Unity souhaite prendre pour les années à venir, à savoir le « Performance by default » (la performance par défaut).

Ce nouveau slogan traduit une volonté de la part de Unity de se faire une place sur un marché qu’il est très difficile d’intégrer, celui des jeux AAA !

Unity a souvent fait l’objet de critiques pour son côté boîte noire, peu performant, dédié aux jeux mobiles, aux développeurs amateurs et au prototypage. Mais si on regarde d’un peu plus près les récentes avancées (IL2CPP, publication du code source, Scriptable Renderer Pipeline, etc.), il semble plus qu’évident que Unity cherche à se défaire de cette image.

Ce nouveau trinôme devrait donc vous permettre de programmer en suivant une nouvelle approche qui devrait permettre de multithreader certaines parties de votre code sans avoir besoin de s’en préoccuper manuellement. Autrement dit, il générera du code multithreadé pour vous !

Il y a évidement des règles qu’il est impératif de respecter pour que cette optimisation fonctionne mais Unity semble s’être engagé sur cette voie en ayant déjà passé une partie de ses modules sur ce système (comme les NavMeshes, par exemple). Il faudra donc s’attendre à retrouver ce trinôme de plus en plus souvent dans les projets à venir. Affaire à suivre !

Voici quelques liens pour ceux qui souhaiteraient en apprendre plus ici et , ou encore quelques vidéos provenant de la GDC :

Encore une fois, il sera nécessaire de passer par le Package Manager pour profiter de cet ajout.

Scripting

Coté Scripting, nous ne sommes pas en reste non plus.
Bien qu’il n’y ait pas de réelle nouveauté, on notera tout de même que le .NET 4.X n’est plus tagué comme expérimental et peut désormais être utilisé en production !

On notera aussi la fin du support de l’IDE MonoDevelop. En remplacement Unity préconise de se tourner vers Visual Studio ou à défaut vers VS Code (avec une extension).

Toujours dans la même dynamique, le support du IL2CPP est maintenant disponible pour les plateformes Windows et Mac. (on retrouve encore une fois cette volonté de performance)

Pour ceux qui l’ignoreraient, IL2CPP est une technologie mise au point par Unity permettant de transformer le code C# de vos scripts en un code natif C++ afin d’en optimiser les performances. Le IL2CPP était déjà disponible sur Android et iOS depuis quelque temps et peut donc déjà être considéré comme stable.

J’en profite aussi pour rappeler que UnityScript a été marqué obsolète depuis la version 2017.2 ! À terme, le support du JavaScript et du Boo sera probablement supprimé, le C# sera donc le seul langage supporté par Unity.


Pour les plus téméraires, sachez que la version 2018.3 devrait apporter le support du C# 7 !

Autres

Bien évidemment, cette mise à jour s’accompagne de son lot de corrections, de modifications et d’améliorations que vous pourrez retrouver en détail ici.

En voici un bref résumé :

  • nouvelle API BuildReport,
  • améliorations du système de particules,
  • progressive Lightmapper,
  • support de l’IG pour le GPU instancing,
  • Post-Processing v2,
  • 2D - Simulation physique multithreadé (expérimentale),
  • 2D - API d’animation de personnages 2D (expérimentale),
  • 2D - SpriteShape (expérimentale),
  • kit multiplateformes RA (ARCore/ARKit API),
  • importation des ressources et chargement de scène plus rapides,
  • nouvelle fenêtre de sélection des couleurs pour un meilleur support du HDR.

N’hésitez pas à aller jeter un œil sur le blog de Unity pour davantage de détails !

Unity Hub

Bien que non liée à la version 2018.1 de Unity, cette mise à jour marque aussi la mise en avant d’un nouveau launcher appelé Unity Hub.
Il a été pensé pour améliorer la gestion des différentes installations de Unity en les centralisant toutes dans un même outil. Il s’avérera particulièrement utile si vous travaillez sur des projets utilisant des versions différentes de Unity.

Unity Hub

Et voilà, c’est tout pour cette nouvelle version de Unity !
J’espère que cet article vous aura plu et qu’il vous aura donné envie de télécharger cette nouvelle version de Unity.

Je vous donne rendez-vous dans quelques mois pour la version 2018.2 !
D’ici là, n’hésitez pas à présenter vos projets sur le forum. ;)

7 commentaires

Merci pour cet article !

J’avais suivi Unity du coin de l’œil, et j’étais resté sur l’idée d’un moteur aux fonctionnalités et performances limitées. Je suis content d’apprendre qu’ils ont de l’ambition !

J’aime bien l’état d’esprit Performance by default. J’utilise quelques logiciels qui partagent cet état d’esprit, et c’est agréable d’avoir quelque chose de générique et proche de l’état de l’art pour ce qui est des performances. Les ajustements ne sont ainsi nécessaires que si notre cas particulier l’exige.

À bientôt pour la prochaine version. ;)

Pas mal!

J’avais déjà changé d’avis il y a quelques temps sur Unity (ayant commencé à l’utiliser sur un petit projet), mais avoir un ECS c’est quand même mieux (ayant déjà utiliser Ashley, j’apprécie assez).

Pour les fonctions expérimentales (2D), je pense que je vais les expérimentés! L’ajout des tilemaps en 2017 c’était déjà bien, j’ai hâte de tester tout ça !

Toujours pas d’outils de scripting visuel natif dans Unity ? C’est quand même dommage de devoir forcément passer par des solutions externes comme Playmaker. Ils n’ont toujours pas retenu la leçon d’Unreal : Blueprint + C++… :(

+0 -0

Toujours pas. On aurait pu y croire l’année dernière quand ils ont commencés à empaqueter un package de l’asset store dans la version Plus. Apres tout, ça c’est déjà vu avec TextMeshPro qui a été racheté et qui remplacera les Text UGUI dans la version 2018.2, donc peut être un jour. ^^

Mais ça n’a pas l’air d’être la prio. Surtout qu’Unity est déjà connu pour être facilement accessible et c’est pas dit qu’ils y gagneraient des masses. Contrairement à Unreal où le C++ en rebuterait plus d’un.

+0 -0

Toujours pas d’outils de scripting visuel natif dans Unity ? C’est quand même dommage de devoir forcément passer par des solutions externes comme Playmaker. Ils n’ont toujours pas retenu la leçon d’Unreal : Blueprint + C++… :(

Arius

Et c’est bien triste, parce que c’est bien un gros truc qui achève de convaincre les graphistes d’aller côté UE4.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte