Optimisation

L'optimisation dans Roblox est cruciale pour un gameplay plus fluide sur tous les appareils, une meilleure stabilité du jeu et une rétention plus élevée des utilisateurs. Les jeux optimisés sont plus susceptibles de recevoir des avis et des évaluations positives, augmentant leur visibilité. De nombreuses techniques sont disponibles pour optimiser votre jeu de manière efficace.

Streaming

Le streaming dans Roblox charge et décharge dynamiquement du contenu 3D en fonction des besoins, améliorant ainsi l'expérience des joueurs.
Image 1
Roblox Studio
  • Réduire le nombre de pièces, car moins de pièces se traduisent par de meilleures performances.
  • Optimiser les textures pour équilibrer la qualité visuelle et les performances, en particulier pour les appareils moins puissants.
  • Optimiser l'éclairage en limitant les lumières dynamiques et en utilisant des lumières sans ombre lorsque possible, car ces ajustements réduisent la charge computationnelle et améliorent les performances générales du jeu.

Configurations de Streaming

DefaultLe moteur choisit la meilleure option, actuellement identique à l'option Legacy.
LegacyLes modèles se chargent avec leur parent lorsque le joueur rejoint et ne se déchargent que si le parent le fait.
ImprovedLes modèles ne se chargent que lorsqu'ils sont nécessaires, pas au moment où le joueur rejoint. Les modèles non spatiaux se chargent peu après, tandis que les modèles spatiaux se chargent en fonction des besoins et peuvent être déchargés ultérieurement.

Active ou désactive le streaming du contenu du jeu.

DefaultAucune vérification supplémentaire ; les joueurs peuvent rencontrer du contenu manquant.
PauseReceiveInterrompt la réception de données si des parties critiques manquent, évitant ainsi les problèmes de jeu.
RequestDemande les parties manquantes lorsqu'un joueur entre dans une zone, réduisant les chances de rencontrer du contenu non chargé.

Définit la zone minimale autour du joueur où le contenu est chargé avec la priorité la plus élevée. La valeur par défaut est de 64 studs. L'augmentation de cette valeur utilise plus de mémoire et de bande passante.

Définit la distance maximale à partir du joueur où le contenu est chargé. La valeur par défaut est de 1024 studs. Le moteur peut conserver le contenu chargé précédemment au-delà de ce rayon si la mémoire le permet.

DefaultLe contenu est supprimé uniquement lorsque la mémoire est faible (identique à LowMemory).
LowMemoryDécharge le contenu pour libérer de la mémoire en cas de besoin.
OpportunisticDécharge le contenu au-delà du rayon cible même sans pression mémoire, optimisant ainsi les performances.

Niveau de Détail (LOD)

Dans Roblox, ce paramètre détermine la qualité visuelle des modèles dans les expériences avec streaming d'instance activé.
StreamingMeshUtilise un mesh 'imposteure' de résolution inférieure pour les modèles en dehors du rayon de streaming.
Disabled/AutomaticLes meshes de résolution inférieure ne sont pas affichés, maintenant les détails complets à l'intérieur du rayon de streaming.
Image 1
Roblox Studio

Physique

Pour optimiser les performances dans Roblox, la gestion des paramètres physiques est cruciale. Vous pouvez désactiver les pièces qui n'ont pas besoin de physique en les définissant comme ancrées (part.Anchored = true). De plus, minimiser les collisions inutiles en désactivant les collisions pour certaines pièces (part.CanCollide = false) améliore encore les performances.
Image 1
Image 2
Roblox Studio

Autres Options d'Optimisation

  • Réduire le nombre de pièces, car moins de pièces se traduisent par de meilleures performances.
  • Optimiser les textures pour équilibrer la qualité visuelle et les performances, en particulier pour les appareils moins puissants.
  • Optimiser l'éclairage en limitant les lumières dynamiques et en utilisant des lumières sans ombre lorsque possible, car ces ajustements réduisent la charge computationnelle et améliorent les performances générales du jeu.
  • Utilisation Efficace des Pièces et Meshes : Minimiser l'utilisation des meshes à haute densité de polygones et utiliser les BaseParts de Roblox lorsque possible.
  • Optimisation des Scripts : Identifier et éliminer les boucles inutiles, optimiser les algorithmes et utiliser des structures de données efficaces.
  • Optimisation Réseau : Réduire la transmission des données et assurer une communication fluide client-serveur.
  • Optimisations Côté Client : Décharger les tâches sur le client pour réduire la charge sur le serveur et améliorer la réactivité.
  • Service de Débris : Utiliser le Service de Débris pour gérer les objets temporaires.
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

Le MicroProfiler est un outil dans Roblox Studio utilisé pour analyser et diagnostiquer les problèmes de performance dans votre jeu.
Image 1
Roblox Studio

Ctrl Alt F6 (⌘⌥F6)

Image 1
Roblox Studio

MicroProfiler (Couleur Bleu & Orange)

Image 1
Roblox Studio
Color BarDetailsIndication
OrangeLe temps des tâches dépasse le temps de rendu dans les images standard.Indique des performances normales où le CPU est le focus.
BleuLe temps de rendu dépasse le temps des tâches.Signale un goulot d'étranglement au niveau du rendu. Survolez pour voir les détails sur 'En attente du thread de rendu'. Un grand nombre de barres bleues suggère que le rendu est le principal problème.

MicroProfiler (Pics)

Image 1
Roblox Studio
Graph PositionDetailsIndication
MilieuLes barres devraient généralement se situer au milieu du graphique.Indique un fonctionnement normal avec une planification des tâches équilibrée.
PicsLes barres atteignent un pic ou augmentent en valeur au-dessus du milieu du graphique.Indique que plus de temps a été nécessaire pour effectuer un processus du planificateur de tâches, souvent en raison d'une charge de travail accrue, telle que la gestion de nombreuses pièces mobiles.

MicroProfiler (Pause)

Ctrl P (⌘P)

Les images dans le MicroProfiler peuvent être naviguées en cliquant ou en faisant glisser sur le graphique, avec la molette de la souris utilisée pour zoomer sur la chronologie. Les différentes tâches sont affichées avec des étiquettes colorées, et lorsqu'une tâche est effectuée pendant une autre, l'étiquette correspondante apparaît directement sous l'autre.
Image 1
Roblox Studio

MicroProfiler (Zoom)

Un clic droit sur une étiquette zoome la chronologie pour correspondre à la durée de l'étiquette.

Image 1
Image 2
Roblox Studio

Un clic gauche affiche un graphique linéaire en bas à droite de la vue du jeu, montrant le temps que prend chaque tâche à chaque image. Ce graphique permet de tester les performances.

Image 1
Roblox Studio
PrincipalDetails
PrincipalGère les entrées, la physique, les animations, le son, les mises à jour Studio et coordonne les autres threads.
TravailleurAssiste le thread principal avec des tâches comme le réseau, la physique et le pathfinding. Plusieurs travailleurs sont utilisés en fonction des cœurs du CPU.
Rendu (GPU)Gère le rendu graphique.

Profiling Personnalisé

Pour surveiller le temps que prennent les scripts pour des tâches complexes. Commencez par utiliser debug.profilebegin au début et debug.profileend à la fin de la section. Cela mesurera le temps passé entre ces points et créera une étiquette dans la chronologie du MicroProfiler.
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)