Deux systèmes physiques, un protocole de données
La solution physique comprend deux offres : Unity Physics et Havok Physics. Toutes deux sont basées sur le cadre de la DOTS et utilisent donc le même protocole de données.
Ceci permet une transition fluide de vos projets entre des systèmes physiques sans avoir à repenser votre contenu ni le code de vos jeux.
Que vous utilisiez Unity Physics, Havok Physics ou les deux ensemble, le protocole de données unifiées vous permet de rédiger une fois, puis d'effectuer des simulations en utilisant n'importe quel système compatible avec la DOTS.
En coulisses : Le partenariat entre Unity et Havok
En collaboration avec Havok, nous avons développé un tout nouveau moteur physique basé sur la technologie DOTS.
Écoutez Shawn McClelland (chef de produit chez Unity) et Joel Van Eenwyk (ingénieur d'application sur site chez Havok) expliquer comment nous avons collaboré pour créer des systèmes s'appuyant sur le cadre de la DOTS, pour vous permettre de créer des simulations physiques offrant des performances exceptionnelles compatibles avec les besoins de la mise en réseau moderne.
Unity Physics et Havok Physics s'appuient sur le cadre de la pile technologique orientée vers les données ou DOTS (Data-Oriented Technology Stack). Vous pouvez faire passer un projet d'une solution à l'autre et les deux peuvent fonctionner simultanément. Les données sont compatibles, ce qui vous permet d'utiliser les puissants outils et flux de travail de Unity.

Unity Physics
Rapide. Légère. Sans état. Personnalisable. Telles sont les caractéristiques clés de notre nouvelle solution Unity Physics.
S'appuyant sur le cadre de la DOTS C# de Unity, elle est prête pour fonctionner en réseau, entièrement personnalisable et conçue pour offrir des performances immédiates. Que vous soyez en train de créer le prochain jeu à succès sur mobile ou une nouvelle console multijoueur en réseau, Unity Physics exploite le compilateur Burst et le système Job pour s'adapter à toute une gamme d'appareils.
Unity Physics est actuellement en version aperçu, disponible via le gestionnaire de packages et compatible avec Unity 2019.1 et versions ultérieures.

Havok Physics
Havok Physics
Havok Physics est une solution haut de gamme destinée aux clients qui ont besoin de produire des simulations physiques complexes. Elle est soutenue par le moteur Havok Physics, leader sur le marché, qui alimente plus de la moitié des titres les plus populaires de cette génération de consoles. Cette solution est rédigée avec le même cadre de DOTS C# que Unity Physics, mais inclut les fonctions, les performances, la stabilité et les fonctionnalités du code source fermé, propriété exclusive de Havok Physics, rédigé en C++ natif.
Consultez la documentation pour savoir comment accéder à Havok Physics.
Performances
La solution Havok Physics est spécialement optimisée pour les cas d'utilisation de jeu typiques. Les algorithmes principaux ont été perfectionnés au fil des ans et diverses stratégies de mise en cache automatique (y compris l’activation de la mise en veille pour les objets inactifs) garantissent que les ressources du CPU ne sont utilisées qu'en cas de besoin.
Voir la vidéo Havok Physics Unity integration : Performance sur YouTube
Comportement
Havok Physics est un moteur physique robuste conçu pour répondre aux exigences de performance des jeux les plus graphiques, qui incluent souvent des scènes complexes avec de nombreuses interactions physiques. En collaborant avec des partenaires du secteur depuis plus de vingt ans, la société Havok a rencontré et résolus les problèmes les plus difficiles auxquels sont confrontées les simulations physiques, et continue d'y faire face. Cela signifie un empilement stable des corps physiques, un minimum d'artefacts là où les corps se déplacent rapidement et un comportement généralement mieux contrôlé, en particulier lorsque vous travaillez avec une géométrie de collision non optimisée.
Voir les vidéos Stacking Stability - YouTube et Mesh Welding - YouTube
Ressources
Annonce de la sortie de Unity Physics et Havok Physics pour la DOTS
Nous avons collaboré avec Havok afin de créer une solution physique de prochaine génération pour Unity. Découvrez les détails de cette collaboration.
Annonce de la sortie de Unity Physics et Havok Physics pour la DOTS | Présentation Unity, GDC 2019
Lors de la GDC 2019, nous avons annoncé notre partenariat avec Havok afin de créer une solution physique complète pour les projets basés sur la DOTS dans Unity. Regardez Joachim Ante (directeur technique et fondateur, Unity) et Oliver Strunk (Havok) présenter les solutions.
Exemples de physique
Pour vous aider à démarrer, ce référentiel d'exemples montre comment tirer parti de Unity Physics dans la DOTS. Des exemples Unity Physics sont maintenant inclus dans nos échantillons fournis avec le système de composants d'entités (Entity Component System) sur GitHub.
Pour plus d'informations, consultez la documentation.
Rory Mullane de chez Havok nous parle de physique à la GDC
Suivez le parcours du moteur physique AAA, de C++ jusqu'au monde de C# et de la pile technologique orientée données (DOTS). Apprenez-en plus sur l'architecture et les fonctionnalités maintenant disponibles dans Unity Physics, voyez-les en action et découvrez comment Unity Physics et Havok Physics peuvent travailler ensemble pour optimiser le dynamisme de vos jeux.
Participez aux discussions
Détaillez vos besoins, donnez votre avis et discutez franchement de vos besoins en physique. Vous pouvez poster tout problème que vous rencontrez avec le nouveau système physique basé sur la DOTS dans les forums.
Le déterminisme consiste à obtenir le même résultat dans une simulation physique quand elle reçoit le même ensemble d'entrées. Unity Physics et Havok Physics fournissent des résultats déterministes. Cependant, les diverses architectures de processeur (x86, ARM, etc.) produisant des différences mineures dans leurs calculs mathématiques, les résultats déterministes de la simulation peuvent être différents selon les appareils.
Burst ayant prévu de résoudre le problème du déterminisme inter-architectures ultérieurement cette année, Unity Physics bénéficiera automatiquement de cette fonctionnalité, ce qui signifie que la simulation sera la même sur tous les appareils.
Remarque : En ce qui concerne le déterminisme dans le cadre d'une architecture unique, Unity Physics nécessitera une prochaine mise à jour Burst.
La plupart des moteurs physiques, y compris Havok, offrent performances et stabilité grâce à des optimisations intelligentes, telles que la mise en cache de parties de l'état du monde de jeu afin de contourner ou de stabiliser différents calculs. La physique sans état réalise plutôt des performances grâce à des optimisations par force brute. Pour cette raison, et étant donné que les futures versions de Burst pourront s'exécuter sur plusieurs architectures, différents scénarios en réseau peuvent en bénéficier. Par ailleurs, il existe des scénarios dans lesquels Havok peut améliorer ses performances et sa stabilité.
Étant donné que la physique sans état sera capable de s'exécuter de manière déterministe sur plusieurs architectures de processeurs dans les futures versions de Burst, elle sera prête et facile à utiliser pour toute une série de configurations réseau, telles que la prédiction côté client (par exemple, FPS), la simulation client synchronisée (par exemple, RTS), ainsi que pour GGPO/la restauration (par exemple, pour les jeux de combat).
Havok Physics mettant en cache différentes informations d'état pour effectuer des optimisations intelligentes, cette solution peut enregistrer des performances supérieures dans les jeux à grande échelle ou utilisant des systèmes physiques complexes. Havok Physics offre également une plus grande stabilité lors de la manipulation d'objets s'interpénétrant et de l'empilement de corps. Le comportement sera également amélioré grâce à un modèle de friction avancé qui nécessite des caches.
Havok Physics et Unity Physics utilisent le même modèle de données dans l'Éditeur Unity. Vous pouvez créer du contenu d'une seule manière et opter pour l'une ou l'autre des solutions, ou pour les deux, selon les besoins spécifiques de votre jeu ou des sous-ensembles de vos mondes de jeu.
Non. Havok Physics et Unity Physics sont des packages optionnels basés sur la DOTS. Aucun contenu existant ne sera endommagé, mais vous devrez peut-être le réorganiser si vous migrez vers l'une des nouvelles solutions.