Zwei Physiksysteme, ein Datenprotokoll
Die Physics-Lösung besteht aus zwei Angeboten: Unity Physics und Havok Physics. Beide basieren auf dem DOTS-Framework und verwenden demnach das gleiche Datenprotokoll.
So können Sie Ihre Projekte reibungslos zwischen Physiksystemen verschieben, ohne Ihre Inhalte oder Ihren Spielecode neu erstellen zu müssen.
Ganz gleich, ob Sie Unity Physics, Havok Physics oder beide zusammen verwenden – das vereinheitlichte Datenprotokoll ermöglicht es Ihnen, einmal zu schreiben und dann mit jedem beliebigen DOTS-fähigen System zu simulieren.
Hinter den Kulissen: die Partnerschaft von Unity und Havok
Zusammen mit Havok haben wir eine brandneue Physik-Engine entwickelt, die auf der DOTS-Technologie basiert.
Erfahren Sie von Shawn McClelland (Product Manager bei Unity) und Joel Van Eenwyk (Field Application Engineer bei Havok), wie wir das System gemeinsam auf dem DOTS-Framework aufgebaut haben, sodass Physiksimulationen mit außergewöhnlicher Leistung erstellt werden können, die modernen Netzwerkanforderungen entsprechen.
Unity Physics und Havok Physics basieren auf dem DOTS-Framework (Data-Oriented Technology Stack). Sie können ein Projekt von einer Lösung zur anderen übertragen und beide können gleichzeitig ausgeführt werden. Sie sind datenkompatibel und ermöglichen Ihnen die Verwendung der leistungsstarken Tools und Workflows von Unity.

Unity Physics
Schnell. Schlank. Zustandslos. Anpassbar. Das ist das Mantra hinter unserer neuen Unity Physics-Lösung.
Sie basiert auf dem Unity C# DOTS-Framework und ist netzwerkfähig, komplett anpassbar und auf sofortige Leistungsfähigkeit ausgelegt. Ganz gleich, ob Sie den neuesten Bestseller für Mobilgeräte oder ein neues vernetztes Multiplayer-Konsolenerlebnis entwickeln – Unity Physics nutzt den Burst-Compiler und das Job-System zwecks Skalierung über eine Reihe von Hardware hinweg.
Unity Physics ist derzeit als Vorschauveröffentlichung über den Package Manager verfügbar und mit Unity 2019.1 und neueren Versionen kompatibel.

