Engine & platform

Games Focus: Profiling und Leistungsoptimierung

MARIKA NAKAMURA / UNITY TECHNOLOGIESSenior Technical Product Manager
Sep 28, 2022|11 Min.
Games Focus: Profiling und Leistungsoptimierung
Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.
Dies ist der dritte Blog in unserer Spiele-Fokus-Reihein der wir die wichtigsten Produktentwicklungsinitiativen für das kommende Jahr und darüber hinaus vorstellen. Hier berichten wir über den Stand der Dinge, bevorstehende Release-Pläne und zukünftige Visionen für Profiling und Performance bei Unity.

Mein Name ist Marika. Ich arbeite seit fast einem Jahrzehnt in der Videospielbranche und bin derzeit Senior Technical Product Manager für Profiling-Tools und Leistungsoptimierung bei Unity.

Wenn wir bei Unity über Leistung nachdenken, gibt es drei Hauptbereiche, in denen wir glauben, dass wir helfen können:

  • Insight: Sie können die Leistung Ihres Spiels untersuchen, Engpässe identifizieren und Bereiche aufzeigen, die von Optimierungsstrategien profitieren würden.
  • Erfahrung: Sicherstellen, dass sich die Erstellung Ihrer Projekte nahtlos anfühlt, indem die Leistung des Unity-Editors und der Laufzeitumgebung gesteigert wird
  • Innovation: Anleitung zu neuen Programmiertechniken und Paradigmen, die von Anfang an auf Leistung ausgerichtet sind

Der heutige Beitrag konzentriert sich auf die ersten beiden Bereiche und behandelt die jüngsten Aktualisierungen unserer Profiling-Tools sowie die Frage, wie das Kundenfeedback unsere Roadmap für 2023 und darüber hinaus prägt. Abschließend werden bewährte Verfahren zur Optimierung von Projekten vorgestellt.

Den dritten Bereich, leistungsorientierte Programmiertechniken und Arbeitsabläufe mit Schwerpunkt auf DOTS-basierten Projekten, werden wir in einem der nächsten Beiträge behandeln.

Profilerstellung in Unity

Wir betrachten die Profiling-Funktionen in Unity gerne als Detektivwerkzeuge, die Ihnen helfen, das Geheimnis zu lüften, warum die Leistung Ihrer Anwendung langsam oder fehlerhaft ist, oder warum der Code zu viel Speicher zuweist. Sie helfen Ihnen zu verstehen, was unter der Haube der Unity-Spielengine vor sich geht.

Unser Ziel ist es, die Leistung der Unity-Tools und -Laufzeitumgebung durch Profiling und Optimierung zu steigern, damit Sie Ihren Spielern eine reibungslose Leistung auf einer Vielzahl von Plattformen und Geräten bieten können.

Was ist heute das Richtige für Sie?

Memory Profiler soll es einfacher machen, den Überblick über die Speichernutzung und -zusammensetzung zu behalten. Ich freue mich, mitteilen zu können, dass der Memory Profiler 1.0.0 jetzt ein verifiziertes Paket für die Unity 2022.2 Beta-Version und höher ist (Anweisungen zum Download finden Sie hier). Vielen Dank an alle, die uns ihr wertvolles Feedback zu einem besseren Arbeitsablauf für diese wichtige Funktion gegeben haben.

Viele von Ihnen sind mit der Herausforderung konfrontiert, innerhalb der Speicherbeschränkungen der einzelnen Zielplattformen zu arbeiten. Der Memory Profiler hilft bei der Lösung dieser Herausforderung, indem er Ihnen einen klaren Überblick über die Speicherauswirkungen von Assets und Objekten in einer einzigen Ansicht bietet. Sie zeigt Ihnen auch detaillierte Kontextinformationen darüber, auf welche Objekte und Systeme sich der Speicher bezieht.

Sie können die Erfassung durch Aufschlüsselungsansichten vertiefen und Speicher-Snapshots vergleichen, um potenzielle Lecks und unnötige Zuweisungen zu identifizieren, die sich negativ auf die Speichernutzung auswirken.

Die Registerkarte "Zusammenfassung" bietet einen Überblick über den insgesamt verwendeten Speicher. Die Registerkarte Unity-Objekte zeigt alle Unity-Objekte an, die Speicher verwenden, während die Registerkarte Gesamter Speicher eine Aufschlüsselung des gesamten Speichers im Snapshot anzeigt, den Unity verfolgt.
Sie können die Speichernutzung zwischen zwei Speicherauszügen vergleichen.

