Optimierung

Die Optimierung in Roblox ist entscheidend für ein reibungsloseres Gameplay auf verschiedenen Geräten, eine bessere Spielstabilität und eine höhere Benutzerbindung. Optimierte Spiele erhalten eher positive Bewertungen, was ihre Sichtbarkeit erhöht. Es gibt zahlreiche Techniken, um Ihr Spiel effektiv zu optimieren.

Streaming

Streaming in Roblox lädt und entlädt 3D-Inhalte dynamisch nach Bedarf, was das Spielerlebnis verbessert.
Image 1
Roblox Studio
  • 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

DefaultDie Engine wählt die beste Option, aktuell gleichbedeutend mit Legacy.
LegacyModelle laden mit ihrem Elternobjekt, wenn ein Spieler beitritt, und werden nur entladen, wenn das Elternobjekt dies tut.
ImprovedModelle 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.

DefaultKeine zusätzlichen Prüfungen; Spieler können auf fehlende Inhalte stoßen.
PauseReceivePausiert den Datenempfang, wenn kritische Teile fehlen, um Spielprobleme zu vermeiden.
RequestFordert 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.

DefaultInhalte werden nur bei niedrigem Speicherplatz entfernt (entspricht LowMemory).
LowMemoryEntlädt Inhalte, um Speicherplatz freizugeben, wenn dies erforderlich ist.
OpportunisticEntlädt Inhalte außerhalb des Zielradius auch ohne Speicherprobleme, um die Leistung zu optimieren.

Detailgrad (LOD)

In Roblox bestimmt diese Einstellung die visuelle Qualität von Modellen in Erfahrungen mit aktiviertem Instanz-Streaming.
StreamingMeshVerwendet ein niedriger aufgelöstes 'Imposter'-Mesh für Modelle außerhalb des Streaming-Radius.
Disabled/AutomaticNiedrig aufgelöste Meshes werden nicht angezeigt, wobei die volle Detailgenauigkeit innerhalb des Streaming-Radius beibehalten wird.
Image 1
Roblox Studio

Physik

Um die Spielleistung in Roblox zu optimieren, ist das Verwalten der Physikeinstellungen entscheidend. Sie können Teile, die keine Physik benötigen, deaktivieren, indem Sie sie als verankert (part.Anchored = true) festlegen. Darüber hinaus wird die Leistung weiter verbessert, indem unnötige Kollisionen vermieden werden, indem die Kollision für bestimmte Teile (part.CanCollide = false) deaktiviert wird.
Image 1
Image 2
Roblox Studio

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

Der MicroProfiler ist ein Tool in Roblox Studio, das verwendet wird, um Leistungsprobleme in Ihrem Spiel zu analysieren und zu diagnostizieren.
Image 1
Roblox Studio

Strg Alt F6 (⌘⌥F6)

Image 1
Roblox Studio

MicroProfiler (Blau & Orange)

Image 1
Roblox Studio
Color BarDetailsIndication
OrangeJob-Zeit überschreitet Render-Zeit in Standard-Frames.Zeigt normale Leistung an, bei der der Fokus auf der CPU liegt.
BlauRender-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)

Image 1
Roblox Studio
Graph PositionDetailsIndication
MitteDie Balken sollten sich normalerweise in der Mitte des Diagramms befinden.Zeigt einen normalen Betrieb mit ausgeglichenem Aufgabenplan an.
SpikesDie 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)

Frames im MicroProfiler können durch Klicken oder Ziehen im Diagramm navigiert werden, das Scrollrad wird zum Zoomen in die Zeitleiste verwendet. Verschiedene Aufgaben werden mit farbigen Labels angezeigt, und wenn eine Aufgabe während einer anderen ausgeführt wird, erscheint das entsprechende Label direkt unter dem anderen.
Image 1
Roblox Studio

MicroProfiler (Zoom-In)

Durch Rechtsklick auf ein Label wird die Zeitleiste so vergrößert, dass sie mit der Dauer des Labels übereinstimmt.

Image 1
Image 2
Roblox Studio

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.

Image 1
Roblox Studio
Haupt-ThreadDetails
Haupt-ThreadVerwaltet Eingaben, Physik, Animationen, Sound, Studio-Updates und koordiniert andere Threads.
Worker-ThreadUnterstü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

Überwachen Sie, wie viel Zeit Skripte für komplexe Aufgaben benötigen. Beginnen Sie mit debug.profilebegin am Anfang und debug.profileend am Ende des Abschnitts. Dies misst die Zeit zwischen diesen Punkten und erstellt ein Label in der MicroProfiler-Zeitleiste.
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