Le nouveau module ECS d'Unity

On parle de tout et de rien (vos jeux préférés, films, manifestations diverses, etc...)
Avatar de l’utilisateur
Deceleris
Messages : 57
Inscription : 25 Juil 2018 22:06
Contact :

Le nouveau module ECS d'Unity

Message par Deceleris » 06 Août 2018 18:14

Apparemment d'après ce que j'ai vu, ça brille de partout, c'est la grosse révolution you know ? Alors c'est la féfète, c'est le début de l'entity component system

Sauf que bon, je me suis renseigné et ça m'a l'air d'un joli bordel tout ça :berk1:

Le concept promet un grande optimisation, j'ai pas eu l'occasion de tester mais ça m'intéresse de savoir si c'est utile, car la j'ai plus l'impression que c'est une perte de temps :mrgreen:

Vous en pensez quoi ? Vous avez déjà eu l'occasion de l'utiliser ?

J'attends vos retours :D
Travail actuellement sur : https://deceleris.itch.io/shadows

Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Le nouveau module ECS d'Unity

Message par Max » 06 Août 2018 19:09

Bonsoir,
Deceleris a écrit :
06 Août 2018 18:14
Sauf que bon, je me suis renseigné et ça m'a l'air d'un joli bordel tout ça :berk1:
c'est pas le mot que j’emploierais :mrgreen:

Deceleris a écrit :
06 Août 2018 18:14
Le concept promet un grande optimisation, j'ai pas eu l'occasion de tester mais ça m'intéresse de savoir si c'est utile, car la j'ai plus l'impression que c'est une perte de temps
s’intéresser aux nouvelles techniques déployées et mises à disposition n'est jamais une perte de temps je pense. (dont fait partie le système Entity Component System).
Tu as certainement lu le billet consacré au sujet sur le blog d'Unity Technologies. Le préambule est assez clair:
"Accédez au système multithread hautes performances d'Unity pour exploiter tout le potentiel des processeurs multicœurs actuellement disponibles - sans perdre votre temps avec la programmation."
Le mot clé (comme dans tout le billet) est donc: performance. (Avec donc la triplette C# Job System, ECS et Burst Compiler)
Si tu es dans le développement d'applications gourmandes, alors forcément, suivre l'évolution de cette nouvelle approche doit avoir un réel intérêt.
Sinon, pour le moment, pas de changement dans la façon d'employer Unity.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
Deceleris
Messages : 57
Inscription : 25 Juil 2018 22:06
Contact :

Re: Le nouveau module ECS d'Unity

Message par Deceleris » 06 Août 2018 20:28

s’intéresser aux nouvelles techniques déployées et mises à disposition n'est jamais une perte de temps je pense.
Oui c'est vrai, je l'ai mal dit, c'est système long à implémenter, je me demandais si ça valais le coup de s'en servir pour grappiller de la performance pour tout un projet par exemple. Tout est relatif c'et vrai que ça dépendra de la consommation de l'appli
Travail actuellement sur : https://deceleris.itch.io/shadows

Avatar de l’utilisateur
Liven
Messages : 268
Inscription : 30 Nov 2017 01:48

Re: Le nouveau module ECS d'Unity

Message par Liven » 07 Août 2018 00:11

Je me tente un petit récap de ce que j'ai compris de toute cet affaire. Corrigez moi si je me trompe.

Il me semble que l'aspect multi-threading, c'est plutôt le bouleau du C# job syst, l'ECS concerne quand à lui la gestion des objets et des data en générale (création, stockage, accès, modif...), le burst compiler optimise la compilation du code en particulier si on utilise la nouvelle librairie mathématique que propose unity (que l'on oublie souvent d'évoquer quand on aborde ces sujets).

L'ECS est particulièrement utile si on a de multiples objets qui font la même chose pour traiter toutes leurs actions en une seule passe plutôt que d'accéder à chacun des objets un par un (je schématise très très grossièrement juste pour dire où est l'intérêt) ce qui permet de gros gains au niveau accès mémoire (qui est un goulot pour les hautes perf).

Aujourd'hui on a accès à l'hybride ECS et au pure ECS avec les avantages et inconvénients pour chacun d'entre eux :

L'hybride ECS :
Avantages : Facile à implémenter, perso j'ai transformé rapidement et sans soucis toute une partie d'un projet qui pouvait en profiter (je l'ai fait comme un cochon j'avoue), c'est pas compliqué, on garde une logique de programmation proche de celle de d’habitude.
Inconvénients : Pas des gains de perf de ouf (mais j'ai quand même vu une différence notable sur mon projet). Une intégration pas optimum avec les burst compiler et le C# job syst.

Le Pure ECS :
Avantages : Gros gains de perf et très bonne cohabitation avec les burst compiler et le c# job syst.
Inconvénients : Il faut changer ses habitudes de programmation notamment concernant la gestion des objets concernés car ce ne sont plus des prefab qui sont mis dans la scène (où instancier depuis un prefab), mais ces objets sont créés par code en leur attribuant leurs composants à ce moment. Cet aspect est encore un peu nébuleux pour moi, car aux dernière nouvelles, il n'était pas possible de générer un objet avec tout le nécessaire concernant la physique (box collider, rigidbody) car ces composants n'ont pas encore leur équivalant utilisable en pure ECS (du coup je continue à passer par des objets "normaux" grâce à l'hybrid ECS en attendant).

Dans un billet de blog récent unity annonçait qu'ils allait proposer pour la fin d'année des exemples de projets simples traduits en ECS (pure j'espère). Je pense que ça nous aidera pas mal à faire la transition.

Par contre ATTENTION : L'ECS (hybrid ou pure) nécessite Net 4.x hors Shader Graph (et les shader issus des cet outils) ne sont pas encore compatibles Net 4.x.

Conclusion, si on n'utilise pas shader graph (ou autre fonctionnalité incompatible Net 4.x) +
si on a de multiples objets qui font la même chose => autant passer à l'hybrid ECS, c'est pas compliqué et c'est toujours ça de pris.
Si en plus les objets en question n'utilise pas de composant particulier (en gros si c'est juste du code, et peut être du rendu, faut creuser) + si on est motivé pour se lancer dans une autre façon de gérer les objets et prendre d'autres habitudes de programmation => pure ECS.

Perso j’attends les exemples promis par Unity pour aller plus loin, je me demande même si je vais pas faire une branche "normale" pour pouvoir tâter un peu du shader graph en attendant.

Avatar de l’utilisateur
Deceleris
Messages : 57
Inscription : 25 Juil 2018 22:06
Contact :

Re: Le nouveau module ECS d'Unity

Message par Deceleris » 07 Août 2018 10:48

Ok merci pour ta participation, je n'ai rein à rajouter, ça résume bien la situation :merci:

Perso je vais essayer d'implementer l'ECS hybrid mais sans trop l'y mettre à la base du projet pour éviter un non retour. J'attendrais les projet exemples d'unity pour ça
Travail actuellement sur : https://deceleris.itch.io/shadows

Avatar de l’utilisateur
E3DStef
Administrateur
Administrateur
Messages : 1646
Inscription : 14 Juil 2013 18:30
Localisation : https://www.carte-des-membres.com/fr/Unity3D-France/

Re: Le nouveau module ECS d'Unity

Message par E3DStef » 12 Août 2018 16:22

@Liven : Chouette résumé/retour, Merci !
Le Savoir n'est Précieux que s'il est Partagé

Si besoin urgent de me contacter, faites moi un mail sur : franceunity3d@gmail.com

Répondre

Revenir vers « Discussion générale »