Unity 3D est disponible en preview pour Linux

Cela faisait déjà quelques temps que des rumeurs circulaient autour d’un éventuel port de l’éditeur d’Unity pour les systèmes Linux. Après une première phase de test privé, voilà que le dit éditeur est proposé en version preview pour tout le monde. C’est une très bonne nouvelle, cependant il faut tout de même faire attention car cette version preview va servir à l’équipe chargée du port de l’éditeur de vérifier qu’il est possible de livrer une version Linux de l’éditeur en même temps que les versions Windows et Mac.

Today’s build is what we call an experimental build; future support is not yet guaranteed.

Si les retours ne sont pas concluants et si le travail nécessaire est trop important, il est possible que l’éditeur ne voient jamais le jour en version stable sur nos systèmes. N’hésitez donc pas dès aujourd’hui à tester, utiliser et surtout remonter un maximum de bugs.

Unity sous Linux avec une scène standard en 3D
Unity sous Linux avec une scène standard en 3D

Capacité d’export

L’éditeur permet d’exporter votre projet sur un tas de plateformes.

  • Windows / Linux / Mac ;
  • Android (SDK requis + Java 1.7) ;
  • WebGL (Nodejs requis + Java 1.6 => WTF !?) ;
  • WebPlayer (vous serez bien avancé comme ça ah ah) ;
  • Samsung TV ;
  • Tizen.

Maintenant nous allons voir comment installer et faire fonctionner Unity sur votre système Linux. Sachez que l’éditeur a été porté afin qu’il fonctionne en priorité sur Ubuntu et ses dérivés, mais rassurez vous il fonctionnera aussi sur d’autres distributions car l’équipe en charge du port Linux propose deux moyens d’installer l’éditeur, soit en passant par un fichier .deb ou via un script d’installation bash.

Installation

La première chose à faire est de vous assurez que vous possédez un système 64 bit car l’éditeur ne peut fonctionner que sur cette architecture (cela sera prochainement un standard, même sous Mac et Windows). Vous aurez ensuite besoin des drivers propriétaires qui vont avec votre carte graphique car les drivers libres vous poseront des problèmes. Si vous utilisez une Ubuntu ou dérivée, vous pouvez activer ce nouveau dépôt, il contient les derniers drivers pour votre carte graphique (NVIDIA uniquement pour le moment), attention à bien installer la branche compatible avec votre GPU. Enfin il faudra télécharger la version qui conviendra à votre système (on me souffle que l’éditeur est disponible dans le dépôt AUR 😉 ). Bon alors on refait le point !

  1. Un système Linux 64 bit ;
  2. Le drivers proprio de votre carte graphique ;
  3. Le paquet .deb 64 bit pour debian et co ;
  4. OU le script d’installation (clic droit / enregistrer sous) pour toutes les autres distributions.

Les drivers de carte graphique

Unity utilise des logiciels externes qui utilisent des bibliothèques 32 bit, donc même si l’éditeur est construit pour l’architecture 64 bit, il utilise des programmes 32 bit. Il faudra ainsi installer les drivers de carte graphique 32 bit ET 64 bit. Généralement c’est automatique, mais si vous avez des soucis d’affichage, ça pourrait bien venir de ça 😉

Le cas MonoDevelop

