Optimalisatie

Roblox-optimalisatie is cruciaal voor soepelere gameplay op verschillende apparaten, betere spelstabiliteit en een hogere gebruikersretentie. Geoptimaliseerde spellen ontvangen waarschijnlijk positieve beoordelingen en recensies, waardoor hun zichtbaarheid toeneemt. Er zijn talrijke technieken beschikbaar om je spel effectief te optimaliseren.

Streaming

Streaming in Roblox laadt en ontlaadt dynamisch 3D-content wanneer nodig, wat de spelervaring van spelers verbetert.
Image 1
Roblox Studio
  • Door het aantal onderdelen te verminderen, omdat minder onderdelen tot betere prestaties leiden.
  • Optimaliseer texturen om een balans te vinden tussen visuele kwaliteit en prestaties, vooral voor apparaten met lagere specificaties.
  • Optimaliseer verlichting door dynamische lichten te beperken en schaduwloze lichten te gebruiken waar mogelijk, aangezien deze aanpassingen de rekencapaciteit verminderen en de algehele spelprestaties verbeteren.

Streamingconfiguraties

DefaultDe engine kiest de beste optie, momenteel hetzelfde als Legacy.
LegacyModellen worden samen met hun ouder geladen wanneer een speler meedoet en worden niet ontladen tenzij de ouder dat ook doet.
ImprovedModellen worden alleen geladen wanneer nodig, niet tijdens de spelersparticipatie. Niet-ruimtelijke modellen worden kort daarna geladen, terwijl ruimtelijke modellen naar behoefte worden geladen en later kunnen worden ontladen.

Schakelt de streaming van spelcontent in of uit.

DefaultGeen extra controles; spelers kunnen ontbrekende content tegenkomen.
PauseReceivePauzeert de ontvangst van gegevens als kritieke onderdelen ontbreken, waardoor spelproblemen worden vermeden.
RequestVraagt ontbrekende onderdelen aan wanneer een speler een gebied betreedt, waardoor de kans op het tegenkomen van niet geladen content wordt verkleind.

Stelt het minimale gebied rondom de speler in waar content met de hoogste prioriteit wordt gestreamd. Standaard is dit 64 studs. Het verhogen van deze waarde verbruikt meer geheugen en bandbreedte.

Definieert de maximale afstand vanaf de speler waar content wordt gestreamd. Standaard is dit 1024 studs. De engine kan eerder geladen content buiten deze straal behouden als het geheugen dit toelaat.

DefaultContent wordt alleen verwijderd wanneer het geheugen laag is (zelfde als LowMemory).
LowMemoryLaadt content uit om geheugen vrij te maken indien nodig.
OpportunisticLaadt content buiten de doelstraal uit, zelfs zonder geheugenbelasting, om de prestaties te optimaliseren.

Detailniveau (LOD)

In Roblox bepaalt deze instelling de visuele kwaliteit van modellen in ervaringen met ingeschakelde instance streaming.
StreamingMeshGebruikt een lagere resolutie 'imposter' mesh voor modellen buiten de streamingradius.
Disabled/AutomaticLagere resolutie meshes worden niet weergegeven, waardoor volledige details binnen de streamingradius behouden blijven.
Image 1
Roblox Studio

Fysica

Om de prestaties in Roblox te optimaliseren, is het beheer van fysica-instellingen cruciaal. Je kunt onderdelen die geen fysica vereisen deactiveren door ze als verankerd in te stellen (part.Anchored = true). Daarnaast verbetert het uitschakelen van onnodige botsingen door de botsing voor bepaalde onderdelen uit te schakelen (part.CanCollide = false) de prestaties verder.
Image 1
Image 2
Roblox Studio

