Le code source en C# de l'éditeur et du moteur Unity est maintenant disponible à la lecture

Le , par LittleWhite, Responsable 2D/3D/Jeux
En effet, dorénavant, le code source en C# du moteur de jeux vidéo Unity ainsi que de l'éditeur est disponible à la lecture sur GitHub. Toutefois, tous les mots de cette phrase sont importants. En effet, ce n'est pas l'intégralité du code source de Unity qui est disponible, mais uniquement les morceaux codés en C#. Aussi, le code n'est pas open source. Il est disponible uniquement à des fins de lecture. C'est-à-dire : vous n'avez aucun droit de le modifier, ni même pour en faire un « pull request » (pour rapporter un bogue, il faut utiliser le trackeur de bogues, comme auparavant).
En bref, le code a été mis à disposition afin d'aider les développeurs à mieux comprendre le fonctionnement de leur projet, ou encore, aux curieux souhaitant comprendre comment le moteur fonctionne. Il est aussi possible de voir les changements entre chaque version (et de remonter jusqu'à la version 2017.1).

Il est utile de rappeler que les parties C# du moteur de jeux vidéo étaient déjà accessibles, en décompilant les assemblies de Unity. Cela est même permis par la licence de Unity. Toutefois, le résultat était difficile à utiliser (absence des noms de variables et des commentaires). De plus, certaines personnes mettaient à disposition les fichiers produits par le disassemblage, ce qui était illégal. Ainsi, pour améliorer la vie des curieux et pour éviter à des personnes bienveillantes de passer dans l'illégalité, la société a mis le code source à disposition (à la lecture uniquement).

Bonne lecture !

Votre opinion

Aviez-vous eu le besoin de désassembler Unity ?
Est-ce que cette annonce vous impacte ? Pourquoi ?

Source

Annonce officielle


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de datalandia datalandia - Bot Troll en alpha-test https://www.developpez.com
le 18/04/2018 à 7:44
le code n'est pas très propre
Avatar de Jamatronic Jamatronic - Membre averti https://www.developpez.com
le 18/04/2018 à 9:57
@datalandia : n'hésite pas à le leur faire savoir. Je suis sûr qu'ils n'attendent que cela.
Avatar de datalandia datalandia - Bot Troll en alpha-test https://www.developpez.com
le 18/04/2018 à 11:03
je donne simplement mon avis...et si il le mettent en open source c'est justement pour avoir aussi ce genre de retour
Avatar de kilroyFR kilroyFR - Membre confirmé https://www.developpez.com
le 18/04/2018 à 11:59
Je suis d'accord leur code est a chier, ils ont nommé les variables comme s'ils ecrivaient du C++. (m_Variable) Si c'est pas un anti pattern ca ! ...
Avatar de PilloBuenaGente PilloBuenaGente - Membre éclairé https://www.developpez.com
le 18/04/2018 à 14:09
Sachant que le moteur est codé en c++, ça parait pas si absurde.
C'est marrant les critiques subjective du code sans arguments. C'est un peut "je trouve ça moche", bref, très constructif...

Très intéressant par ailleurs, merci pour l'info.
Avatar de François DORIN François DORIN - Responsable .NET & Magazine https://www.developpez.com
le 18/04/2018 à 15:18
Citation Envoyé par datalandia Voir le message
je donne simplement mon avis...et si il le mettent en open source c'est justement pour avoir aussi ce genre de retour
Un avis est intéressant s'il est constructif (surtout sur un aspect aussi subjectif que la qualité d'un code). Et ce n'est clairement pas le cas du votre. Je vous invite donc à étayer vos propos à l'aide d'arguments et d'exemples tirés du code source.

De plus, il n'est pas "open source". Il est "ouvert" à la lecture, pour des raisons explicitées dans l'actualité. La nuance est importante...
Avatar de datalandia datalandia - Bot Troll en alpha-test https://www.developpez.com
le 18/04/2018 à 16:09
1)un exemple parlant, il manque clairement de commentaire, les fichiers se contente de 1-2 commentaires de 1 ligne grand max
c'est un exemple typique d'une mauvaise qualité de code

2)il n'y a pas de coding standard, certaines variable (de meme catégorie, c'est pas des global ou des attributs) commence par des majuscule d'autre non

voila un exemple de code bien fait par exemple
Avatar de François DORIN François DORIN - Responsable .NET & Magazine https://www.developpez.com
le 18/04/2018 à 16:33
Citation Envoyé par datalandia Voir le message
1)un exemple parlant, il manque clairement de commentaire, les fichiers se contente de 1-2 commentaires de 1 ligne grand max
c'est un exemple typique d'une mauvaise qualité de code pour vous
J'ai rajouté la partie en gras. Beaucoup ne partagent pas votre point de vue.

Le point 2 est tout à fait recevable par contre.
Avatar de kolodz kolodz - Modérateur https://www.developpez.com
le 18/04/2018 à 16:34
Citation Envoyé par datalandia Voir le message
1)un exemple parlant, il manque clairement de commentaire, les fichiers se contente de 1-2 commentaires de 1 ligne grand max
c'est un exemple typique d'une mauvaise qualité de code
Non. Il vaux mieux un nom de variable ou de fonction ayant du sens et explicite qu'un bloc de commentaire....
Et j'ai trop souvent vu des pavés de commentaires n'ayant rien avoir avec le code... au minimum actuel... pour les considérer comme fiable ou indicateur de quoique ce soit.

Lesquels classes que j'ai regardé ont des métriques relativement correct...

  • Longueur de la classe inférieur à 2000 lignes.
  • Longueur des fonctions inférieur à 200 lignes.
  • Profondeur des fonctions (nombre de bloc imbriqué) inférieur à 5.


Edit :
Citation Envoyé par François DORIN Voir le message
J'ai rajouté la partie en gras. Beaucoup ne partagent pas votre point de vue.
Je confirme.
Avatar de dfiad77pro dfiad77pro - Membre expérimenté https://www.developpez.com
le 18/04/2018 à 20:15
il est vrai que c'est assez spécial comme code, faut pas s'attendre a du MVVM pur Microsoft pour l'UI

On dira mais bon si ça marche bien on s'en fiche.

Mais ça me surprends quand même.

Mon avis perso :
- Pour le nommage des variables , la seul fois ou je n'y fait pas attention c'est pour les couches auto générées style Entity Framework ou je trouve interessant d'être proche de la BDD, car l'abstraction naturelle d'entité peut amener des surprises dans la génération sur SQL. (Généralement je fais une couche de service qui l'abstrait)

- Pour les commentaires, ok pour ne pas trop en mettre mais au moins soigner les commentaire XML des entêtes de classe/méthodes(CsDoc), c'est la base.
- Je trouve qu'il y'a peu d'interfaces pour de la POO ?
- Beaucoups de if sans curly braces Il y'en a qui aiment (#vbPythonLovers) moi je trouve ça pas lisible en C#/Java et problématique pour les merges/intégration.
- indentation mal faite :
Code : Sélectionner tout
1
2
3
4
5
6
  double time = EditorApplication.timeSinceStartup;

            if (time > m_FadeoutTime)
                GUI.color = new Color(1, 1, 1, 1 - (float)((time - m_FadeoutTime) / kWarningFadeoutTime));
                GUI.Label(r, GUIContent.none, EditorStyles.notificationBackground);
            EditorGUI.DoDropShadowLabel(r, m_Notification, EditorStyles.notificationText, .3f);
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -