Watch This Before Working on a Big Game in Unity
Summary
TLDRDieses Video skizziert die Herausforderungen des Big-Game-Entwicklungs und bietet nützliche Tipps. Es betont die Bedeutung guter Hardware, real-time Beleuchtung, Vermeidung von Mesh-Generierungskomponenten und die Notwendigkeit, die Leistung im Editor zu optimieren. Das Sehen aus der Perspektive des Spielers, die Planung der Welt mit Leistung im Hinterkopf, die Verwendung von Bereichen zur Objektsuche und die Begrenzung der aktiven Rigidbodies werden hervorgehoben. Zudem werden die Verwendung von NavMesh-Komponenten, die Memory-Management-Tools wie Addressables, die Wiederverwendung von Assets und die Schaffung von eingeschlossener Code mit einer einheitlichen Kommunikationssystem empfohlen. Das Profiling wird als Schlüsselinstrument zur Leistungsoptimierung bezeichnet, ebenso wie das Bewahren von Einfachheit in der Lösungsentwicklung.
Takeaways
- 💻 Hardware ist entscheidend: Eine gute PC ist notwendig, um große Spiele zu entwickeln und zu optimieren.
- 🔆 Beleuchtung: Für große Landschaften ist die Verwendung von Echtzeitbeleuchtung besser als die Baking, da diese keine Platzprobleme verursacht.
- 🛠️ Vermeiden von Mesh-Generierung: Tools wie Pro Builder können bei großen Szenen zu Leistungsproblemen führen.
- 📐 Editor-Leistung: Bei der Entwicklung großer Spiele ist es wichtig, die Leistung des Editors zu wahren, indem man Dinge wie 'Find Asset of Type' vermeidet.
- 🎮 Spieler-Perspektive: Das Spiel sollte aus der Sicht des Spielers betrachtet werden, um die Leistung zu optimieren.
- 🏙️ Welt-Design: Stadtwälder, Berge und andere natürliche Barrieren können helfen, die Sichtweite einzuschränken und Leistung zu sparen.
- 🚫 Automatische Systeme: Verzicht auf automatische Systeme wie Occlusion Culling, da sie die Leistung nicht verbessern können.
- 🔍 Such- und Filter-Mechanismen: Verwenden von Bereichen oder Gittern, um Objekte in der Nähe des Spielers zu finden.
- 🤖 NPCs und Physik: Verwalten Sie die Anzahl der aktiven Rigidbodies und berechnen Sie nur relevanten NPCs.
- 🔄 NavMesh-Komponenten: Verwenden Sie NavMesh-Komponenten, um regionale NavMeshes für bessere Leistung zu erstellen.
- 🔄 Asset-Wiederverwendung: Assets sollten so oft wie möglich wiederverwendet werden, um die Leistung zu verbessern und den Speicherbedarf zu reduzieren.
- 🛠️ Code-Entwicklung: Schreiben Sie kapselte Systeme und verwenden Sie ein einheitliches Kommunikationssystem für komplexe Spiele.
Q & A
Welche Hardwareanforderungen hat die Entwicklung eines großen Spiels?
-Um ein großes Spiel zu entwickeln, benötigt man einen guten PC, der das Spiel nicht nur flüssig spielen kann, sondern auch die Performance im Editor gewährleistet. Ein PC, der das Spiel nur mit 60 FPS ausführen kann, ist für die Entwicklung zu schwach, da viele Systeme im Hintergrund laufen, die für die Optimierung des Spiels verantwortlich sind.
Was sind die Herausforderungen beim Baking von Beleuchtung in großen Spielen?
-Baked Lighting erzeugt Texturen, die alle Meshes, Oberflächen und Dreiecke des Spiels enthalten. In großen Spielen passen diese Texturen oft nicht im Arbeitsspeicher und das Baking kann sehr lange dauern. Dies kann den Workflow stören und die Build-Größe erheblich vergrößern.
Warum sollte man ProBuilder in großen Szenen vermeiden?
-ProBuilder generiert Meshes, die beim Undo, Redo, beim Schließen und Öffnen des Editors oder beim Laden und Entladen von Szenen immer wieder neu erstellt werden. Dies kann die Leistung beeinträchtigen, besonders wenn es viele solcher Objekte gibt.
Was ist der Grundgedanke hinter der Entwicklung großer Spiele?
-Der Grundgedanke ist, die Leistung des Editors selbst zu verwalten und nicht alles auf einmal anzuzeigen. Stattdessen sollte man die Szenen in kleinere Teile aufteilen und die Aktivitäten begrenzen, um die Leistung beizubehalten.
Wie kann man die Leistung in einem offenen Welt-Spiel verbessern?
-Indem man die Welt aus der Perspektive des Spielers betrachtet und nur die Elemente rendert, die für den Spieler relevant sind. Dadurch kann die Szene leicht mit mehr als 60 FPS ausgeführt werden, obwohl es sich um ein großes Open-World-Spiel handelt.
Was sind die Vor- und Nachteile des Einsatzes von mehreren Szenen in der Entwicklung?
-Vorteile sind eine bessere Zusammenarbeit und Organisation. Nachteile sind, dass man nichts aus einer Szene in eine andere referenzieren kann. Allerdings ist dies auch gut, da man Abhängigkeiten vermeiden sollte.
Welche Rolle spielt die Profilerstellung im Entwicklungsprozess?
-Profilerstellung ist entscheidend, um die Leistung im Editor und zur Laufzeit zu bewerten. Sie hilft, die Ursache von Leistungsproblemen zu identifizieren und zu beheben.
Was sind einige Tipps für die Leistungsoptimierung bei der Runtime?
-Man sollte die automatischen Systeme wie Occlusion Culling oder Static Batching ablehnen, stattdessen Bereiche oder ein Gitter verwenden, um nahegelegene Objekte zu finden, die Anzahl der aktiven RigidBodys einschränken und die Berechnungen für NPCs über mehrere Frames verteilen.
Wie kann man die Leistungsprobleme im Zusammenhang mit der Navigation in großen Spielen verbessern?
-Durch die Verwendung von NavMesh-Komponenten, um regionale NavMeshes zu erstellen, und durch das Ignorieren von Trigger-Collidern, um NavMesh-Oberflächen zu verbinden.
Was ist der Vorschlag für die Verwaltung des Asset-Reuses und der Leistungssteigerung?
-Man sollte Asset-Reuse maximieren, Instanz-Rendering verwenden und Material-Eigenschaftsüberschreibungen anwenden, um die Leistung zu steigern und den Asset-Datenbankwachstum zu verlangsamen.
Welche Programmierempfehlungen gibt es für die Entwicklung komplexer Spiele?
-Man sollte kapselte Systeme schreiben und ein einheitliches Kommunikationssystem für alle Systeme implementieren, z.B. ein Ereignissystem. Zudem ist es wichtig, häufig zu profilieren und bei FPS-Problemen nachzugehen, welche Objekte die Leistung beeinträchtigen.
Outlines
此内容仅限付费用户访问。 请升级后访问。
立即升级Mindmap
此内容仅限付费用户访问。 请升级后访问。
立即升级Keywords
此内容仅限付费用户访问。 请升级后访问。
立即升级Highlights
此内容仅限付费用户访问。 请升级后访问。
立即升级Transcripts
此内容仅限付费用户访问。 请升级后访问。
立即升级5.0 / 5 (0 votes)