Optimización

La optimización en Roblox es crucial para un juego más fluido en todos los dispositivos, una mejor estabilidad del juego y una mayor retención de usuarios. Los juegos optimizados tienen más probabilidades de recibir calificaciones y reseñas positivas, lo que aumenta su visibilidad. Existen numerosas técnicas para optimizar tu juego de manera efectiva.

Streaming

El streaming en Roblox carga y descarga dinámicamente contenido 3D según sea necesario, mejorando la experiencia del jugador.
Image 1
Roblox Studio
  • Reducir la cantidad de partes, ya que menos partes llevan a un mejor rendimiento.
  • Optimiza las texturas para equilibrar la calidad visual y el rendimiento, especialmente para dispositivos de gama baja.
  • Optimiza la iluminación limitando las luces dinámicas y usando luces sin sombras cuando sea posible, ya que estos ajustes reducen la carga computacional y mejoran el rendimiento general del juego.

Configuraciones de Streaming

DefaultEl motor elige la mejor opción, actualmente igual que Legacy.
LegacyLos modelos se cargan con su objeto padre cuando un jugador se une y no se descargan a menos que lo haga el padre.
ImprovedLos modelos se cargan solo cuando es necesario, no durante la unión del jugador. Los modelos no espaciales se cargan poco después, mientras que los modelos espaciales se cargan según sea necesario y pueden descargarse más tarde.

Habilita o deshabilita el streaming del contenido del juego.

DefaultSin comprobaciones adicionales; los jugadores pueden encontrar contenido faltante.
PauseReceivePausa la recepción de datos si faltan partes críticas, evitando problemas en el juego.
RequestSolicita partes faltantes cuando un jugador entra en un área, reduciendo las posibilidades de encontrar contenido no cargado.

Establece el área mínima alrededor del jugador donde el contenido se transmite con la máxima prioridad. El valor predeterminado es 64 studs. Aumentar este valor usa más memoria y ancho de banda.

Define la distancia máxima desde el jugador donde se transmite el contenido. El valor predeterminado es 1024 studs. El motor puede mantener el contenido previamente cargado más allá de este radio si la memoria lo permite.

DefaultEl contenido solo se elimina cuando la memoria es baja (igual que LowMemory).
LowMemoryDescarga contenido para liberar memoria cuando sea necesario.
OpportunisticDescarga contenido más allá del radio objetivo incluso sin presión de memoria, optimizando el rendimiento.

Nivel de Detalle (LOD)

En Roblox, esta configuración determina la calidad visual de los modelos en experiencias con transmisión de instancias habilitada.
StreamingMeshUtiliza una malla de 'impostor' de menor resolución para modelos fuera del radio de transmisión.
Disabled/AutomaticNo se muestran mallas de baja resolución, manteniendo el detalle completo dentro del radio de transmisión.
Image 1
Roblox Studio

Física

Para optimizar el rendimiento en Roblox, es crucial gestionar la configuración de la física. Puedes desactivar partes que no requieren física configurándolas como ancladas (part.Anchored = true). Además, minimizar colisiones innecesarias desactivando la colisión para ciertas partes (part.CanCollide = false) mejora aún más el rendimiento.
Image 1
Image 2
Roblox Studio

Más Opciones de Optimización

  • Reducir la cantidad de partes, ya que menos partes llevan a un mejor rendimiento.
  • Optimiza las texturas para equilibrar la calidad visual y el rendimiento, especialmente para dispositivos de gama baja.
  • Optimiza la iluminación limitando las luces dinámicas y usando luces sin sombras cuando sea posible, ya que estos ajustes reducen la carga computacional y mejoran el rendimiento general del juego.
  • Uso Eficiente de Partes y Mallas: Minimiza el uso de mallas de alta polígonos y utiliza BaseParts de Roblox cuando sea posible.
  • Optimización de Scripts: Identificar y eliminar bucles innecesarios, optimizar algoritmos y usar estructuras de datos eficientes.
  • Optimización de la Red: Reducir la transmisión de datos y asegurar una comunicación fluida entre cliente y servidor.
  • Optimización del Lado del Cliente: Desplazar tareas al cliente para reducir la carga del servidor y mejorar la capacidad de respuesta.
  • Servicio de Debris: Usar el Servicio de Debris para gestionar objetos temporales.
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

El MicroProfiler es una herramienta en Roblox Studio utilizada para analizar y diagnosticar problemas de rendimiento en tu juego.
Image 1
Roblox Studio

Ctrl Alt F6 (⌘⌥F6)

Image 1
Roblox Studio

MicroProfiler (Color Azul y Naranja)

Image 1
Roblox Studio
Color BarDetailsIndication
NaranjaEl tiempo de trabajos excede el tiempo de renderizado en cuadros estándar.Indica un rendimiento normal donde la CPU es el enfoque.
AzulEl tiempo de renderizado excede el tiempo de trabajos.Señala un cuello de botella en el renderizado. Pasa el cursor para ver detalles en 'Esperando Hilo de Renderizado'. Un gran número de barras azules sugiere que el renderizado es el principal problema.

MicroProfiler (Picos)

Image 1
Roblox Studio
Graph PositionDetailsIndication
MedioLas barras generalmente deberían estar alrededor del medio del gráfico.Indica una operación normal con programación de tareas equilibrada.
PicosLas barras se disparan o aumentan en valor por encima del medio del gráfico.Indica que se tomó más tiempo para realizar un proceso del Programador de Tareas, a menudo debido al aumento de la carga de trabajo, como manejar muchas partes móviles.

MicroProfiler (Pausa)

Ctrl P (⌘P)

Los cuadros en el MicroProfiler se pueden navegar haciendo clic o arrastrando en el gráfico, y la rueda de desplazamiento se usa para hacer zoom en la línea de tiempo. Las diferentes tareas se muestran con etiquetas coloridas, y cuando una tarea se realiza durante otra, la etiqueta correspondiente aparece directamente debajo de la otra.
Image 1
Roblox Studio

MicroProfiler (Acercar)

Hacer clic derecho en una etiqueta acerca la línea de tiempo para que coincida con la duración de la etiqueta.

Image 1
Image 2
Roblox Studio

Hacer clic izquierdo muestra un gráfico de líneas en la parte inferior derecha de la vista del juego, que muestra cuánto tiempo toma la tarea en cada cuadro. Este gráfico permite realizar pruebas de rendimiento.

Image 1
Roblox Studio
PrincipalDetails
PrincipalGestiona la entrada, física, animaciones, sonido, actualizaciones de Studio y coordina otros hilos.
TrabajadorAyuda al hilo principal con tareas como red, física y búsqueda de rutas. Se utilizan varios trabajadores según los núcleos de la CPU.
Renderizado (GPU)Maneja el renderizado gráfico.

Perfilado Personalizado

Para monitorear cuánto tiempo toman los scripts para tareas complejas. Comienza usando debug.profilebegin al principio y debug.profileend al final de la sección. Esto medirá el tiempo transcurrido entre estos puntos y creará una etiqueta en la línea de tiempo del 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)

Si encuentras útil este tutorial y deseas apoyar mi trabajo, considera invitarme a un café.

¡Muchas gracias por tu apoyo!

Invítame a un café