Par défaut, il est plus que probable que MonoDevelop ne se lance pas car il a besoin de dépendances qui ne sont pas empaquetées avec l’installeur d’Unity. Pour le moment c’est très facile à contourner, il faut installer le paquet MonoDevelop de votre distribution ce qui installera par la même occasion toutes les dépendances nécessaires à son exécution (Mono Runtime, GTK#, etc…).

# Pour Ubuntu, debian et co.
sudo apt-get update
sudo apt-get install monodevelop

# Pour Fedora
su -
yum install monodevelop
# ou pour les version récente
dnf install monodevelop

# Pour Mageia et Open Mandriva
su -
urpmi i monodevelop

Je vous recommande par ailleurs d’utiliser une version à jour de mono et MonoDevelop, vous pourrez y installer le dernier plugin Unity au passage… J’ai un secret à vous raconter 😛 Le projet Mono propose un dépôt avec la dernière version de Mono et MonoDevelop ! Rendez vous ici pour choisir votre distribution et l’adresse de dépôt qui va bien. Cela fonctionne sur Ubuntu (Debian et dérivées), Fedora, Mageia, OpenSuse.

# Exemple pour Ubuntu et dérivées
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update

Les modèles 3D

Par défaut Unity prend en charge les modèles au format fbx, dxf, obj/mtl, dae. Pour utiliser le format .blend par exemple il faudra installer le logiciel Blender, c’est évident, mais il fallait le préciser. J’ai des problèmes avec mes modèles obj sur un projet, je ne sais pas si ce sont mes modèles qui sont mal formés ou si c’est un bug, mais gardez en tête que le FBX lui passe très bien.

Dernière chose après j’arrête

La version proposée est basée sur la version 5.1.0, et nous sommes aujourd’hui à la version 5.1.3. Les 3 versions mineurs ont tout de même un paquets d’améliorations/corrections et nouveautés, surtout au niveau de l’export WebGL et de la réalité virtuelle. Faites attention à vos scripts donc…

Premier lancement

Fenêtre de sélection des projets
Fenêtre de sélection des projets

Gardez en tête une chose : C’est une version preview ! Il y a des bugs, même si l’éditeur est utilisable pour travailler, il y a beaucoup de choses inconfortables. Le but ici est vraiment de voir ce qui marche et ce qui ne marche pas pour aider la communauté et l’équipe responsable du portage, de définir ce qui est bon et ce qui ne l’est pas. Pensez donc bien à faire des backups de vos projets avant de travailler avec. De plus je recommande à ceux qui utilisent git de créer une branche dédiée afin de ne pas perdre du temps en cas de corruption de données.

Un vrai projet en cours d'utilisation
Un vrai projet en cours d’utilisation

Il est possible de travailler correctement avec l’éditeur sous Linux, il faut juste savoir deux/trois trucs. Ce développeur par exemple a réalisé son jeu lors de la dernière Ludum Dare entièrement sous Linux (exports compris).

Mon listing des bugs

Comme je vous l’ai déjà dis, cette version sert à déterminer les points bloquants et les bugs à corriger pour sortir une version stable. Pour ma part j’ai été confronté à ces problèmes :

  • Difficulté pour docker les différents panneaux de l’espace de travail ;
  • Impossible d’importer certains types de modèles 3D (obj/mtl) ;
  • Curseur de souris inversé à certains endroits ;
  • Le drag’n drop ne fonctionne pas correctement, on ne voit pas ce que l’on déplace ;
  • Impossible de redimensionner les popups (sélection du material par exemple) ;
  • Certains prefabs n’ont pas leurs scripts (peut être un problème de majuscule/minuscule) ;
  • Certaines propriétés ne sont pas desérialisées correctement et il faut réassigner ces variables ;
  • Crash de l’éditeur lorsqu’on tente trop longtemps de docker des panneaux ;
  • Ouverture des popups dans le coin supérieur gauche de l’écran. Quand on travail sur un dual screen, sur le deuxième écran, c’est problématique ;
  • Capture de la souris non fonctionnel, donc Input.GetAxis(« Horizontal|Vertical ») ne fonctionne pas pour la souris. Je pense que c’est un problème de focus car dans certains cas ça marche ;
  • Certains plugins natifs pas encore supportés (comme le Leapmotion par exemple) ;
  • Certains fichiers audio ne peuvent pas être importés (FSBTool ERROR: The format of the source file is invalid, see output for details.) ;
  • Il y a un décalage important de la souris en mode preview. Il est par exemple très compliqué de cliquer sur des éléments d’UI à cause de ça.
  • Impossible de lancer l’AssetStore ;
  • Comme sous Windows et Mac, MonoDevelop n’ouvre pas la solution du premier coup, il faut s’y reprendre à plus d’une fois cependant sous Linux ;
  • Encore MonoDevelop, il arrive que certains assemblages ne soient pas référencés correctement (System.dll, UnityEngine.dll, UnityEditor.dll) ;
  • Impossibilité de faire du debug avec MonoDevelop (ah.. encore lui) car la solution ne peut pas être construite. Error: Error initializing task Message: Could not load file or assembly ‘Microsoft.Build.Tasks.v4.0’ or one of its dependencies. The system cannot find the file specified. (Assembly-CSharp-vs) ;
  • [Plugin] ProGrid ne peut pas être lancé car l’erreur Script attached to ‘ProBuilderWireframeMeshObject’ in scene  » is missing or no valid script is attached.
    UnityEditor.HostView:OnGUI() survient ;
  • [Plugin] ProBuilder a la même erreur. J’ai d’ailleurs la même erreur avec tous mes CustomEditor.

Aucun soucis de consommation CPU pour moi

Rassurez vous, il y a aussi pleins d’autres choses qui fonctionnent très bien et il est tout à fait possible de travailler !

J’ai noté sur les forums que certains avaient de gros soucis de consommation CPU lorsque l’éditeur est lancé. Je ne constate pas ce problème sur ma configuration à base de core i5 @3.1 Ghz avec une carte graphique Nvidia 750 GTX 2 Go GDDR5 et 8 Go de DDR3 le tout sur une Kubuntu 15.10 beta.

Enfin, mais le plus dur est encore devant nous !

La présentation / Rapport de bugs s’arrête ici et c’est désormais à vous de tenter l’aventure ! Si vous n’êtes pas trop bidouilleur, je vous recommande d’utiliser la distribution Ubuntu (Kubuntu si vous venez de Windows car c’est très proche au niveau de l’interface), sinon vous pouvez vous lancer dès à présent avec votre distribution favorite.

N’oubliez pas qu’il est important de raporter tous les bugs que vous pourrez trouver durant votre utilisation car cela permettra d’améliorer la stabilité des futures versions.

N’hésitez pas à partager les problèmes que vous avez put rencontrer pendant votre installation / utilisation d’Unity sous Linux. Je vous aiderais dans la mesure du possible.

Amusez vous bien !