Meer Optimalisatieopties

  • Door het aantal onderdelen te verminderen, omdat minder onderdelen tot betere prestaties leiden.
  • Optimaliseer texturen om een balans te vinden tussen visuele kwaliteit en prestaties, vooral voor apparaten met lagere specificaties.
  • Optimaliseer verlichting door dynamische lichten te beperken en schaduwloze lichten te gebruiken waar mogelijk, aangezien deze aanpassingen de rekencapaciteit verminderen en de algehele spelprestaties verbeteren.
  • Efficiënt Gebruik van Onderdelen en Meshes: Minimaliseer het gebruik van high-polygon meshes en gebruik waar mogelijk Roblox's BaseParts.
  • Scriptoptimalisatie: Identificeer en elimineer onnodige lussen, optimaliseer algoritmes en gebruik efficiënte datastructuren.
  • Netwerkoptimalisatie: Verminder gegevensoverdracht en zorg voor soepele client-servercommunicatie.
  • Client-Side Optimalisaties: Taken uitbesteden aan de client om de serverbelasting te verminderen en de reactietijd te verbeteren.
  • Debris Service: Gebruik Debris Service voor het beheren van tijdelijke objecten.
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

De MicroProfiler is een tool in Roblox Studio om prestatieproblemen in je spel te analyseren en te diagnosticeren.
Image 1
Roblox Studio

Ctrl Alt F6 (⌘⌥F6)

Image 1
Roblox Studio

Microprofiler (Blauw & Oranje Kleur)

Image 1
Roblox Studio
Color BarDetailsIndication
OranjeTaken tijd overschrijdt Render tijd in standaard frames.Geeft normale prestaties aan waarbij de CPU de focus is.
BlauwRender tijd overschrijdt de tijd van taken.Geeft een render bottleneck aan. Hover om details te zien over 'Wachten op Render Draad.' Een groot aantal blauwe balken suggereert dat rendering het belangrijkste probleem is.

Microprofiler (Pieken)

Image 1
Roblox Studio
Graph PositionDetailsIndication
MiddenBalken zouden over het algemeen rond het midden van de grafiek moeten zijn.Geeft normale werking aan met gebalanceerde taakplanning.
PiekenBalken pieken of nemen toe in waarde boven het midden van de grafiek.Geeft aan dat er meer tijd nodig was om een taakplannerproces uit te voeren, vaak vanwege een verhoogde werkbelasting, zoals het verwerken van veel bewegende onderdelen.

Microprofiler (Pauze)

Ctrl P (⌘P)

Frames in de MicroProfiler kunnen worden genavigeerd door op de grafiek te klikken of te slepen, met het scrollwiel om in te zoomen op de tijdlijn. Verschillende taken worden weergegeven met kleurrijke labels, en wanneer een taak wordt uitgevoerd tijdens een andere, verschijnt het overeenkomstige label direct onder de andere.
Image 1
Roblox Studio

Microprofiler (Inzoomen)

Klik met de rechtermuisknop op een label om de tijdlijn in te zoomen zodat deze overeenkomt met de duur van het label.

Image 1
Image 2
Roblox Studio

Klik met de linkermuisknop om een lijngrafiek in de rechterbenedenhoek van het spelvenster te laten zien, die aangeeft hoe lang de taak per frame duurt. Deze grafiek is handig voor prestatietesten.

Image 1
Roblox Studio
HoofdDetails
HoofdBeheert invoer, fysica, animaties, geluid, Studio-updates en coördineert andere threads.
WerkerHelpt de hoofdthread met taken zoals netwerken, fysica en padvinden. Meerdere werkers worden gebruikt, afhankelijk van de CPU-kernen.
Render (GPU)Verwerkt grafische rendering.

Aangepaste Profiler

Om te monitoren hoeveel tijd scripts nemen voor complexe taken. Begin met debug.profilebegin aan het begin en debug.profileend aan het einde van de sectie. Dit meet de tijd die tussen deze punten is doorgebracht en maakt een label aan in de MicroProfiler-tijdlijn.
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)

Als u deze tutorial nuttig vond en mijn werk wilt ondersteunen, overweeg dan om mij een kop koffie te kopen.

Hartelijk dank voor uw steun!

Koop een kop koffie voor mij