Verfeinerung des bestehenden Profiling-Toolsets

Im Jahr 2022.1 haben wir den Frame Timing Manager hinzugefügt, mit dem Sie Frame Timing-Daten über mehrere Frames hinweg erfassen und abrufen können. Wenn die Leistung nachlässt, verwenden Sie diese Funktion, um Frames zu bewerten und zu analysieren, warum Ihre Anwendung die Leistungsziele nicht erreicht. Erfahren Sie mehr darüber in unserer Dokumentation.

Wenn Sie Low-Level-GPU-Metriken im Unity Profiler überwachen möchten, können Sie das neue System Metrics Mali-Paketverwenden, das wir in 2022.1 durch eine Partnerschaft mit Arm veröffentlicht haben. Dieses Paket ermöglicht Ihnen den Zugriff auf Low-Level-System- oder Hardware-Metriken auf mobilen Geräten. Wenn Sie mehr darüber erfahren möchten, wie Sie sicherstellen können, dass Ihre Inhalte auf mobilen Geräten mit Arm-CPUs und Mali-GPUs reibungslos laufen, finden Sie in diesem Blog von 2021 eine Anleitung.

Optimierung der Leistung

Die bisher vorgestellten Profiling-Tools sind ein guter Anfang, um die Bereiche zu ermitteln, in denen die Leistung verbessert werden kann. In meinem Team bezieht sich "Leistungsoptimierung" jedoch nicht nur auf die Laufzeitleistung Ihrer Spiele auf den Zielgeräten, sondern auch auf die Arbeitsweise Ihres Teams - Ihre Produktivität. Unser Ziel ist es, Ihnen schnellere Iterationszeiten, weniger Unterbrechungen und eine höhere Effizienz im Editor zu bieten.

In Unity 2021 LTS ist der Import Ihrer Assets drei- bis viermal schneller und das Öffnen importierter Projekte bis zu 8,7 % schneller als in Unity 2020 LTS.

Ich freue mich darauf, einige der Verbesserungen, die in den Versionen 2022 verfügbar sind, mit Ihnen zu teilen:

  • Verbesserter Material-Reimport für die Universal Render Pipeline und die High Definition Render Pipeline
  • Verbesserungen des Editor-Workflows, einschließlich:
  • Schnellere Speicherzeit für große Szenen
  • Geringere Wartezeit bei der Szenenauswahl
  • Verbesserte Leistung in der Szenenansicht, wenn viele LOD-Gruppen vorhanden sind
  • Ein optimiertes Animations-Rigging-Paket
  • Besseres Scrollen in der Hierarchie
  • Verbesserter Speicher-Workflow für große Prefabs
  • Verbesserte Iterationszeit beim Arbeiten im Editor durch Optimierungen beim Neuladen der Domäne
  • Verbesserungen im Spielmodus, darunter:
  • Verbesserte Leistung bei der statischen Dosierung
  • Optimierter Prozess, wie Addressables Ressourcenverzeichnisse findet
  • Partikelsysteme vorwärmen

Auch hier hat Ihr Feedback eine wichtige Rolle bei vielen dieser Verbesserungen gespielt. Bitte teilen Sie uns auch weiterhin Ihr Feedback zu unserer zukünftigen Roadmap mit , oder kontaktieren Sie das Team in den Foren. Wir sind besonders an leistungsbezogenen Fragen interessiert, die wir hier erfassen.

Was kommt als Nächstes

Seit mehr als einem Jahrzehnt konzentrieren wir uns darauf, sicherzustellen, dass Sie mit unseren Profiling-Tools die bestmögliche Leistung erzielen können, und wir werden das Toolset weiter verfeinern. Diese Entwicklung hat viele Formen angenommen, einschließlich all der Funktionen, die wir hier bereits erwähnt haben.

Ein weiterer Bereich, in dem wir erhebliche Leistungssteigerungen erzielt haben, ist der Data-Oriented Technology Stack (DOTS). Zwei der Kernfunktionen, die für die erfolgreiche Bereitstellung von DOTS wesentlich sind, sind der Burst-Compiler und das C# Job System. Diese wurden in unserer eigenen internen Motorleistung mit großem Erfolg eingesetzt und sind heute für alle verfügbar. In Kürze werden wir die dritte wichtige Funktion, Entities, bereitstellen, die die Projektleistung in Bereichen wie Netzwerken, Physik und mehr steigern wird. Dies ist ein so wichtiger Aspekt unseres Engagements in der Spieleentwicklung, dass wir DOTS in dieser Reihe demnächst einen eigenen Games Focus Artikel widmen werden.

