Streaming
- Durch die Reduzierung der Teileanzahl, da weniger Teile zu einer besseren Leistung führen.
- Optimieren Sie Texturen, um das Gleichgewicht zwischen visueller Qualität und Leistung zu finden, insbesondere für Geräte mit niedriger Leistung.
- Optimieren Sie die Beleuchtung, indem Sie dynamische Lichter begrenzen und wo möglich schattenlose Lichter verwenden, da diese Anpassungen die Rechenlast verringern und die Gesamtleistung des Spiels verbessern.
Streaming-Konfigurationen
Default | Die Engine wählt die beste Option, aktuell gleichbedeutend mit Legacy. |
Legacy | Modelle laden mit ihrem Elternobjekt, wenn ein Spieler beitritt, und werden nur entladen, wenn das Elternobjekt dies tut. |
Improved | Modelle laden nur bei Bedarf, nicht beim Beitritt eines Spielers. Nicht-räumliche Modelle laden kurz danach, während räumliche Modelle nach Bedarf laden und später entladen werden können. |
Aktiviert oder deaktiviert das Streaming von Spielinhalten.
Default | Keine zusätzlichen Prüfungen; Spieler können auf fehlende Inhalte stoßen. |
PauseReceive | Pausiert den Datenempfang, wenn kritische Teile fehlen, um Spielprobleme zu vermeiden. |
Request | Fordert fehlende Teile an, wenn ein Spieler einen Bereich betritt, um die Wahrscheinlichkeit zu verringern, auf nicht geladene Inhalte zu stoßen. |
Legt den Mindestbereich um den Spieler fest, in dem Inhalte mit höchster Priorität gestreamt werden. Der Standardwert beträgt 64 Studs. Eine Erhöhung dieses Werts erfordert mehr Speicher und Bandbreite.
Definiert die maximale Entfernung vom Spieler, bis zu der Inhalte gestreamt werden. Der Standardwert beträgt 1024 Studs. Die Engine kann zuvor geladene Inhalte über diesen Radius hinaus beibehalten, wenn der Speicher dies zulässt.
Default | Inhalte werden nur bei niedrigem Speicherplatz entfernt (entspricht LowMemory). |
LowMemory | Entlädt Inhalte, um Speicherplatz freizugeben, wenn dies erforderlich ist. |
Opportunistic | Entlädt Inhalte außerhalb des Zielradius auch ohne Speicherprobleme, um die Leistung zu optimieren. |
Detailgrad (LOD)
StreamingMesh | Verwendet ein niedriger aufgelöstes 'Imposter'-Mesh für Modelle außerhalb des Streaming-Radius. |
Disabled/Automatic | Niedrig aufgelöste Meshes werden nicht angezeigt, wobei die volle Detailgenauigkeit innerhalb des Streaming-Radius beibehalten wird. |
Physik
Weitere Optimierungsoptionen
- Durch die Reduzierung der Teileanzahl, da weniger Teile zu einer besseren Leistung führen.
- Optimieren Sie Texturen, um das Gleichgewicht zwischen visueller Qualität und Leistung zu finden, insbesondere für Geräte mit niedriger Leistung.
- Optimieren Sie die Beleuchtung, indem Sie dynamische Lichter begrenzen und wo möglich schattenlose Lichter verwenden, da diese Anpassungen die Rechenlast verringern und die Gesamtleistung des Spiels verbessern.
- Effizienter Einsatz von Teilen und Meshes: Minimieren Sie die Verwendung von hochpolygonalen Meshes und verwenden Sie, wenn möglich, die BaseParts von Roblox.
- Skript-Optimierung: Identifizieren und eliminieren Sie unnötige Schleifen, optimieren Sie Algorithmen und verwenden Sie effiziente Datenstrukturen.
- Netzwerkoptimierung: Reduzieren Sie die Datenübertragung und sorgen Sie für eine reibungslose Kommunikation zwischen Client und Server.
- Clientseitige Optimierungen: Übertragen Sie Aufgaben auf den Client, um die Serverlast zu reduzieren und die Reaktionsfähigkeit zu verbessern.
- Debris-Service: Verwendung des Debris-Service zur Verwaltung temporärer Objekte.
local Debris = game:GetService("Debris")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace
-- Add the part to Debris, which will remove it after 5 seconds
Debris:AddItem(part, 5)
MicroProfiler
Strg Alt F6 (⌘⌥F6)
MicroProfiler (Blau & Orange)
Color Bar | Details | Indication |
---|---|---|
Orange | Job-Zeit überschreitet Render-Zeit in Standard-Frames. | Zeigt normale Leistung an, bei der der Fokus auf der CPU liegt. |
Blau | Render-Zeit überschreitet die Job-Zeit. | Deutet auf einen Render-Engpass hin. Bewegen Sie den Mauszeiger, um Details zum 'Warten auf Render-Thread' anzuzeigen. Eine große Anzahl von blauen Balken deutet darauf hin, dass das Rendern das Hauptproblem ist. |
MicroProfiler (Spikes)
Graph Position | Details | Indication |
---|---|---|
Mitte | Die Balken sollten sich normalerweise in der Mitte des Diagramms befinden. | Zeigt einen normalen Betrieb mit ausgeglichenem Aufgabenplan an. |
Spikes | Die Balken steigen oder erhöhen sich über die Mitte des Diagramms hinaus. | Zeigt an, dass mehr Zeit für die Ausführung eines Task Scheduler-Prozesses benötigt wurde, oft aufgrund einer erhöhten Arbeitsbelastung, wie z. B. dem Umgang mit vielen beweglichen Teilen. |
MicroProfiler (Pause)
Strg P (⌘P)
MicroProfiler (Zoom-In)
Durch Rechtsklick auf ein Label wird die Zeitleiste so vergrößert, dass sie mit der Dauer des Labels übereinstimmt.
Durch Linksklick wird ein Liniendiagramm in der unteren rechten Ecke des Spielbildschirms angezeigt, das zeigt, wie lange die Aufgabe in jedem Frame dauert. Dieses Diagramm ermöglicht Leistungstests.
Haupt-Thread | Details |
---|---|
Haupt-Thread | Verwaltet Eingaben, Physik, Animationen, Sound, Studio-Updates und koordiniert andere Threads. |
Worker-Thread | Unterstützt den Haupt-Thread bei Aufgaben wie Netzwerk, Physik und Pfadsuche. Es werden mehrere Worker verwendet, basierend auf den CPU-Kernen. |
Render (GPU) | Verantwortlich für die Grafik-Renderung. |
Benutzerdefiniertes Profiling
local Debris = game:GetService("Debris")
local part = Instance.new("Part")
part.Position = Vector3.new(0, 10, 0)
part.Parent = workspace
-- Add the part to Debris, which will remove it after 5 seconds
Debris:AddItem(part, 5)
Wenn Sie dieses Tutorial hilfreich fanden und meine Arbeit unterstützen möchten, können Sie mir gerne einen Kaffee spendieren.
Vielen Dank für Ihre Unterstützung!
Kaufen Sie mir einen Kaffee