Megacity

En à peine deux mois, notre équipe ECS et deux artistes de notre groupe chargé de l'exemple de FPS ont produit un paysage urbain futuriste doté d'engins volants, de centaines de milliers d'objets très détaillés et de sources de son uniques, pour mieux montrer nos avancées avec l'ECS et le compilateur Burst.

Présentation Unite LA 2018

Un grand intérêt a été porté à notre ECS et au compilateur Burst à Los Angeles. En nous appuyant sur notre expérience avec la démo de Nordeus, présentée à Unite Austin, l'équipe chargée du code s'est associée à celle responsable de l'exemple de FPS pour produire Megacity, un paysage urbain futuriste. Megacity tire profit de notre pile technologique orientée vers les données (ou DOTS, pour Data Oriented Technology Stack), le nom qui désigne tous les projets sous la bannière Performances par défaut, comme l'ECS, les collections natives, le système de tâches C# et le compilateur Burst.

La démo Unite LA créée en 6 semaines

Deux artistes Unity, aidés d'une petite équipe externe, ont conçu l'ensemble des ressources haute résolution en à peu près six semaines. Ils se sont appuyés sur les prefabs imbriqués et sur certaines des nouvelles fonctionnalités qui facilitent le maniement de très grands ensembles d'objets de jeu.

Il faut tout un village...

pour concevoir Megacity. Pour créer cet exemple, nous nous sommes appuyés sur l'ensemble des équipes et technologies du service R&D de Unity, y compris les dernières fonctionnalités comme les prefabs imbriqués, les pipelines de rendu programmables et de nombreuses fonctionnalités existantes, par exemple l'édition de scènes, la création de mondes, Cinemachine et la pile de post-traitement. Nous avons également tiré profit de fonctionnalités en cours de développement, qui sortiront en 2019 :

  • Les flux de production pour les (très) grandes scènes
  • Le système de son C#
  • Le système HLOD
  • Le système de détermination ECS
  • La diffusion asynchrone des scènes
  • L'instanciation asynchrone des entités
  • Les améliorations des outils de l'ECS et les fonctionnalités de correction d'erreurs

Megacity sur mobile

Quelques développeurs de Nordeus se sont attaqués à la démo Megacity pour montrer comment la DOTS et le pipeline de rendu léger peuvent aider à adapter un projet PC à des plateformes mobiles en toute fluidité. L'objectif était de conserver la complexité graphique de la version d'origine, mais en la faisant fonctionner sur des appareils mobiles avec un nombre d'images par seconde très élevé.

Pour cela, ils ont utilisé le pipeline de rendu léger, qui sortira officiellement dans la version 2019.1. Leur conclusion : « Quand on travaille sur un jeu qui doit repousser les limites des PC et qu'on décide de le porter ensuite sur mobile, on doit généralement en retravailler de larges sections, en raison des limitations de performances des plateformes mobiles. La DOTS nous a permis d'utiliser le même code pour la logique de gameplay et le rendu en l'adaptant simplement à l'échelle des mobiles. »

Paysage sonore de Megacity (expérimental)

DSPGraph est un nouveau moteur de mixage/rendu audio développé sur la base du système de tâches C# de Unity. Il est complètement extensible dans C# et peut être utilisé avec le compilateur Burst. Dans Megacity, il alimente 100 000 émetteurs de son 3D/spatial dispersés de façon unique, y compris des enseignes au néon, des climatiseurs et des voitures qui produisent des sons uniques pour former un paysage sonore riche et réaliste.

Veuillez noter que DSPGraph est une API expérimentale interne que nous prévoyons de peaufiner et de publier dans le cadre de la version expérimentale au cours de cette année. Elle constituera la base du système audio de la pile technologique orientée vers les données (DOTS) à venir. Si vous avez des questions ou des suggestions concernant DSPGraph, veuillez participer à la discussion dans le forum audio DOTS officiel.

Découvrez plus d'informations sur les différents systèmes audio intégrés pour créer du son dans Megacity

Concevoir Megacity

Débuter avec la démo Megacity

Dans cette session, enregistrée à la GDC 2019, le conseiller Unity Mike Geig présente le projet et montre comment nous avons tiré profit du principe de Unity, "« Des performances incroyables par défaut »", pour créer un vaste monde de jeu rempli d'objets et de simulations complexes.

Megacity à Unite LA : accueil et présentation

Joachim Ante a lancé le sujet de l'ECS à Unite LA 2018 en présentant ce sur quoi lui et son équipe travaillaient depuis six mois.

Megacity à Unite LA : concevoir un monde vivant à petit budget

Une petite équipe a bâti une ville incroyablement complexe et fidèle en moins de deux mois. Martin Vestergaard vous présente les différentes étapes : concept, maquette, documentation, production et peaufinage.

Megacity à Unite LA : du son basé sur des graphiques dans un monde en ECS

Apprenez-en plus sur le nouveau moteur de rendu audio par tâches en C#. Nous vous présenterons ce moteur de rendu audio de base, ainsi que la technologie ECS qui permet de fournir du son à grande échelle à la démo.

Megacity à Unite LA : des systèmes de niveau de détail et de traitement adaptés

Mike Acton explique comment son équipe a utilisé l'ECS pour afficher un vaste environnement dans la démo Unite LA Megacity.

Megacity à Unite LA : agents d'IA en spline

Découvrez comment la simulation de trafic de la démo étudie les noyaux de calcul et le code produit par le compilateur Burst, mais aussi comment nous avons développé les agents d'IA en spline avec l'ECS.

Megacity à Unite LA : diffusion et sérialisation

Apprenez-en plus sur la sérialisation d'entité sur et à partir du disque, et découvrez comment nous avons conçu du contenu fluide pour la diffusion en mode lecture et un flux de production de l'éditeur efficace. Enfin, nous vous montrerons ce qu'un monde distinct en ECS peut faire pour vous.

Megacity à Unite LA : l'évolution de l'API de l'ECS

Apprenez-en plus sur le passé, le présent et l'avenir de l'ECS. Aria Bonczek, de l'équipe de conception orientée vers les données de Unity, explique nos choix pour cette puissante API.

Megacity à Unite LA : utilisation du correcteur d'erreurs d'entité

Regardez cette présentation des fonctions du correcteur d'erreurs d'entité et un débat sur sa place dans les futures versions de Unity.

L'ECS est conçu pour gérer d'énormes mondes virtuels

L'un de nos principaux objectifs avec Megacity était de montrer que le système de composants d'entité est parfait pour afficher un nombre incroyable d'éléments de scène.

Megacity contient par exemple 4,5 millions de moteurs de rendu de maillage, 5 000 véhicules dynamiques et 200 000 objets de construction uniques. Les véhicules volent dans des couloirs en spline sans jamais se percuter. Le projet comprend également quelque 100 000 sources de son uniques, y compris des enseignes au néon, des climatiseurs et des voitures qui produisent des sons uniques pour former un paysage sonore riche et réaliste.

Megacity est dès à présent disponible

Téléchargez l'exemple de projet Megacity pour avoir accès à l'intégralité des fichiers source et des ressources.

Megacity fonctionne avec Unity 2019.1.0 Beta 7.

Rejoignez-nous sur nos forums pour être au courant des dernières actualités ou découvrir comment démarrer avec ECS.

Ce site utilise des cookies dans le but de vous offrir la meilleure expérience possible. Consultez notre politique de cookies pour en savoir plus.

Compris