Werfen wir zunächst einen Blick auf einige Verbesserungen, die für kommende Versionen geplant sind.

Wir arbeiten daran, die Zeit für das Starten des Editors zu verkürzen, um die Startzeit zu verkürzen und Ihnen zu helfen, im Fluss zu bleiben. Wenn Sie heute ein Zielgerät mit dem Editor verbinden, kann es zu Instabilitäten kommen, wie z. B. einer Unterbrechung der Verbindung oder einer fehlenden Möglichkeit zur Wiederherstellung. Wir arbeiten daran, die Editor-Verbindungen zu mobilen Plattformen in der Version 2023.1 zuverlässiger und leistungsfähiger zu machen.

Außerdem möchten wir es Ihnen erleichtern, Engpässe mit dem Profiler zu identifizieren und zu wissen, was Sie als Nächstes tun müssen, wenn Sie sie entdeckt haben. Unser Ziel ist es, Sie schnell zu den Optimierungsbereichen zu führen, die den größten Leistungsgewinn bringen.

Wir möchten auch Speicherinformationen hinzufügen, die auf dem Gerät basieren, für das Sie entwickeln, damit Sie plattformspezifische Leistungssteigerungen erzielen können. Wir befinden uns noch in der Anfangsphase und suchen aktiv nach Ihrem Feedback zu dieser neuen Funktion, das Sie auf unserer Roadmap-Seite abgeben können.

Ressourcen

Der Umgang mit den Profiling-Tools von Unity ist eine der nützlichsten Fähigkeiten, die Sie Ihrem Werkzeugkasten für die Spieleentwicklung hinzufügen können. Aus diesem Grund arbeiten wir an der Erstellung weiterführender Inhalte über bewährte Verfahren, damit Sie das Beste aus unseren Tools herausholen können.

Einige meiner Teamkollegen haben vor kurzem in Zusammenarbeit mit erfahrenen Ingenieuren des Unity Integrated Success Teams und Experten unseren bisher umfangreichsten Leitfaden zum Thema Profiling in Unity zusammengestellt.

Ich empfehle Ihnen auch, diese zusätzlichen fortgeschrittenen E-Books herunterzuladen, die umfassende plattformspezifische Optimierungsverfahren bieten:

Eine weitere praktische Referenz ist dieses Flussdiagramm, das einen empfohlenen Ansatz zur Ermittlung von Engpässen in Ihrem Projekt bietet.

Flussdiagramm, das einen empfohlenen Ansatz zur Ermittlung von Engpässen in Ihrem Projekt bietet.

Schließlich ist diese Leseliste für Profiling und Optimierungdie von unseren Content- und Marketing-Teams erstellt wurde, enthält wichtige Blog-Beiträge, die Ihnen helfen werden, die Konzepte und Methoden der Profilerstellung zu verstehen, von den Grundlagen bis zu den fortgeschrittenen.

Umschlagbilder für drei Unity-E-Books: Optimieren Sie die Leistung Ihres Spiels für Konsolen und PC, Optimieren Sie die Leistung Ihres mobilen Spiels und die ultimative Anleitung zur Profilerstellung in Unity-Spielen.
Lassen Sie uns wissen, was Sie denken

Mein Team arbeitet hart daran, Ihnen die Lösungen zu bieten, die Sie für Ihre ehrgeizigsten Projekte benötigen, und wir sind immer daran interessiert zu verstehen, wie wir Ihnen noch besser helfen können.

Halten Sie sich auf unserer öffentlichen Roadmap-Seite über Updates auf dem Laufenden. Dies ist auch der beste Ort, um dem Produktteam direkt Feedback zu geben.

Achten Sie im Blog auf unser nächstes Games Focus-Update, in dem wir uns darauf konzentrieren werden, was Unity tut, damit Sie mit Ihren Spielinhalten mehr Plattformen und Formfaktoren ansprechen können. Und, wie immer, teilen Sie uns Ihr Feedback in den Foren mit.