Havok Physics
Havok Physics
Havok Physics ist eine leistungsfähige Lösung für Kunden, die komplexe Physiksimulationen erstellen müssen. Sie basiert auf der branchenführenden Havok Physics-Engine, die von mehr als der Hälfte der Toptitel dieser Konsolengeneration verwendet wird. Sie ist im selben C#-DOTS-Framework geschrieben wie Unity Physics, beinhaltet jedoch die Funktionen, Leistung, Stabilität und Funktionalität der proprietären Havok Physics-Engine mit Closed-Code, die im nativen C++ geschrieben ist.
Lesen Sie die Dokumentation, um zu erfahren, wie Sie auf Havok Physics zugreifen.
Leistung
Havok Physics ist auf typische Spielanwendungsfälle optimiert. Die Kernalgorithmen wurden über viele Jahre hinweg optimiert. Aufgrund der verschiedenen automatischen Cache-Strategien (einschließlich Ruhemodus für inaktive Objekte) werden CPU-Ressourcen nur dort eingesetzt, wo sie auch gebraucht werden.
Siehe Havok Physics Unity integration : Performance - YouTube
Verhalten
Havok Physics ist eine robuste Physik-Engine, die auf die Leistungsanforderungen auch der grafisch anspruchsvollsten Spiele, die oft detaillierte Szenen mit viel physischer Interaktion enthalten, angepasst ist. In einer mehr als zwanzigjährigen Zusammenarbeit mit Partnern in der gesamten Branche hat Havok zahlreiche der schwierigsten Probleme von Physiksimulationen identifiziert, gelöst und arbeitet fortwährend an neuen Lösungen. So lassen sich physische Objekte stabil stapeln, Artefakte bei sich schnell bewegenden Objekten minimieren und insgesamt das Verhalten besser kontrollieren, insbesondere bei der Arbeit mit nicht-optimierter Kollisionsgeometrie.
Siehe Stacking Stability – YouTube und Mesh Welding – YouTube
Ressourcen
Ankündigung von Unity und Havok Physics für DOTS
Wir haben mit Havok zusammengearbeitet, um ein Physiksystem der nächsten Generation für Unity zu schaffen. Informieren Sie sich über weitere Details dieser Zusammenarbeit.
Ankündigung von Unity und Havok Physics für DOTS | Unity-Keynote bei der GDC 2019
Auf der GDC 2019 kündigten wir die Partnerschaft mit Havok an, mit dem Ziel, eine komplette Physikberechnungslösung für DOTS-basierte Projekte in Unity zu erschaffen. Sehen Sie sich die Präsentation der Lösungen von Joachim Ante (CTO und Gründer, Unity) und Oliver Strunk (Havok) an.
Physics-Beispiele
Dieses Repository mit Beispielen veranschaulicht die Nutzung von Physics in DOTS und hilft Ihnen so bei Ihren ersten Schritten. Unity Physics-Beispiele sind jetzt in unseren Entity-Component-System-Beispielen auf GitHub enthalten.
Die Dokumentation finden Sie hier.
Rory Mullane von Havok spricht auf der GDC über Physics
Verfolgen Sie den Weg der AAA-Physik-Engine von C++ in die Welt von C# und zum Data-Oriented Technology Stack (DOTS). Informieren Sie sich über die Architektur und Funktionen, die jetzt in Unity Physics verfügbar sind, sehen Sie sie in Aktion und entdecken Sie, wie Unity Physics und Havok Physics zusammen die Dynamik in Ihren Spielen maximieren können.
Diskutieren Sie mit
Legen Sie Ihre Erfordernisse dar, geben Sie Feedback und führen Sie offene Gespräche über Ihre Physikanforderungen. In den Foren können Sie über alle Probleme sprechen, die Sie mit dem neuen DOTS-basierten Physiksystem haben.
Beim Determinismus geht es darum, in einer physischen Simulation das gleiche Ergebnis zu erhalten, wenn dieselben Eingaben verwendet werden. Sowohl Unity Physics als auch Havok Physics bieten deterministische Ergebnisse. Verschiedene CPU-Architekturen (x86, ARM usw.) erzeugen jedoch kleine Unterschiede in den mathematischen Berechnungen, wodurch die deterministischen Ergebnisse der Simulation auf unterschiedlicher Hardware abweichen können.
Da Burst das Problem des architekturübergreifenden Determinismus später in diesem Jahr lösen wird, wird auch Unity Physics automatisch von dieser Funktion profitieren, sodass die Simulation auf allen Geräten gleich sein wird.
Hinweis: Für Einzelarchitekturdeterminismus erfordert Unity Physics ein künftiges Burst-Update.
Die meisten Physik-Engines, einschließlich Havok, sorgen mit intelligenten Optimierungen für Leistung und Stabilität. Teile des Status der Welt werden zwischengespeichert, um verschiedene Berechnungen zu umgehen oder zu stabilisieren. Zustandslose Physik sorgt stattdessen durch Brute-Force-Optimierungen für Leistung. Aus diesem Grund und weil künftige Versionen von Burst auf mehreren Architekturen ausgeführt werden können, bieten sich Vorteile für verschiedene vernetzte Szenarien. Andererseits gibt es Szenarien, in denen Havok mehr Leistung und Stabilität erreichen kann.
Da zustandslose Physik in künftigen Versionen von Burst deterministisch auf mehreren CPU-Architekturen ausgeführt werden kann, wird sie für verschiedene vernetzte Konfigurationen einsatzbereit und einfach nutzbar sein, beispielsweise für clientseitige Vorhersagen (z. B. FPS), Lockstep-Client-Simulation (z. B. RTS) sowie GGPO/Rollback (z. B. Kampfspiele).
Da Havok Physics verschiedene Informationen für intelligente Optimierungen zwischenspeichert, kann eine überlegene Leistung in groß angelegten Spielen oder Spielen mit komplexen Physiksystemen erreicht werden. Havok Physics bietet auch mehr Stabilität im Umgang mit durchdringenden Objekten und beim Zusammenstellen von Körpern. Auch das Verhalten wird mit einem erweiterten Reibungsmodell, das Caches erfordert, verbessert.
Havok Physics und Unity Physics verwenden dasselbe Datenmodell im Unity-Editor. Sie können Inhalte auf eine Weise schreiben und dann eines der beiden oder auch beide Physik-Backends verwenden. Ausschlaggebend hierfür sind die spezifischen Anforderungen Ihres Spiels oder der Teilbereiche Ihrer Spielewelten.
Nein, sowohl Unity Physics als auch Havok Physics sind Opt-in-Pakete auf Basis von DOTS. Bestehende Inhalte werden nicht zerstört, Sie müssen aber Ihre bestehenden Inhalte womöglich neu abstimmen, wenn Sie zu einem dieser neuen Backends migrieren.