Optimizar tu experiencia es el proceso de configurar tus activos y ajustes de Studio para mantener alta la tasa de frames y los niveles de rendimiento en dispositivos con limitaciones de memoria y unidad de procesamiento gráfico (GPU). Este proceso asegura que casi todos los usuarios tengan la misma experiencia de juego y visual al ver tu entorno.
Usando el archivo .rbxl de Arte Ambiental - Optimización como referencia, esta sección del currículo de arte ambiental te muestra cómo revisar y configurar tu archivo de lugar para gráficos óptimos, incluyendo orientación sobre:
- Revisar los parámetros de física y renderizado de cada activo para confirmar que preservan la memoria y el rendimiento del motor.
- Eliminar texturas, geometría o transparencias excesivas que aumentan innecesariamente la cantidad de cálculos que el Motor de Roblox debe realizar para renderizar tus activos.
Mientras que el Motor de Roblox maneja la mayor parte del trabajo de optimización por ti, puedes ayudar en estos esfuerzos de optimización utilizando el Microprofiler para ver dónde se tarda más en renderizar cuadros específicos. Usando esta información, puedes tomar decisiones informadas sobre qué activos necesitan tu atención en cuanto a sus parámetros o contenido excesivo. Análisis de Escena es otra herramienta poderosa para verificar el uso de recursos.

Revisar parámetros de física y renderizado
En Ensamblar una biblioteca de activos, aprendiste lo importante que es establecer parámetros de física y renderizado que permitan a tus activos mantener su alta calidad visual en dispositivos con limitaciones de memoria y GPU. Sin embargo, es común que al construir tu entorno ajustas estos parámetros de acuerdo con la posición contextual y el propósito de un activo dentro de tu experiencia. Por ejemplo, gran parte del follaje en el entorno final de ejemplo de láser tag proyecta sombras a pesar de un costo de rendimiento porque añade realismo al entorno.
Cuando modificas los parámetros de física y renderizado, es útil cerca del final del proceso de desarrollo revisar todos los parámetros para ver dónde puedes optimizar un parámetro mientras mantienes los objetivos estéticos y los requisitos del juego. Para ilustrar, puedes desactivar la propiedad BasePart.CastShadow para el follaje cerca de los bordes del área de juego para ahorrar en rendimiento sin interferir con la experiencia de juego o visual de un usuario.


Eliminar contenido no esencial
Después de revisar tus parámetros de física y renderizado, puedes revisar los activos en sí mismos para ver dónde puedes eliminar contenido no esencial de la experiencia que no afecta tu juego, como texturas idénticas con diferentes IDs de activos, geometría compleja con muchos vértices o transparencias que se superponen dependiendo de la vista de la cámara. Las siguientes secciones detallan lo que puedes hacer para revisar este contenido y por qué ayuda en los esfuerzos de optimización.
Eliminar texturas duplicadas
A medida que transicionas entre desarrollar tus activos y construir tu entorno, es común iterar sobre mallas o texturas mientras encuentras lo necesario para tus objetivos estéticos o requisitos de juego. Si no conviertes tus activos en paquetes, cuando importas estas iteraciones en Studio, estás creando IDs de activos únicos que el Motor de Roblox necesita referenciar mientras renderiza tus activos dentro del entorno.
Por ejemplo, si importaras las siguientes dos mallas de hidrantes de incendios en Studio por separado, incluso si son exactamente iguales en apariencia, el Motor de Roblox las trata como dos objetos con IDs de activos únicos. Cuantas más llamadas únicas necesite hacer el motor, más impacto tendrá en la memoria y el rendimiento. Por esta razón, es importante confirmar que cuando reutilizas un activo múltiples veces, cada instancia de ese activo utiliza el mismo ID de activo para que el motor solo necesite hacer una única llamada para renderizarlo repetidamente.

Optimizar geometría
Si encuentras que necesitas hacer más ajustes para aumentar la tasa de frames en múltiples dispositivos, es útil ver dónde puedes optimizar tu geometría al:
- Combinar grupos de mallas en un único activo.
- Disminuir el conteo de polígonos de activos con complejidad geométrica.
Profundizando en esta primera técnica, cada activo único en tu experiencia representa una llamada de dibujo en la GPU en la que envía una señal a la GPU para que llame a la información con el fin de que el Motor de Roblox renderice el activo correctamente. Cuantos más activos únicos tengas, más llamadas de dibujo necesitará hacer el sistema. Por esta razón, si tienes un grupo de mallas que conforman un componente más grande en tu experiencia, puedes agruparlas en herramientas de modelado de terceros para reducir la necesidad de múltiples llamadas de dibujo.
Para ilustrar este punto, el entorno final de láser tag de muestra agrupa múltiples partes y mallas juntas para crear las grandes torres fuera del edificio. Si combinaras todos estos componentes individuales, podrías hacer de ellos un único activo con solo un ID de activo y reducir la cantidad de llamadas de dibujo de 8 a 1. Sin embargo, es importante notar que esta técnica elimina tu capacidad para cambiar libremente las características visuales y físicas de cada componente, como su posición o material.
Por ejemplo, en la siguiente imagen, la torre de la izquierda sigue siendo múltiples activos bajo un objeto Model, mientras que la torre de la derecha es un único activo. Puedes modificar cada componente de la torre izquierda individualmente, pero cuando modificas la torre derecha, como cambiar su color a negro, afecta la totalidad del objeto. Por esto, es importante considerar esta técnica solo cerca del final del desarrollo de tu entorno, cuando sabes dónde puedes mejorar el rendimiento sin afectar tus objetivos estéticos.

Profundizando en la segunda técnica, los activos con complejidad geométrica tienen más polígonos, significando que tienen más vértices que el motor necesita calcular al renderizar su apariencia visual. Esto significa que los activos con menos complejidad y fidelidad son menos costosos de renderizar, lo que lleva a una mejora en el rendimiento y la memoria.
Eliminar transparencias superpuestas
Para proporcionar un sentido de realismo al entorno, el entorno final de láser tag de muestra incluye muchas mallas con diferentes niveles de transparencia, como el follaje en el espacio exterior, vidrio en la señalización futurista o barandillas de jardinería. Cuando la cámara ve múltiples objetos semi-transparentes que están delante o detrás unos de otros, el Motor de Roblox debe renderizar los píxeles superpuestos múltiples veces para tener en cuenta las áreas transparentes. Este proceso se llama exceso de transparencia alta, y tiene un impacto significativo en el rendimiento.
Por ejemplo, considera la siguiente vista de un jardinera en el entorno de muestra. El motor debe renderizar las áreas transparentes de las hojas entre la planta más cercana a la cámara y la planta más cercana al área exterior en capas, lo que equivale a cientos de miles de píxeles sobre dibujados. Para aliviar parte de este impacto, es importante revisar la disposición de todos los objetos semi-transparentes en tu entorno, y asegurarte de que no haya demasiados lugares donde haya muchas capas de superposición, especialmente en grandes áreas de la pantalla.


Cuando termines de revisar todo tu contenido para asegurarte de que es óptimo en todos los dispositivos, ¡tu experiencia ahora está lista para la publicación!